Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Probleme execution de script php avec cron

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Probleme execution de script php avec cron

n°2237931
bupbup
Posté le 13-09-2014 à 13:02:23  profilanswer
 

Bonjour,
Voila j'ai un site hébergé pas 1and1 sur un serveur linux.
J'ai suivi les explications de 1and 1 pour créer une tache cron : https://help.1and1.com/hosting-c376 [...] 95882.html
 
J'ai tout réussi jusqu’à la fin et tout fonctionne, mais voilà mon problème, lorsque que je change le script de base donnée dans l'exemple ci deussus par ce script

Code :
  1. <?php
  2.   try
  3.   {
  4.  $bdd = new PDO('mysql:exemple;dbname=exemple', 'exemple', 'exemple');
  5.   }
  6.   catch (Exception $e)
  7.   {
  8.     die('Erreur : ' . $e->getMessage());
  9.   }
  10. function envoieMailRappelProf($exemple)
  11. {
  12. $expediteur="exemple";
  13. $expediteurMail="exemple";
  14. global $bdd;
  15. $req=$bdd->query("SELECT * FROM EXEMPLE WHERE id=".$exemple);
  16. $profDonnees=$req->fetchALl();
  17. foreach( $profDonnees as $unProf)
  18. {
  19.  $emailProf=$unProf['email'];
  20.  $nomProf=$unProf['nom'];
  21.  $prenomProf=$unProf['prenom'];
  22. }
  23. $contenuMail="exemple";
  24. $mail =$emailProf;
  25. if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail))
  26. {
  27. $passage_ligne = "\r\n";
  28. }
  29. else
  30. {
  31. $passage_ligne = "\n";
  32. }
  33. $message_txt = $contenuMail;
  34. $message_html = "<html><head></head><body>".$contenuMail."</body></html>";
  35. $boundary = "-----=".md5(rand());
  36. $sujet = "exemple";
  37. $header = "From: \"".$expediteur."\"<".$expediteurMail.">".$passage_ligne;
  38. $header.= "Reply-to: \"".$expediteur."\" <".$expediteurMail.">".$passage_ligne;
  39. $header.= "MIME-Version: 1.0".$passage_ligne;
  40. $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
  41. $message = $passage_ligne."--".$boundary.$passage_ligne;
  42. $message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
  43. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  44. $message.= $passage_ligne.$message_txt.$passage_ligne;
  45. $message.= $passage_ligne."--".$boundary.$passage_ligne;
  46. $message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
  47. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  48. $message.= $passage_ligne.$message_html.$passage_ligne;
  49. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  50. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  51. mail($mail,$sujet,$message,$header);
  52. }
  53. $listProf=$bdd->query("SELECT * FROM EXEMPLE" );
  54. $listProfD=$listProf->fetchAll();
  55. foreach($listProfD as $aProf)
  56. {
  57. envoieMailRappelProf($aProf['id']);
  58. }
  59. ?>


 
Si j’exécute le script à la main en saisissant L’URL dans un navigateur tout marche bien.
mais dans cron j'ai essayé les deux façons suivantes mais aucune ne marche
0 1 * * 6 /usr/bin/php /exemple/exemple/exemple/exemple/monscript.php
0 1 * * 6 WGET -q http://monsite.com/monscript.php
 
Pour info j'ai essayé de modifié monscript.php  via nano monscript.php ,par le script exemple donné par 1and1 et cela fonctionne.
Je pense donc que le problème vient du script en lui même mais je ne comprends pas pourquoi puisque le script fonctionne normalement lorsqu'il est lancé à la main.
 
Si quelqu'un a une idée, par avance merci


Message édité par bupbup le 14-09-2014 à 11:03:11
mood
Publicité
Posté le 13-09-2014 à 13:02:23  profilanswer
 

n°2237933
bupbup
Posté le 13-09-2014 à 13:50:44  profilanswer
 

PS : peut être ce sujet devrait être dans la section linux?
Si tel est le cas veuillez me le dire et je déplacerais si cela m'est possible.

n°2237954
bupbup
Posté le 14-09-2014 à 11:02:39  profilanswer
 

Voilà la solution

Code :
  1. * * * * * /usr/bin/wget -q http://monsite.com/monscript.php

n°2237985
rufo
Pas me confondre avec Lycos!
Posté le 15-09-2014 à 10:48:07  profilanswer
 

Je sais pas si ça vient de là, mais tu sais que quand t'appelles un script php en ligne de commande (ex : /usr/bin/php /exemple/exemple/exemple/exemple/monscript.php), certaines variables d'environnement n'existent plus (ex : $_SERVER). Du coup, si ton script php fait appel directement ou indirectement (par un include par ex) à $_SERVER, ben ça va pas le faire :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Probleme execution de script php avec cron

 

Sujets relatifs
(module/script) Espace Secur + messagerie interneProblème RegEx et accent
Problème basique HTML / CSSProbleme menu onglet
Création d'un script ou btach de copie de fichier sous windowsScript affichage taille fichier
problème de formulaire mailproblème de compilation
Script changement auto stream Twitchproblème de mise à jour de la BD
Plus de sujets relatifs à : [Résolu] Probleme execution de script php avec cron


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR