PHP, comment simuler une crontab ???...

Fermé
Nico - 7 déc. 2004 à 16:08
Reivax962 Messages postés 3671 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
A voir également:

10 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
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
4
Oups, dsl j'ai oublié le lien.

Le voici : https://matthieu.developpez.com/execution_periodique/

Voilà.
1
tout est dans le lien çi dessous:
https://matthieu.developpez.com/execution_periodique/
1
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
Si tu trouves, dis le moi ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
up, car moi aussi, cela m'interesse...
0
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.
0
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.
0
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

//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
0
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
0
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
0
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
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..
0
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é...
0
Ça veut dire que ton ordinateur doit être allumé tous les jours.
Solution un peu bête...
0
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.
0
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
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 =)
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
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
0