Cron et suppression des membre inactif

Eléphant du PHP | 61 Messages

26 nov. 2006, 13:00

Bonjour!
Lorsqu'un membre s'inscrit a mon site celui-ci reçoit un mail de confirmation et je veux que si le membre n'est pas valider son mail au bout de 48heures supprimer son compte, j'ai ainsi realiser le debut d'un cron... qui ne marche pas :
<?php
include('../script/connect_db.php');


/*Cron n°1:
Ce script permet de supprimer tous les comptes qui n'ont pas été valider au-delà de 48 heures.
On scan la table membre, on recupere toute les ligne dont actif=0, puis on compare la date d'inscription avec celle actuel.

48heures = 172800 secondes; date_suppression= date a laquelle ou si la date d'inscription est inferieur doit etre supprimé.*/

$date_suppression=time()-172800;
$sql='DELETE FROM membre WHERE actif=0 AND date_inscription <= \''.$date_suppression.'\''; 
mysql_query($sql);

?>
Pourriez-vous m'aider
Modifié en dernier par analfabete le 26 nov. 2006, 22:05, modifié 1 fois.

Eléphant du PHP | 61 Messages

26 nov. 2006, 17:31

Personne ne sait ? :cry:

Mammouth du PHP | 19672 Messages

26 nov. 2006, 17:38

Qu'est-ce qui ne fonctionne pas : la tâche cron ou ton script ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 61 Messages

26 nov. 2006, 17:39

Mon script

Mammouth du PHP | 19672 Messages

26 nov. 2006, 17:45

Et tu as quoi comme retour ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1961 Messages

26 nov. 2006, 18:02

Bonjour,
La fonction PHP time() ne renvoie pas une date, mais un nombre de secondes.
Ta colonne s'attend à une valeur du type "DATETIME".
Les types éttant différents, ta requête ne fonctionnera pas.

Tu devrais toujours tester le retour de mysql_*, si tu l'avais fait, MySQL aurrait répondu à ta question.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

26 nov. 2006, 20:52

ma colonne date_inscription est un timestamp comme la fonction time avec un entier de 10 caractères, ou je c'est moi qui est mal comprit ton explication

ViPHP
ViPHP | 1961 Messages

26 nov. 2006, 20:56

Re,

Fais un "SELECT" sur ta colonne, et dis-moi ce que tu vois.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 61 Messages

26 nov. 2006, 21:17

$date_suppression=time()-172800;
$sql='SELECT idmembre FROM membre WHERE actif=0';// AND date_inscription <= \''.$date_suppression.'\''; 
$req=mysql_query($sql);
while($res=mysql_fetch_array($req))
{echo $res['idmembre'];}


?>
Cela ne donne rien :-(

Eléphant du PHP | 61 Messages

26 nov. 2006, 21:21

Voilà ma table membre:
Image

ViPHP
ViPHP | 1961 Messages

26 nov. 2006, 21:29

Re,
Comme tu vois, il-y-a des valeurs bizarres dans ta table.

Je suis étonné de voir des '0' zéros dans la colonne date_inscription.

Montre le code d'insertion d'un potentiel nouveau membre.

En suite pour ta requête (si je me fie à la position de la valeur) ta colonne est de type CHAR ou VARCHAR et toi tu testes avec un numérique, essaie ceci

Code : Tout sélectionner

$sql='SELECT idmembre FROM membre WHERE actif="0"';
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 61 Messages

26 nov. 2006, 21:34

prend en compte juste la derniere ligne car je n'avais pas encore intégré le timestamp de manière correct maintenant cela marche comme tu peux le voir pour la dernière ligne deplus cela ne gene en rien mon script car avec les valeur 0 les comptes devrait etre supprimer
La colonne clé: attribut une clé d'activation comme aucun n'est activé la clé reste comme elle est, si le compte est activer le supprime le champ clé
Ma valeur actif est de type enum("0","1")
Fais moi signe si tu veut encore le script d'inscription car il y a plusieur fichiers...

ViPHP
ViPHP | 1961 Messages

26 nov. 2006, 21:37

Avant de poursuivre,

La requête que je t'ai donnée, fonctionne ?

Code : Tout sélectionner

$sql='SELECT idmembre FROM membre WHERE actif="0"';
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 61 Messages

26 nov. 2006, 21:41

$sql='SELECT idmembre FROM membre WHERE actif="0"';// AND date_inscription <= \''.$date_suppression.'\''; 
$req=mysql_query($sql);
while($res=mysql_fetch_array($req))
{echo $res['idmembre'];}
Je l'avait déja essayer plus haut mais cela ne marcher pas

Eléphant du PHP | 61 Messages

26 nov. 2006, 21:42

arf je pense que le problème provient du type enum attend je change le type en mettant tinyint