Planificateur de tâches

Petit nouveau ! | 3 Messages

27 juil. 2011, 17:31

Bonjour,

J'essaie de faire exécuter un script automatiquement par le planificateur de tâches.
Lorsque je saisie l'url dans ie il fonctionne mais pas avec le planificateur dans lequel j'indique l'url de la page où se trouve le script.

Pouvez vous m'aider ?

Voici le code du script :

#!/usr/local/bin/php
<?php

// Variables de la page
$erreur = "";
$rappelabonnement = true;

// Fonctions de la page

// Actions de la page


$querySql = "SELECT DATE
FROM ".$table_rappelabonnement."
WHERE DATE='".date("Y-m-d")."'";
//echo $querySql."<br />";
$result = $bd->sql_query($querySql);
if ($bd->sql_numrows($result)>0)
{
while ($row = $bd->sql_fetchrow($result))
{
$rappelabonnement = false;
}
}

if ($rappelabonnement)
{
$querySql = "SELECT ".$table_clients.".EMAIL, ".$table_clients.".LANGUE
FROM ".$table_abonnement."
JOIN ".$table_clients." ON (".$table_clients.".ID_CLIENT=".$table_abonnement.".ID_CLIENT)
WHERE ".$table_abonnement.".DATE_FIN='".date("Y-m-d",time()+15*24*60*60)."'
ORDER BY EMAIL";
//echo $querySql."<br />";
$result = $bd->sql_query($querySql);
if ($bd->sql_numrows($result)>0)
{
while ($row = $bd->sql_fetchrow($result))
{
// Envoie d'un mail confirmant l'inscription à l'utilisateur
include($rep_par_rapport_racine."lang/".$row["LANGUE"].".inc.php");
include($rep_par_rapport_racine."mail/rappelabonnement.inc.php");

@mail_html($row["EMAIL"], $msgTitle, $msgTxt, $msgHtml, $mailWebmasterAbonnement);
}
}

$querySql = "INSERT INTO ".$table_rappelabonnement." (DATE) VALUES ('".date("Y-m-d")."')";
//echo $querySql."<br />";
$bd->sql_query($querySql);
}
?>

Merci

devlop78
Invité n'ayant pas de compte PHPfrance

28 juil. 2011, 02:26

Planificateur ?? Ca me fait penser à Windows ça, donc je doute que l'interpréteur php soit à l'endroit dans lequel tu l'indiques. D'ailleurs, le fait d'utiliser IE ira dans ce sens.

Je ne suis pas sûr que l'on puisse créer un executable aussi simplement sous Windows. Mais tu peux très bien, en connaissant l'adresse de php, mettre dans ton planificateur (ou un .bat) /access/vers/ton/interpreteur/php.exe "fichier.php" et si tu en as pas mal, tu peux rajouter l'executable de l'interpréteur php dans les variables (%PATH je crois) de Windows pour éviter d'entrer le chemin entier.

Bienvenue dans Windows ;)

Eléphant du PHP | 245 Messages

29 juil. 2011, 15:50

Sous windows, tu crées un fichier executer.bat avec les 2 lignes :

Code : Tout sélectionner

@cd c:\Program Files\php @php.exe -q c:\repertoire\fichier.php %1 %2 %3 %4
explications :

ligne 1 : tu te places dans le répertoire de PHP (optionnel si ce chemin fait parti du path de tes variables d'environnement)
ligne 2 : tu demandes à php d'executer le fichier (qui peut se trouver hors de ton répertoire htdocs)

Ensuite tu créée ta tache planifiée tu lui demande d'éxecuter le .bat

En gros ca revient à utiliser PHP en ligne de commande à la place de VB ou PERL

remarque : dans ce cas de figure, cela ne sert à rien d'utiliser les variables relatives au serveur($_GET,$_POST, etc...)