Se connecter avec
S'enregistrer | Connectez-vous

Script purge compte php

Dernière réponse : dans Programmation

Voilà ce script, en gros le problème c'est qu'il ne fonctionne pas.Je voudrai qu'il recherche des infos dnas la base de donnée mais quand il les ramenes il les compares et ceux de plus de 3 mois, li fait un mise à jour de la base en ajoutant 1 à avertissement

  1. <?php
  2. global $email;
  3. $i='0';
  4. $mail='0';
  5. // on se connecte à MySQL
  6. $db = mysql_connect('sql.free.fr', '****', '*****');
  7. // on sélectionne la base
  8. mysql_select_db('*****',$db);
  9. // on envoie la requête
  10. $req = mysql_query('SELECT email,subscribe,login,avertissement FROM atk_users WHERE admin="0" AND nb_post="0"') or die(mysql_error());
  11. $var = mysql_num_rows($req);
  12.  
  13. while($i <> $var){
  14. while($val = mysql_fetch_array($req)){
  15. $subscribe = $val['subscribe'];
  16. $email = $val['email'];
  17. $avertissement = $val['avertissement'];
  18. $login = $val['login'];
  19. };
  20. $date_now=time();
  21. $trimestre='7776000';
  22. $date=$date_now-$trimestre;
  23. if($avertissement =='0' && $subscribe <= $date){
  24. $i++;
  25. update($email);
  26. }elseif($avertissement =='1' && $subscribe <= $date){
  27. $i++;
  28. $mail++;
  29. }else{
  30. $i++;
  31. };
  32. };
  33.  
  34.  
  35. function email($email){
  36. $sujet="Avertissement forum ";
  37. $message="Bonjour,\n\n";
  38. $message.="Afin de vider régulierement notre base de donnée,<br>\n";
  39. $message.="Vous êtes priez de bien vouloir devenir plus actif sur le forum soit le login ". $login ." sinon passez le délai de 1 semaine,<br>\n";
  40. $message.="Votre compte sera rayé de la base de donnée donc du forum,<br>\n";
  41. $message.="Merci de votre compréhension.\n";
  42. };
  43. function update($email){
  44. // on se connecte à MySQL
  45. $db2 = mysql_connect('sql.free.fr', '*****', '*****');
  46. // on sélectionne la base
  47. mysql_select_db('*****',$db2);
  48. // on insère les informations du formulaire dans la table
  49. mysql_query("UPDATE atk_users SET avertissement='1' WHERE email='".$email."'",$db2) or die(mysql_error());
  50. echo $email;
  51. };
  52. mysql_close();
  53. if ($var>'0' && $var==$i){
  54. echo ($i.' comptes sont avertis et purger<br>');
  55. echo ($mail.' mails ont été envoyés');
  56. };
  57. if ($var='0' && $var==$i){
  58. echo ('Aucun comptes a purger');
  59. };
  60.  
  61. ?>

Autres pages sur : script purge compte php

Lassé par la pub ? Créez un compte

Pour l'instant oui mais en ce moment j'essaye juste de faire fonctionner la fonction update après il manque plus que de rajouté le bout de code dans la condition principale.
Mais je n'est pas arreter de réflechir ce matin et j'ai remarqué que pour la condition, il passe directement au cas où les deux ne sont pas correcte après le else pourtant toute les valeurs sont bien dans la table.
Je ne comprend pas

tu fais pas mal de trucs inutiles, j'ai tout réécrit :

  1. <?php
  2.  
  3. function update($email){
  4.  
  5. //on est deja connecté, pas besoin de rouvrir une autre
  6.  
  7. // on update les informations du formulaire dans la table
  8. mysql_query("UPDATE atk_users SET avertissement='1' WHERE email='".$email."'") or die(mysql_error());
  9.  
  10. echo $email;
  11. }
  12.  
  13.  
  14. function email($email){
  15. // ton code
  16. }
  17.  
  18.  
  19. $db = mysql_connect('localhost', 'root', '');
  20. mysql_select_db('esspurge',$db);
  21. $req = mysql_query('SELECT email,subscribe,login,avertissement FROM atk_users WHERE admin="0" AND nb_post="0"') or die(mysql_error());
  22. $var = mysql_num_rows($req);
  23.  
  24.  
  25. $mail = 0;
  26. $i = 0;
  27.  
  28. while($val = mysql_fetch_array($req))
  29. {
  30. $trimestre='7776000';
  31. $date = time() - $trimestre;
  32.  
  33. if( $val['avertissement'] == '0' && $val['subscribe'] <= $date)
  34. {
  35. update( $val['email'] );
  36. }
  37. else if( $val['avertissement'] == '1' )
  38. {
  39. $mail++;
  40. }
  41.  
  42. $i++;
  43. }
  44.  
  45.  
  46. mysql_close();
  47.  
  48.  
  49. if( $i > 0 )
  50. {
  51. echo $i.' comptes sont avertis et purger<br>';
  52. echo $mail.' mails ont été envoyés';
  53. }
  54. else
  55. {
  56. echo 'aucun compte à purger';
  57. }
  58.  
  59.  
  60. ?>



Tes boucles while merdaient complètement
Si l'email est unique c'est bon, mais il vaut mieux mettre un id unique et auto-incrémenté
Lassé par la pub ? Créez un compte
Tom's guide dans le monde