PHP, comment simuler une crontab ???...
Fermé
Nico
-
7 déc. 2004 à 16:08
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 25 août 2010 à 16:45
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 25 août 2010 à 16:45
Bonjour à tous,
Mon site est chez un hébergeur, donc je n'ai pas accès au systeme, et donc je ne peu utilisé la crontab d'unix ou AT de MS...
Pour cela, quelq'un aurait il une astuce pour lancer des scripts php périodiques ???...
Merci à tous pour vos réponses.
A+
NICO
Mon site est chez un hébergeur, donc je n'ai pas accès au systeme, et donc je ne peu utilisé la crontab d'unix ou AT de MS...
Pour cela, quelq'un aurait il une astuce pour lancer des scripts php périodiques ???...
Merci à tous pour vos réponses.
A+
NICO
A voir également:
- PHP, comment simuler une crontab ???...
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Php alert ✓ - Forum PHP
10 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
8 févr. 2007 à 11:19
8 févr. 2007 à 11:19
Bonjour,
Des scripts périodiques en php, ce n'est hélas pas possible...
Je vois deux solutions :
Tu stockes en base de données la date de la dernière exécution de ton (tes) script(s).
Sur chaque page de ton site, tu rajoutes un include qui contient le script que tu veux exécuter. Bien sûr, il faudra vérifier par rapport à la dernière exécution que l'heure est passée...
Au final, si tu as pas mal de connexions sur ton site, tu pourras obtenir un pseudo-cron à peu près fiable. C'est tout-à-fait adapté si les effets de tes cron sont uniquement visibles par les utilisateurs qui visitent tes pages (ie : le premier utilisateur qui se connecte après l'heure théorique de déclenchement verra les effets, puisqu'il a lui-même déclenché le script). Par contre, si personne ne vas sur ton site, mais que tu veux que celui-ci t'envoie des emails toutes les 30 minutes, ça va pas le faire.
D'où une autre solution que je vois, mais qui nécessite plus de matos...
Tu écris ton script php à une adresse visible de l'extérieur.
Sur une autre machine (ton ordi, par exemple), tu crées un Cron / une tâche planifiée / autre qui va en fait faire la requête vers le script php de ton serveur.
Voilà...
Xavier
Des scripts périodiques en php, ce n'est hélas pas possible...
Je vois deux solutions :
Tu stockes en base de données la date de la dernière exécution de ton (tes) script(s).
Sur chaque page de ton site, tu rajoutes un include qui contient le script que tu veux exécuter. Bien sûr, il faudra vérifier par rapport à la dernière exécution que l'heure est passée...
Au final, si tu as pas mal de connexions sur ton site, tu pourras obtenir un pseudo-cron à peu près fiable. C'est tout-à-fait adapté si les effets de tes cron sont uniquement visibles par les utilisateurs qui visitent tes pages (ie : le premier utilisateur qui se connecte après l'heure théorique de déclenchement verra les effets, puisqu'il a lui-même déclenché le script). Par contre, si personne ne vas sur ton site, mais que tu veux que celui-ci t'envoie des emails toutes les 30 minutes, ça va pas le faire.
D'où une autre solution que je vois, mais qui nécessite plus de matos...
Tu écris ton script php à une adresse visible de l'extérieur.
Sur une autre machine (ton ordi, par exemple), tu crées un Cron / une tâche planifiée / autre qui va en fait faire la requête vers le script php de ton serveur.
Voilà...
Xavier
Oups, dsl j'ai oublié le lien.
Le voici : https://matthieu.developpez.com/execution_periodique/
Voilà.
Le voici : https://matthieu.developpez.com/execution_periodique/
Voilà.
StreM
Messages postés
515
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
28 février 2007
124
Modifié le 1 sept. 2007 à 06:13
Modifié le 1 sept. 2007 à 06:13
Si tu trouves, dis le moi ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici un lien vers un gars qui en a fait un.
Je l'ai essayé en le recopiant (pas de copier/coller parce que y a des fautes de frappes)
Mais j'ai un souci pour le moment à le faire fonctionner .
/!\ il me fait une boucle infini d'erreur /!\
Essayez le (chez vous parce que sinon le serveur va pas apprécier) et dites mois si vous arrivez à le faire marcher.
Je l'ai essayé en le recopiant (pas de copier/coller parce que y a des fautes de frappes)
Mais j'ai un souci pour le moment à le faire fonctionner .
/!\ il me fait une boucle infini d'erreur /!\
Essayez le (chez vous parce que sinon le serveur va pas apprécier) et dites mois si vous arrivez à le faire marcher.
une autre adresse
https://www.webcron.org/
de mémoire:
- maximum de 6 tâches, après faut donner un coup de main au webmaster (don, pub,...)
- période max 1h, on ne peut pas faire plus d'exécution.
https://www.webcron.org/
de mémoire:
- maximum de 6 tâches, après faut donner un coup de main au webmaster (don, pub,...)
- période max 1h, on ne peut pas faire plus d'exécution.
ou alors sais sur ta page index que tu execute une requete msql avec un if comme ca a chaque visite de ton site la requete sera faite
par exemple si tu veux envoyer un mail une tel date a certain membre
tu ajoute un champs dateok a ta structure
sur ta page index tu fais une conecxion a ta base de données et tu la fait verifier si la date inséré correspont a la date d aujourd hui si sais le cas tu lance la fonction de selection des membres qui ont la date = a aujourd hui et tu envoye le mail un truc dans se genre
ps : je viends de vite faire ca avant d aller bosser donc j ai pas tester !!!!!
mais en gros je crois que ca doit se faire comme ca
sinon il y a ouvrir la page de verification en popup mais beaucoup de personnes ont un antipopup ou alors faire la recherche comme indiqué et mettre une si il y a aucune corespondance laisser continuer sur le site si il y a corespondance avec la requete faire un truc du genre
mais le prob sais que si ca doit envoyer 100 mails le gars qui visite le site va devoir attendre lol
et ensuite une fois le mail envoyer refaire le meme renvoyer le membre vers la bonne page.
sinon la j aipas d autre idée qui me vienne car si tu nas pas d acces directe au serveur pour faire le cron je crois que tu n as pas le choix de le faire le cron par la viste de ton site je crois j en sais pas plus.
bon je go bosser bye
par exemple si tu veux envoyer un mail une tel date a certain membre
tu ajoute un champs dateok a ta structure
sur ta page index tu fais une conecxion a ta base de données et tu la fait verifier si la date inséré correspont a la date d aujourd hui si sais le cas tu lance la fonction de selection des membres qui ont la date = a aujourd hui et tu envoye le mail un truc dans se genre
ps : je viends de vite faire ca avant d aller bosser donc j ai pas tester !!!!!
mais en gros je crois que ca doit se faire comme ca
//La date du jour $time = time(); //On définit le set_time_limit a l'infini pour pouvoir envoyer le messsage à tous les membres s'il y en a bcp set_time_limit(0); //On sélectionne tous les emails et on envoie le message $selection="select * from membres where dateok='".$time."'"; $sql=mysql_query($selection); while ($a_row=mysql_fetch_assoc($sql)){ $headers ='From: "Nom expediteur"<Email expediteur>'."\n"; $message ='Bonjour, '.$a_row['pseudo'].' Votre message blablabla ---- Toute l\'équipe de Votre site. '; if(!mail($mail, '[Votre site] sujet du message', $message, $headers)) }
sinon il y a ouvrir la page de verification en popup mais beaucoup de personnes ont un antipopup ou alors faire la recherche comme indiqué et mettre une si il y a aucune corespondance laisser continuer sur le site si il y a corespondance avec la requete faire un truc du genre
<script type='text/javascript'> <!-- function redirect() { window.location='ici l adresse de la page qui va envoye le mail' } setTimeout('redirect()','1000'); // --> </script>"
mais le prob sais que si ca doit envoyer 100 mails le gars qui visite le site va devoir attendre lol
et ensuite une fois le mail envoyer refaire le meme renvoyer le membre vers la bonne page.
sinon la j aipas d autre idée qui me vienne car si tu nas pas d acces directe au serveur pour faire le cron je crois que tu n as pas le choix de le faire le cron par la viste de ton site je crois j en sais pas plus.
bon je go bosser bye
Bonjour à tous
Que de matiéres grises gaspillées pour rien.
A tous nos amis programmeurs pour simuler un Crontab sans se ruiner en hébergement il existe une solution trés simple sur Windows : Panneau de configuration/Planificateur de Taches/.
En effet nombre d'entre vous font fonctionner leur ordinateur pour télécharger le dernier film de Mademoiselle Morgane , pendant ce temps votre ordinateur peut effectuer de nombreuses taches dont celle de Webcron.
Créez une page php qui permettra d'effectuer une tâche ponctuelle ou répétée ,mettez la en ligne, programmez le planificateur de tache pour qu'il accéde à cette page à heure et date determinée par vos soins.
Et voila c'est GRATUIT
Spartiate production Team
Nul bien sans mal
Que de matiéres grises gaspillées pour rien.
A tous nos amis programmeurs pour simuler un Crontab sans se ruiner en hébergement il existe une solution trés simple sur Windows : Panneau de configuration/Planificateur de Taches/.
En effet nombre d'entre vous font fonctionner leur ordinateur pour télécharger le dernier film de Mademoiselle Morgane , pendant ce temps votre ordinateur peut effectuer de nombreuses taches dont celle de Webcron.
Créez une page php qui permettra d'effectuer une tâche ponctuelle ou répétée ,mettez la en ligne, programmez le planificateur de tache pour qu'il accéde à cette page à heure et date determinée par vos soins.
Et voila c'est GRATUIT
Spartiate production Team
Nul bien sans mal
Quel dommage de ne pas avoir lu le premier post... bon allez, je te le remet
Bonjour à tous,
Mon site est chez un hébergeur, donc je n'ai pas accès au systeme, et donc je ne peu utilisé la crontab d'unix ou AT de MS...
Pour cela, quelq'un aurait il une astuce pour lancer des scripts php périodiques ???...
Merci à tous pour vos réponses.
A+
NICO
Bonjour à tous,
Mon site est chez un hébergeur, donc je n'ai pas accès au systeme, et donc je ne peu utilisé la crontab d'unix ou AT de MS...
Pour cela, quelq'un aurait il une astuce pour lancer des scripts php périodiques ???...
Merci à tous pour vos réponses.
A+
NICO
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
25 août 2010 à 09:41
25 août 2010 à 09:41
Et...? Il parle de déclencher une visite sur le serveur via le plannificateur de tache de son pc personnel.. ce qui déclenchera l'action..
Quel dommange de ne pas avoir lu CE post..
Quel dommange de ne pas avoir lu CE post..
C'est toi qui n'a pas compris:
Avec le planificateur de tâches de windows tu planifie le lancement de la page php qui est sur le net...
Par exemple ta page c'est http://monsite.com/script.php
Bah Avec le planificateur de tâches de Windows tu lui dis de lancer cette page web toutes les 5 heures par exemple...
C'est quand même pas compliqué...
Avec le planificateur de tâches de windows tu planifie le lancement de la page php qui est sur le net...
Par exemple ta page c'est http://monsite.com/script.php
Bah Avec le planificateur de tâches de Windows tu lui dis de lancer cette page web toutes les 5 heures par exemple...
C'est quand même pas compliqué...
Une solution que j'ai trouvé est de creer un script batch qui lance le navigateur en ligne de commande avec pour argument l'url du script php, et de placer ce script batch dans le planificateur de taches. A la fin de du script php dans le navigateur, j'ai placé une instruction qui ferme le navigateur.
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
25 août 2010 à 09:42
25 août 2010 à 09:42
Dans la mesure ou mon pc c'est mon serveur.. ça me pose pas de soucis de le laisser allumer 24h/24.. Puis faut bien ça pour seeder =)
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
25 août 2010 à 16:45
25 août 2010 à 16:45
Bonjour,
Pour killerflex, si ton serveur est sur la même machine que ton fichier batch, tu as plutôt intérêt à lancer non pas ton navigateur, mais directement l'exécutable php.exe que tu trouveras dans ton répertoire d'installation, avec, en argument, le chemin du fichier php. C'est plus discret qu'un navigateur qui s'ouvre tout seul ;)
Xavier
Pour killerflex, si ton serveur est sur la même machine que ton fichier batch, tu as plutôt intérêt à lancer non pas ton navigateur, mais directement l'exécutable php.exe que tu trouveras dans ton répertoire d'installation, avec, en argument, le chemin du fichier php. C'est plus discret qu'un navigateur qui s'ouvre tout seul ;)
Xavier