Parse error: syntax error, unexpected T_IF in /Applications/MAM...

Bonjour,
Je suis développeur expérimenté mais j'avoue que la je bloque :
Voici l'erreur :
Parse error: syntax error, unexpected T_IF a in /Applications/MAMP/htdocs/FSE/nav.php on line 4

et voici le script :
<?php 
if ($quest = 'acceuil'){
	$page = $quest;
}else if ($quest = 'archivesfse'){
	$page = $quest;
}else if ($quest = 'unlog'){
	header "Location: unlog.php";
}else{
	$page = 'acceuil';
}
$page = ($page . '.php');
?>


3 réponses

  1. Bonjour,

    Le problème du double == est certes réel, mais c'est un problème purement fonctionnel qui ne justifie absolument pas un Parse Error.
    C'est un peu comme si je disais qu'il y a une faute à « accueil ».

    Par contre, pour le header, il faut effectivement l'écrire avec des parenthèses. Ceci-dit, ce n'est là encore pas le premier problème que tu as, car cela donnerait une autre erreur :
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in test.php on line 7


    Le code tel que tu le donnes, et en corrigeant le header, passe sans soucis chez moi.
    N'y a-t-il rien d'autre dans ta page PHP ?
    À quelle ligne correspond la ligne 4 ?

    En général, une erreur de syntaxe du genre « unexpected quelque chose » dénote d'une erreur dans le code précédent la ligne indiquée. Du genre une accolade ou des guillemets non fermée, voire un point-virgule manquant.

    Xavier
    1. ajoutes == dans tes if
      if ( $quest == '...') { ... } else if ($quest == '...' ){....} 
      
      écrit header comme ça:
      header("location:..."); 


      et reposes ton cerveau ! :)
      1. L'erreur vien de la ligne 4 soit :

        }else if ($quest = 'archivesfse'){

        Il fait mettre deux egale si tu veut que sa marche voici le code :

        <?php
        if ($quest == 'acceuil'){
        $page = $quest;
        }else if ($quest == 'archivesfse'){
        $page = $quest;
        }else if ($quest == 'unlog'){
        header "Location: unlog.php";
        }else{
        $page = 'acceuil';
        }
        $page = ($page . '.php');
        ?>