Parse error: syntax error, unexpected '['

Résolu/Fermé
maxoodu757 Messages postés 36 Date d'inscription jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015 - Modifié par maxoodu757 le 7/07/2015 à 22:36
maxoodu757 Messages postés 36 Date d'inscription jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015 - 7 juil. 2015 à 23:08
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
Modifié par Zakarya93 le 7/07/2015 à 22:21
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 jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015
Modifié par maxoodu757 le 7/07/2015 à 22:23
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
7 juil. 2015 à 22:32
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 jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015
7 juil. 2015 à 22:37
Merci.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
Modifié par NHenry le 7/07/2015 à 22:23
§_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 jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015
7 juil. 2015 à 22:26
"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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
7 juil. 2015 à 22:33
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 jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015
7 juil. 2015 à 22:40
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
7 juil. 2015 à 22:52
Donc il faut le mettre entre ", sinon, PHP cherchera une constante.
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
7 juil. 2015 à 22:26
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 jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015
7 juil. 2015 à 22:29
J'ai essayé, l'erreur est toujours là.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
7 juil. 2015 à 22:34
Moi, c'est sur le § que j'ai accroché, ça fonctionne en PHP ?
0
maxoodu757 Messages postés 36 Date d'inscription jeudi 26 décembre 2013 Statut Membre Dernière intervention 27 septembre 2015 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
7 juil. 2015 à 22:38
J'ai regardé des tutoriel en php et ils utilisent tous cela donc logiquement oui puisque leur code fonctionne.
0
phenetas Messages postés 1096 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 31 août 2017 224
7 juil. 2015 à 22:44
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 mercredi 29 juillet 2009 Statut Contributeur Dernière intervention 1 mai 2022 92
7 juil. 2015 à 22:55
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