Erreur de script PHP pour crontab

Erreur de script PHP pour crontab - PHP - Programmation

Marsh Posté le 28-11-2011 à 08:28:26    

Bonjour,
 
Je voulais lancer un script PHP, toutes les dix minutes, via crontab, pour vérifier les utilisateurs inactifs depuis trop longtemps.
 
Pour cela, dans ma base de données d'utilisateur, j'ai une colonne "time_out" dans lequel est stocké le timestamp de la dernière modification.
 
Cependant, lorsque j’exécute mon script PHP en ligne de commande, il y a un problème.
 
Avec la ligne de commande :
 

Code :
  1. php time_out.php


 
J'obtiens l'erreur :
 

Code :
  1. PHP Warning: Directive 'register_globals' is deprecated in PHP 5.3 or greater in Unknow on line 0.
  2. Warning: Directive 'register_globals' is deprecated in PHP 5.3 or greater in Unknow on line 0.


 
Enfin, voici mon script :
 

Code :
  1. <?php
  2. /*Script de verification des connections inactives*/
  3. try
  4. {
  5.  $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  6.  $bdd = new PDO('mysql:host=localhost;dbname=intranet', 'root', '', $pdo_options);
  7.  $reponse = $bdd->query("SELECT time_out, id_utilisateur AS id FROM utilisateur WHERE connection = '1'" );
  8.  $utilisateur = $reponse->fetchAll(PDO::FETCH_OBJ);
  9.  $reponse->closeCursor();
  10.  $step = time();
  11.  foreach ($utilisateur AS $u)
  12.  {
  13.   if ($u->time_out <= $step)
  14.   {
  15.    $reponse = $bdd->prepare("UPDATE utilisateur SET connection = '0', time_out = '0' WHERE id_utilisateur = :id" );
  16.    $reponse->execute(array('id' => $u->id));
  17.    $reponse->closeCursor();
  18.   }
  19.  }
  20.  unset($step);
  21.  unset($utilisateur);
  22. }
  23. catch (Exception $erreur)
  24. {
  25.  die ('Impossible d\'executer le script de vérification.');
  26. }
  27. ?>


 
Pouvez-vous m'aider s'il vous plait?

Reply

Marsh Posté le 28-11-2011 à 08:28:26   

Reply

Marsh Posté le 28-11-2011 à 10:18:34    

Bonjour,
 
J'ai finalement résolu mon problème.
 
J'explique la démarche:
 
Je suis allé voir dans le "php.ini" si l'option était bien désactivé.
 
Je me suis rendu compte que l'option était en commentaire: chose fort logique, puisque depuis php 5.3, l'option par défaut est "OFF".
 
Après avoir lu quelques milliers de topic, j'ai fini par créer un .htaccess, pour forcer la désactivation. Seulement, impossible de le faire comprendre a mon fichu script.
 
J'ai bien tout essayé.
 
Je décide donc de retourner dans le php.ini, pour reprendre depuis le début. Lorsque, soudain, je remarque la phrase :
 

Code :
  1. ; We now set "register_globals" in /user/syno/etc/php/user-setting.ini


 
C'est ici que tout se déroule.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed