Parse error: syntax error, unexpected '['

Résolu/Fermé
Signaler
Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015
-
Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015
-
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

Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
9
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015

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.
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
310
Il faut aller sur le petite flèche à côté de la balise de code et choisir le langage.
Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015

Merci.
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
310
§_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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015

"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 ?
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
310
Je ne vois pas où est déclaré "pass".
Si la constante n'est pas déclarée, sa valeur sera vide.
Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015

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).
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
310
Donc il faut le mettre entre ", sinon, PHP cherchera une constante.
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
9
Corrige avec ceci ligne 10 :
if (isset (§_POST["mot_de_passe"]) AND (§_POST["mot_de_passe"]==pass))
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
310
Moi, c'est sur le § que j'ai accroché, ça fonctionne en PHP ?
Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015
>
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021

J'ai regardé des tutoriel en php et ils utilisent tous cela donc logiquement oui puisque leur code fonctionne.
Messages postés
1096
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
31 août 2017
218
J'ai toujours utilise et vu $_POST perso, mais peut être que l'autre existe aussi.
Messages postés
1428
Date d'inscription
mercredi 29 juillet 2009
Statut
Contributeur
Dernière intervention
24 janvier 2019
93
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>
Messages postés
36
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
27 septembre 2015

Ho !!! Merci beaucoup, je suis trop bête j'ai mis § au lieu de $, la faute de frappe comme jamais ! Merci beaucoup !