Erreurs en PHP - Elles surviennent pas à chaque fois

Bonjour tout le monde

J’ai récupéré un agenda en php et parfois j’ai des erreurs et parfois non. Alors je comprends pas ce qu’il se passe (j’y connais rien en PHP :ane:)

Je vous mets les erreurs et les lignes incriminées:

Unexpected $ *****.php l22

$DB->DbQuery("SELECT DISTINCT util_id, CONCAT(util_nom,' ',util_prenom) AS nomUtil FROM ${PREFIX_TABLE}utilisateur LEFT JOIN ${PREFIX_TABLE}partage_planning ON ppl_util_id=util_id WHERE util_id=".$idUser." OR util_autorise_affect='1' OR (util_autorise_affect='2' AND (util_partage_planning='1' OR (util_partage_planning='2' AND ppl_consultant_id=".$idUser."))) ORDER BY nomUtil");

Unexpected $ ********.php l 22


$DB_CX->DbQuery("SELECT DISTINCT util_id, CONCAT(util_prenom,' ',util_nom) AS nomUtil FROM ${PREFIX_TABLE}utilisateur LEFT JOIN ${PREFIX_TABLE}partage_planning ON ppl_util_id=util_id WHERE util_id=".$idUser." OR (util_partage_planning='1') OR (util_partage_planning='2' AND ppl_consultant_id=".$idUser.") ORDER BY nomUtil");

$PREFIX_TABLE="ia_";

Voilà, ce que je comprends pas moi, c’est que les erreurs ne se produisent pas à chaque fois.

Si qq’un a un début de piste… Merci d’avance

C’est réellement ça les erreurs? On peut pas avoir l’erreur compléte, fournie par PHP?

En voilà une bizarre :neutre:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE in agenda.php on line 13

13:         $idUser = Session_ok($sid);
function Session_ok($idSession) {
  global $DB_CX, $PREFIX_TABLE, $APPLI_STYLE, $DUREE_SESSION, $TELEPHONE_VF, $zlVu, $USER_SUBSTITUE;

  // On supprime les sessions de plus de 1 heure
  $DB_CX->DbQuery("DELETE FROM ${PREFIX_TABLE}sid WHERE sid_last_maj < '".date("Y-m-d H:i:s", (time() - $DUREE_SESSION))."'");

  // On recherche les sessions encore valides
  $DB_CX->DbQuery("SELECT util_id, util_interface, util_telephone_vf, util_planning, sid_util_subst_id FROM ${PREFIX_TABLE}sid, ${PREFIX_TABLE}utilisateur WHERE sid_id='".$idSession."' AND sid_util_id = util_id AND sid_session_id='".@session_id()."'");

  if ($DB_CX->DbNumRows()) {
    // Recuperation de l'uid et du style
    $idUser = $DB_CX->DbResult(0,0);
    $APPLI_STYLE += $DB_CX->DbResult(0,1);
    $TELEPHONE_VF = ($DB_CX->DbResult(0,2)=="O") ? true : false;
    $zlVu = ($zlVu=="") ? $DB_CX->DbResult(0,3) : $zlVu;
    $USER_SUBSTITUE = $DB_CX->DbResult(0,4);
    // Vérification de la substitution
    $DB_CX->DbQuery("SELECT util_id FROM ${PREFIX_TABLE}utilisateur LEFT JOIN ${PREFIX_TABLE}partage_planning ON ppl_util_id=util_id WHERE (util_id=".$USER_SUBSTITUE." AND util_partage_planning='1') OR (util_id=".$USER_SUBSTITUE." AND util_partage_planning='2' AND ppl_consultant_id=".$idUser.")");
    if (!$DB_CX->DbNumRows()) {
      $USER_SUBSTITUE = $idUser;
      $majSubst = ", sid_util_subst_id=".$idUser;
    }
    // Bail ok, on le renouvelle
    $DB_CX->DbQuery("UPDATE ${PREFIX_TABLE}sid SET sid_last_maj=now()".$majSubst." WHERE sid_id='".$idSession."'");
  }
  else {
    Header("location: deconnexion.php?msg=5");
    exit;
  }

  return ($idUser);
}

tien prend le mien d’agenda il bug pas
http://davidberlioz.free.fr/?page=ulc

ya vraiment des etoiles dans ton erreur!?!?

Et essaye de mettre vraiment les lignes correspondantes avec le num devant les lignes parce ke la c cho de voir.

Ca a lair detre une erreur de variable et vu ke tu dois pas utiliser cette query tout le temps ca n’arrive pas tout le temps, non?

Je vois pas l’erreur, mais en tripatouillant ça doit se corriger. Par contre l’auteur de ce code devrait se pendre :o

C’est bien le problème, je m’y connais pas assez pour tripatouiller :ane:

Non non ya pas d’étoiles, c’est moi qui les ai mise pour pas avoir des noms à rallonge.
Sinon, pour les lignes c’est celles que j’ai donné. Ca représente la ligne en question à chaque fois (même si c’est sur plusieurs lignes dans le post :ane: )

Comment expliquer le fait que ces erreurs ne se produisent pas à chaque fois ???
C’est possible que parfois Apache se mélange les pinceaux et ne génère pas le bon code?

Ben pour être honnête le code est très sale donc je lis pas. Mais en général, l’erreur que tu as eu , c’est juste une parse erreur : ton code est malformé. Faut voir ce que tu fais (eval(), require, include, *_once) en plus de ce que fait l’agenda.

Il n’est peut être pas prévu pour ta version de php, etc. (je sais que certains de mes scripts php3 ne tournent plus en php4/5).

1- Moi je fais rien en plus de l’agenda :ane:
2- J’ai exprés laisser mon ancienne version de EasyPhp (la 1.6)

PHP != easyPHP.

Oui je sais mais c’est lié qd meme

Ben j’utilise pas easyphp donc voilà. Si tu ne sais pas quelle version de php ça utilise, je ne peux pas t’aider plus.

C’est PHP 4.2.0 et MySql 3.23.49

Et ton script il est censé tourner sur quelles versions?

C’est une très bonne question.
J’ai 2 machines avec la meme version d’EasyPhp.
Sur l’une aucun pb, sur l’autre les pbs mentionnés ci dessus.

A noter que le serveur sur lequel se trouvent les pbs a été victime d’une brutale coupure de courant et il semble que les pbs ont lieu depuis.
J’ai pourtant réinstallé proprement EasyPhp et remis les *.php originaux