Parse error: syntax error, unexpected T_VARIABLE

Bonjour,

Alors que mon code fonctionnait parfaitement, et sans ajouter de modification majeure, je viens de recevoir ce message d'erreur : Parse error: syntax error, unexpected T_VARIABLE

Je le connais, cela veut dire que j'appelle une variable non-existante... Le problème, c'est que ce n'est pas le cas ! L'erreur se produit à la première ligne de mon code, dans laquelle il n'y a que le "<?php"... quel est le problème ?

Merci beaucoup !

4 réponses

  1. Bonjour,

    vous pouvez poster le message d'erreur complet ainsi que le début de votre page ?

    Cordialement
    0
    1. Voici le message d'erreur complet :

      Parse error: syntax error, unexpected T_VARIABLE in /homez.687/comejxch/www/previ_ciblee.php on line 1

      Et voici l'intégralité du code de mon fichier previ_ciblee.php :
      <?php
      
      //création de la variable $ip, récupérant l'adresse IP de l'utilisateur :
      
      $ip = $REMOTE_ADDR;
      
      //Afichage du résulutat selon l'adresse IP : 
      	
      	if($ip == "109.209.4.192"){
      	echo '
      	<div id="cont_2f8fd75014e035deab01ff1b98128acd">
      <span id="h_2f8fd75014e035deab01ff1b98128acd">Météo Sargé-sur-Braye</span><script type="text/javascript" src="http://www.tameteo.com/wid_loader/2f8fd75014e035deab01ff1b98128acd"></script>
      </div>
      	';}
      	
      	elseif($ip == "80.215.42.90"){
      	echo '
      	<div id="cont_3a07b753e684c84a6992e45da2d83527">
      <span id="h_3a07b753e684c84a6992e45da2d83527">Météo Bourges</span><script type="text/javascript" src="http://www.tameteo.com/wid_loader/3a07b753e684c84a6992e45da2d83527"></script>
      </div>
      	';}
          
          elseif($ip == "78.121.135.180"){
          
      	echo '
      	<div id="cont_1d14e4c2ee052983b6f05c8e7900399b">
      <span id="h_1d14e4c2ee052983b6f05c8e7900399b">Météo <a id="a_1d14e4c2ee052983b6f05c8e7900399b" href="http://www.tameteo.com/meteo_Choue-Europe-France-Loir+et+Cher--1-50924.html" target="_blank" style="color:#808080;font-family:Helvetica;font-size:14px;">Choue</a></span><script type="text/javascript" src="http://www.tameteo.com/wid_loader/1d14e4c2ee052983b6f05c8e7900399b"></script>
      </div>
      	';}
         
      	else{
      	
      	echo '
      	<div id="cont_edc788ec1d2fe5bdb1c35885d125012c">
      <span id="h_edc788ec1d2fe5bdb1c35885d125012c">Météo Orléans</span><script type="text/javascript" src="http://www.tameteo.com/wid_loader/edc788ec1d2fe5bdb1c35885d125012c"></script>
      </div>
      	';}
      
      ?>
      	
      	
      0
  2. Contributeur sécurité
    Hello,

    Tu déclares où $REMOTE_ADDR ?
    Car tu l'utilises dans ta page, mais elle n'est pas déclarée. :)

    Je pense que tu voulais utiliser ça : $_SERVER['REMOTE_ADDR']

    @+
    0
    1. Bonjour !

      $REMOTE_ADDR est une variable assimilée directement à l'adresse IP de l'utilisateur :)
      0
    2. Contributeur sécurité
      Re !

      Sauf que ça ne répond pas à ma question, tu utilises une variable qui n'est pas déclarée dans ton code source.

      Du coup, PHP ne peut pas la lire et te renvoie une erreur.

      Es-tu sûr que tu ne voulais pas utiliser plutôt cette variable : $_SERVER['REMOTE_ADDR']

      @+
      0
    3. Ah oui désolé je n'avais pas vu la fin de ton message.

      J'essaie ça et te tiens au courant, ce qui me semble étrange c'est que jusqu'à maintenant ça fonctionnait parfaitement !
      0
    4. J'ai essayé avec $_SERVER['REMOTE_ADDR'] , ça ne fonctionne pas... Je n'ai pas de message d'erreur, mais ça n'affiche rien :/
      0
  3. Bonjour

    Parse error: syntax error, unexpected T_VARIABLE

    Non, ce message ne signifie absolument pas qu'il y a une variable inconnue. En aucun cas.
    Il signifie que PHP tombe sur une variable, alors qu'il s'attendait à autre chose.
    Peux-tu mettre ton fichier php sur cjoint.com ou autre pour qu'on puisse vérifier s'il n'y a pas de caractères invisibles qui perturbent l'analyse syntaxique ?

    Si $REMOTE_ADDR est automatiquement déclaré chez toi, ça veut dire que tu as l'option register_globals on, ce qui était le cas autrefois mais est fortement déconseillé.
    0
    1. Contributeur sécurité
      Re !

      Autant pour moi, si ce n'est pas ça, essaie d'enregistrer ton fichier en encodage sans BOM.

      @+
      0
    2. Bonjour,

      Voici pour le fichier (en .txt) sur cjoint : http://cjoint.com/13ju/CGdnYLNSaAY.htm

      $REMOTE_ADDR est bien déclarée, car si je mets seulement

      echo ' '.$REMOTE_ADDR.' ';

      ça m'affiche bien mon adresse IP.

      Merci !
      0
  4. Tu as effectivement un BOM au début de ton fichier, il faut donc enregistrer sans BOM.
    Mais ceci n'a aucun rapport avec ton erreur initiale, qui a disparu, ni avec le fait que ça n'affiche rien.
    0
    1. Ton script marche bien chez moi.
      0
    2. Le fichier que tu nous montres ne serait pas inclus dans autre chose ? Aucun doctype, pas de html, head ni body...
      0
    3. Chez moi avec le $_SERVER['REMOTE_ADDR'] tout fonctionne
      0