Parse error: syntax error, unexpected '['

Résolu
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -
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

Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   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
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
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
NHenry Messages postés 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
Il faut aller sur le petite flèche à côté de la balise de code et choisir le langage.
0
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Merci.
0
NHenry Messages postés 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
§_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
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
"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
NHenry Messages postés 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
Je ne vois pas où est déclaré "pass".
Si la constante n'est pas déclarée, sa valeur sera vide.
0
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
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
NHenry Messages postés 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
Donc il faut le mettre entre ", sinon, PHP cherchera une constante.
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Corrige avec ceci ligne 10 :
if (isset (§_POST["mot_de_passe"]) AND (§_POST["mot_de_passe"]==pass))
0
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai essayé, l'erreur est toujours là.
0
NHenry Messages postés 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
Moi, c'est sur le § que j'ai accroché, ça fonctionne en PHP ?
0
maxoodu757 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   > NHenry Messages postés 15221 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
phenetas Messages postés 1108 Date d'inscription   Statut Membre Dernière intervention   227
 
J'ai toujours utilise et vu $_POST perso, mais peut être que l'autre existe aussi.
0
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