Comment identifier mes erreurs code php ?

Eléphant du PHP | 55 Messages

14 sept. 2011, 11:18

Bonjour,

J'ai une erreur :
Parse error: parse error in C:\wamp\www\PHP\jo2_php\_compteur.php on line 11
Mais je ne sais pas ce que ça veut dire, d'autant que si on compte les lignes vides, la ligne 11 c'est :
<?php
header("Pragma: no-cache");
$compteur=1;
/*
$page=basename($_SERVER['HTTP_REFERER']);
$position = strpos($page, "."); // de 0
$lenom=substr($page, 0, $position);
*/

$lenom="jo2" // rajout pour php
$nomfic=$lenom."_ctr_pt.txt";
Voici mon code en entier, pouvez-vous jeter un oeil à mes sauts de page en fin, lors de l'affichage, je ne suis pas certain ?
<?php
header("Pragma: no-cache");
$compteur=1;
/*
$page=basename($_SERVER['HTTP_REFERER']);
$position = strpos($page, "."); // de 0
$lenom=substr($page, 0, $position);
*/

$lenom="jo2" // rajout pour php
$nomfic=$lenom."_ctr_pt.txt";
$nomficip=$lenom."_ctr_ip.txt";
$aujourdhui = date("d/m/Y");

/*$ipclient=$_SERVER['REMOTE_ADDR'];*/

$ipclient="1234.5678.9101.1213" // rajout pour php
$trace="";


if (file_exists($nomfic)) // fichier compteur
  {
$trace=$trace."fichier compteur existe=OUI  ||  "; //<<---
  $dateficip = date("d/m/Y", filemtime($nomficip));
  if ($aujourdhui <> $dateficip)
    {
$trace=$trace."aujourdhui<>dateficip  ||  "; //<<---
    $fileip=@fopen($nomficip, "w"); // recrée fic ip
    fclose($fileip);
    } 

  $fileip=@fopen($nomficip, "r");  // cherche si IP existante 
  while (!feof($fileip))
    {
    if ($ipclient == fgets($fileip))
      {
      fclose($fileip); // ip déjà écrite
      $file=@fopen($nomfic, "r+"); 
      fscanf($file, "%d", $compteur);
      fclose($file);
$trace=$trace."IP EXISTE + lit_compteur ||  "; //<<---
      goto fin;
      }
    }
  fclose($fileip);

$trace=$trace."IP N'EXISTE PAS  ||  "; //<<---
  $fileip=@fopen($nomficip, "r+");
    fputs($fileip, "\n"); 
    fputs($fileip, $ipclient);
  fclose($fileip);

  $file=@fopen($nomfic, "r+"); 
   fscanf($file, "%d", $compteur);
   $compteur++;
   rewind($file);
   fputs($file, $compteur);
  fclose($file);
$trace=$trace."a écrit IP ET Ctr+1  ||  "; //<<---
  }

else 

  {
$trace=$trace."compteur existe=NON  ||  "; //<<---
  $fileip=@fopen($nomficip, "w");
   fputs($fileip, $ipclient);
  fclose($fileip);
  $file=@fopen($nomfic, "w");
   fputs($file, $compteur);
  fclose($file);
  }
fin:
$trace=$trace."FIN  ||  "; //<<---

echo $compteur.\n\n;
// vérification
echo "position = ".$position.\n;
echo "nom html = ".$lenom;
echo "nom php = ".$nomfic;
echo "ip client = ".$ipclient;
echo "nom fic ip = ".$nomficip;
echo "aujourd\'hui = ".$aujourdhui;
echo "date fic ip = ".$dateficip;
echo $trace; 
?>
Merci.
.
Cordialement.

Joe.
.

ViPHP
ViPHP | 2577 Messages

14 sept. 2011, 11:51

L'erreur est sur la ligne 10 en fait comme souvent, c'est la ligne précédente.

Code : Tout sélectionner

$lenom="jo2" // rajout pour php

Mammouth du PHP | 19672 Messages

14 sept. 2011, 11:54

Le message d'erreur est pourtant explicite et t'indique le numéro de la ligne où PHP rencontre une erreur.

Là, ta ligne en erreur est celle-ci :
$lenom="jo2" // rajout pour php
PHP rencontre un caractère tout à fait inattendu qui n'a pour lui aucun sens traduisible en action quelconque. Il manque quelque chose dans ta ligne. Attention sur ce point précis, PHP est moins laxiste que JavaScript qui permet plus facilement cette omission, je te laisse observer très attentivement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 55 Messages

14 sept. 2011, 13:12

Bonjour,

Merci, vu !
C'est vicieux ce ";" du C... je me fais souvent avoir, y a mille ans que je nécris plus de C...
Mais il a le droit de dire qu'il ne rencontre pas de ";", ou au moins énumérer les possibilité fréquentes, d'autres éditeurs signalent ça (j'utilise juste l'émulateur Apache).
.
Cordialement.

Joe.
.