Comment attaquer le probleme php/mysql + chrono ?

Comment attaquer le probleme php/mysql + chrono ? - PHP - Programmation

Marsh Posté le 21-08-2008 à 23:55:01    

Plateforme / Hebergement
 

Citation :

mysql 5 / php
Free


Objectif: [:maestun]

Citation :

Admettons que REGIS s'inscrive sur le site Dans1HeureTuExplose.com à 8h du matin.
 
J'aurais dans base mysql une donnée enregistré sur regis du genre  
 
nom age ville date
REGIS 40ANS PARIS 8H
 
Maintenant, il faudrai que son compte soit supprimé 1H apres son inscription, donc si mes calculs sont justes, a 9h pile le compte de REGIS sera supprimé !


Mon Probleme: [:elbibi]
 

Citation :

J'ai plusieurs méthodes pour executer la destruction du compte de Regis a 9h, mais je ne sais absolument pas si je m'y prend bien, si il existe une astuces pour faire ca simplement.


Mes solutions proposé: [:babaji]

1ere solution)

Citation :

Je code une page bot.php qui sera lancé sur mon pc, qui se raffraichis toutes les 1 minutes. Le script compare l'heure d'inscription de REGIS dans la base de données, à celle du serveur. Si l'heure d'inscription date de plus d'une heure alors le script execute la requette de suppresion du compte a REGIS !


2eme solution)

Citation :

Ben en fait je croyais en avoir plusieurs, mais non [:cerveau arf]


Ce que j'attend de vous: [:julm3]

Citation :

Comment aborderiez vous le probleme ?
Il y a t-il une solution simple sous mysql pour executer des procédures automatiques ?
Le top ca serais que j'ai une méthode qui soit précise, a la minute pres.


Message édité par Profil supprimé le 22-08-2008 à 00:03:31
Reply

Marsh Posté le 21-08-2008 à 23:55:01   

Reply

Marsh Posté le 21-08-2008 à 23:57:07    

quand je crée le compte de regis, j'ajoute aussitot la date d'expiration  
 
passé la date d'expiration, le compte est desactivé . Une fois par jour , ou une fois par heure, tu fais passer un script de nettoyage qui vire les comptes inactifs


---------------

Reply

Marsh Posté le 22-08-2008 à 00:00:05    

flo850 a écrit :

quand je crée le compte de regis, j'ajoute aussitot la date d'expiration  
 
passé la date d'expiration, le compte est desactivé . Une fois par jour , ou une fois par heure, tu fais passer un script de nettoyage qui vire les comptes inactifs


 
[:sqel]
 
Ok, donc pour le moment si je veux que ce soit une tache automatisé, je suis obligé d'avoir chez moi une page du genre bot.php qui soit lancé et fasse ce boulot ?


Message édité par Profil supprimé le 22-08-2008 à 00:00:34
Reply

Marsh Posté le 22-08-2008 à 00:09:05    

ou tu laisse les comptes s'entasser


---------------

Reply

Marsh Posté le 22-08-2008 à 13:34:00    

delete from table where date_inscription<"time()-3600" facon timestamp
delete from table where date_inscription<'date("Y-m-d H:i:s",time()-3600)' si objet date dans ta bdd
 
voilà la plus simple des solutions :)


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 23-08-2008 à 01:09:18    

grosbin a écrit :

delete from table where date_inscription<"time()-3600" facon timestamp
delete from table where date_inscription<'date("Y-m-d H:i:s",time()-3600)' si objet date dans ta bdd
 
voilà la plus simple des solutions :)


Merci du tuyau, j'allais bientot attaquer le probleme de face  ;)

Reply

Marsh Posté le 23-08-2008 à 02:18:49    

Tu laisses les comptes s'entasser sans les supprimer et au moment d'accéder au compte tu vérifie ou non s'il devrait déjà être supprimé et si oui tu le supprimes
 
pas besoin de bot comme ça


---------------
http://www.poster-kit.com
Reply

Marsh Posté le 24-08-2008 à 10:35:18    

Une solution si tu es sous Windows et que tu as accès à l'ordi :
 
Tu fais une tache planifiée, qui lance en ligne de commande un script (option 'q' fait une execution silencieuse) qui efface les comptes.
 
Dans les autres cas (et c'est pas plus mal) :
 
Tu inclues ce script dans chaque page. Ainsi si le bonhomme veut faire une action et que son délai est dépassé, il se verra refuser l'acces. De même chaque visiteur sur chaque page qu'il visite effacera automatiquement les comptes obsolètes. Si c'est pas de la délégation de tâches, ça ! :D


Message édité par CyberDenix le 24-08-2008 à 10:35:46

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 24-08-2008 à 11:10:48    

Y a pas besoin d'être sous Windows pour planifier une tâche hein :o ... Sous Unix y a cron qui le fait bien (mieux).


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-08-2008 à 11:28:22    

et pourquoi tu veux virer le compte en fait, si tu as la date de fin de validité du compte tu checks juste ça au moment de faire l'authentification.

Reply

Marsh Posté le 24-08-2008 à 11:28:22   

Reply

Marsh Posté le 24-08-2008 à 11:37:38    

Oui mais bon ça peut être chiant suivant la longueur du cycle de vie d'un compte d'avoir 60% de ta base occupée par des comptes désactivés :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-08-2008 à 14:08:15    

les bases ont une taille maximum :??: ?


---------------

Reply

Marsh Posté le 24-08-2008 à 14:25:32    

Dans la majorité des sites on peut considérer que non (ou alors on s'attaque à très gros :D), mais pourquoi garder des trucs inutiles (qui vont donc à la longue ralentir le tout) alors qu'en 1 ligne on peut les balancer?
 
Et suivant où il est hébergé (notamment en mutualisé), ça se peut qu'il ait une limite "administrative" à la taille de ses bdd


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-08-2008 à 22:44:54    

Une base de 100Mo sur les mutu suffit souvent très amplement (+possibilité de les accumuler, quand elles sont sans firewall = pratique car les sites sur différents serveurs peuvent accéder aux memes données mysql )
suffit de "pruner" un peu ses enregistrements et le tout passe doucement :D


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 25-08-2008 à 09:25:50    

c'est pas avec un record style id_user, date_début_validité, date_fin_validité que l'on va exploser une base de 100mo, surtout que si jamais tu l'explosais c'est très certainement parce que ton contenu fonctionnel va l'exploser ou alors c'est qu'ils se connectent juste pour se connecter mais ne rien voir/utiliser.
 
et je ne vois pas ou serait le problème d'avoir 60% voire même 95% de compte obsolète dans la base, en les supprimant tu détruis de l'information alors que ce n'est pas nécessaire.
 
perso je pense que se demander/programmer un code pour ça c'est dépenser de l'énergie sur un truc qui va dégrader le système d'information inutilement.

Reply

Marsh Posté le 25-08-2008 à 14:56:25    

+1 Je serais plus dans l'idée de garder les comptes inactifs, ca peut servir pour des logs ou stats par exemple et pour le peu de place que ca prend

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed