Parse error: syntax error, unexpected '['

Résolu
maxoodu757 Messages postés 39 Statut Membre -  
maxoodu757 Messages postés 39 Statut Membre -
Bonsoir, je suis en train d'apprendre le PHP, je réalise un TP provenant de Openclasroom et j'ai une erreur dans le code que je ne trouve pas.
J'ai 2 pages : formulaire.php et secret.php

Code de formulaire.php :

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8"/>
  <title>Le formulaire</title>
 </head>
 <body>
  <p>Entrez le mot de passe d'accès au ficher.</p>
  <form action="secret.php" method="post">
   <input type="password" name="mot_de_passe"/>
   <input type="submit" value="Valider"/>
  </form>
 </body>
</html>


Code de secret.php :

<!DOCTYPE html>
<html>
 <head>
  <title>Codes secrets</title>
  <meta charset "utf_8"/>
 </head>
 <body>
  <?php
  
  if (isset (§_POST["mot_de_passe"])) AND (§_POST["mot_de_passe"]==pass)
  {
   echo "<p>Le mot de passe est \"poire\"</p>" ;
  }
  else
  {
   echo "<p>Le mot de passe est incorrect !</p>" ;
  }
  
  <?
 </body>
</html>

L'erreur est "Parse error: syntax error, unexpected '[' in C:\wamp\www\PHP\secret.php on line 10
"

Merci d'avance pour votre aide et bonne soirée.

3 réponses

  1. Zakarya93 Messages postés 1026 Statut Membre 10
     
    Utilise les balises de couleurs syntaxiques :
    <!DOCTYPE html>
    <html>
     <head>
      <title>Codes secrets</title>
      <meta charset "utf_8"/>
     </head>
     <body>
      <?php
      
      if (isset (§_POST["mot_de_passe"])) AND (§_POST["mot_de_passe"]==pass)
      {
       echo "<p>Le mot de passe est \"poire\"</p>" ;
      }
      else
      {
       echo "<p>Le mot de passe est incorrect !</p>" ;
      }
      
      <?
     </body>
    </html>
    1
    1. maxoodu757 Messages postés 39 Statut Membre
       
      Bonsoir comment avez-vous fait pour mettre les couleurs ? C'est la première fois que je post un code ici. Sinon, avez-vous une idée de l'erreur ? J'ai cherché un oubli de point-virgule ou de parenthèse mais je ne trouve pas.
      0
    2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Il faut aller sur le petite flèche à côté de la balise de code et choisir le langage.
      0
    3. maxoodu757 Messages postés 39 Statut Membre
       
      Merci.
      0
  2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    §_POST["mot_de_passe"]

    Il y a pas une erreur là ?
    Si tu ne la vois pas, je te conseil de revoir un tutoriel de PHP rapidement.

    De plus, où est initialisé "pass" ?

    J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
    En VB.NET pensez à activer "Option Explicit" et "Option Strict"
    1
    1. maxoodu757 Messages postés 39 Statut Membre
       
      "pass" est la valeur que doit avoir la variable "mot_de_passe" pour que la condition soit remplie. Sinon, je ne trouve pas l'erreur, pouvez-vous me le dire s'il vous plait ?
      0
    2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Je ne vois pas où est déclaré "pass".
      Si la constante n'est pas déclarée, sa valeur sera vide.
      0
    3. maxoodu757 Messages postés 39 Statut Membre
       
      Normalement il n'y a rien à déclarer, avec le == on vérifie que la variable vaut "pass" (qui est le mot nécessaire pour accéder à la page).
      0
    4. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Donc il faut le mettre entre ", sinon, PHP cherchera une constante.
      0
  3. Zakarya93 Messages postés 1026 Statut Membre 10
     
    Corrige avec ceci ligne 10 :
    if (isset (§_POST["mot_de_passe"]) AND (§_POST["mot_de_passe"]==pass))
    0
    1. maxoodu757 Messages postés 39 Statut Membre
       
      J'ai essayé, l'erreur est toujours là.
      0
    2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Moi, c'est sur le § que j'ai accroché, ça fonctionne en PHP ?
      0
    3. maxoodu757 Messages postés 39 Statut Membre > NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention  
       
      J'ai regardé des tutoriel en php et ils utilisent tous cela donc logiquement oui puisque leur code fonctionne.
      0
    4. phenetas Messages postés 1190 Statut Membre 228
       
      J'ai toujours utilise et vu $_POST perso, mais peut être que l'autre existe aussi.
      0
    5. miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
       
      http://codepad.org/awF5eukz

      <!DOCTYPE html>
      <html>
       <head>
        <title>Codes secrets</title>
        <meta charset "utf_8"/>
       </head>
       <body>
        <?php
        
        if (isset($_POST["mot_de_passe"]) AND $_POST["mot_de_passe"] == "poire")
        {
         echo "<p>Le mot de passe est \"poire\"</p>" ;
        }
        else
        {
         echo "<p>Le mot de passe est incorrect !</p>" ;
        }
        
        ?>
       </body>
      </html>
      
      0