m_abdlmalek
Messages postés21Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 5 septembre 2011
-
16 mai 2011 à 18:21
m_abdlmalek
Messages postés21Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 5 septembre 2011
-
19 mai 2011 à 10:20
Bonjour,
Je suis sur un projet de site professionnel, je suis pas trop mal sur PHP mais seulement autodidacte, pas académique :-D. Svp j'aurais besoin d'aide sur une fonction, en gros je voudrais nettoyer périodiquement une table MySQL de membres qui n'ont pas validé leur inscription par email (les inscrits c'est géré dans une autre base). Je veux que çà se lance tout seul, que çà ne finisse jamais même en refermant après et même si le serveur redémarre, elle doit redémarrer dés que le serveur est ok.
Je suis sur une piste suite à des idées ici et là sur le web mais j'ai peur de l'essayer (vu qu'une fois lancé çà ne va plus s'arrêter) et que çà me fiche le système en l'air alors je voudrais l'avis d'experts :
cod57
Messages postés1653Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 201319 16 mai 2011 à 21:02
bonsoir
connais tu les cronjob
un serveur qui appeles pour toi une page ...
c'est souvent une option de ton hebergeur ...
http://www.cronjob.com/cron-job-tutorials.html Bonne programmation !
m_abdlmalek
Messages postés21Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 5 septembre 2011 17 mai 2011 à 00:06
Bonjour cod57,
Merci pour la réponse, mais je crois que les Crons c'est plutot pour les utilisateurs Linux, non ? or je suis sous Windows j'utilise Easy PHP 5 + Apache + MySQL, et je souhaite pas trop utiliser le module At j'ai entendu que c'était pas trop fiable
Sinon mon code ci-dessus est pas bon ?
J'ai vu sur le web que c'était possible avec juste un script php de ce genre
Et sincèrement j'ai pas envie de faire dépendre mon site d'une tâche qui serait réalisée par un autre site
m_abdlmalek
Messages postés21Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 5 septembre 2011 17 mai 2011 à 13:29
Bonjour,
Ok merci pour la réponse Syndrael.
Cà règle le problème de la répétition journalière et la limite de temps.
J'ai découvert ce module c'est très intéressant. J'aurai juste 3 questions :
1) Est-ce que la tâche Windows reste enregistrée même en cas de redémarrage du serveur ?
2) Et si par exemple je programme pour 12h et que à 11h30 le serveur est down jusqu'à 13h00, est-ce qu'il se rappelle qu'il ne l'a pas lancée et la lance illico au redémarrage ou il ne lancera qu'à 12h le lendemain ?
3) Sinon également si j'utilise cette tâche j'ai plus besoin logiquement de garder toutes les fonctions de la page nettoyage.php mais uniquement ma requête SQL. Et plus la peine non plus de garder la fermeture Javascript n'est-ce pas ?
4) Si je ne garde pas la fermeture Javascript, et donc si je ne ferme pas cette page lancée chaque jour par le serveur, est-ce que les pages ouvertes ne risquent pas de remplir le cache navigateur et me bloquer le disque dur plus rapidement (c vrai que c'est que quelques Ko mais bon à terme dans quelques années vaut mieux être prévoyant)
5) Et si je ne ferme pas les pages nettoyage après leur exécution, n'y a t-il pas de risque qu'un utilisateur membre la voie ? Et dans ce cas comment permettre uniquement à la tâche Windows d'accéder à la page (faut-il faire un .htaccess ? c'est possible en combinant avec une tâche Windows dont le fichier cible se trouve dans un dossier protégé par .htaccess ?)
Désolé c'est beaucoup à la fois mais mon problème est bien précis
Merci d'avance pour vos réponses éclairées et pointues en la matière !
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 17 mai 2011 à 14:13
1. oui
2. il faudra relancer le script manuellement, mais si ton projet est professionnel, rares doivent être les interruptions. Après un jour sans nettoyage ne doit pas être bloquant dans le principe.
3. Nettoyage.php ne doit fournir que des opérations liées au serveur. Donc pas d'HTML, Javascript etc..
4. Tu ne passes plus par le navigateur, c'est une ligne de commande tu ne passes même plus par IIS
5. Le script nettoyage.php ne doit pas être accessible depuis un navigateur.
S.
m_abdlmalek
Messages postés21Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 5 septembre 2011 17 mai 2011 à 15:40
Merci Bcp OK c'est bon j'ai une bonne visibilité sur les choses désormais
Juste une dernière chose :
5) Donc finalement est-ce que .htaccess ne va pas bloquer la tâche Windows qui va l'exécuter périodiquement ?
En d'autres termes si je protège la page nettoyage.php avec un .htaccess, cela ne bloque-t-il que les navigateurs sur la page php ou bloquera-t-il aussi la tâche Windows ?
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 17 mai 2011 à 15:50
.htaccess = Apache.. donc comme tu ne passes pas par Apache y'a pas de souci.
Mais d'un autre coté ça veut dire que tu laisses ta page accessible depuis un navigateur, sinon ton htaccess ne sert à rien.
S.
m_abdlmalek
Messages postés21Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 5 septembre 2011 17 mai 2011 à 16:10
Voilà tu viens de mettre le doigt sur le problème !!!!
C'est que lors de la définition de la tâche, il demande l'application à utiliser et l'objet à exécuter.
Or si je mets Internet Explorer ou un navigateur je pourrai la lancer mais comme tu dis çà ouvre la page à IE ou Mozilla si qqun connaît l'adresse directe de la page...
Si je mets le fameux php.exe, je tombe dans Apache et là je suis encore bloqué par .htaccess...