Erreur sur Erreur

Signaler
-
Messages postés
32449
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
-
Bonjour,

Ce matin j'essaye de corriger mon code PHP, et je n’arrête pas avec les erreurs, a croire que ce matin n'est pas mon jour !
<!DOCTYPE html>
 
<html>
 
    <head>
 
        <meta charset="utf-8" />
 
        <title>Planta</title>
 
    </head>
 
 
    <body>
 
    <form method="get" action="planta.php">
 
    <p>
 
        <input type="text" name="pseudo">
        <input type="submit" value="Changer mon niveau" >
    </p>
    </form>
<?php
try
{
    $bdd = new PDO('mysql:host=*********;dbname=*********;charset=utf8', '********', '*******');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
$req = $bdd->prepare('SELECT * FROM Membre WHERE pseudo = ?');
$req->execute(array($_GET['pseudo']));
echo $req['email'];
$lvl = $_GET['lvl'];
if(isset($_GET['lvl']))
{
    if (is_numeric($_GET['lvl']))
{
    if ($_GET['lvl'] > 30)
    {
    echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre inférieur ou égal à 30 ! </FONT>";
    }
    else
    {
        if ($_GET['lvl'] < 1)
        {
            echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre suppérieur ou égal à 1 !</FONT>";
        }
        else
        {
            echo " <FONT color=\"red\" size=\"5\">Vous avez une plante niveau " . htmlspecialchars($lvl) . " !  </FONT> <br>";
            echo '<img src="Plantes/' . htmlspecialchars($lvl) . '.png" border="0" width="450"/></div> ';
        }
    }
}
else
 {
echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre ! <FONT>";
}
else
{
    echo "<FONT color=\"red\" size=\"5\">Merci de renseigner un level ! </FONT>";
}
?>
    </body>
 
</html>


"Erreur= Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/u464599732/public_html/planta.php on line 61"

Merci d'avance pour votre aide ! :D

3 réponses

Messages postés
32449
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
347
Bonjour,

tu as oublié de fermer le ELSE d'avant...

Fait
} 
else
 {
echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre ! <FONT>";
}
}
else
{
    echo "<FONT color=\"red\" size=\"5\">Merci de renseigner un level ! </FONT>";
}

Mais maintenant j'ai comme erreur:
"Parse error: syntax error, unexpected end of file in /home/u464599732/public_html/planta.php on line 69"
Messages postés
11
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
31 mai 2016

Il faut savoir qu'un else suit un if c est à dire que si
if {
}else {
}
donc si tu fais comme ca
if {
}else {
}else {
}
Tu vas avoir une erreur
regarder bien si tu as d'abord fermé t es else et tes if
Et dans le deuxième cas (qui donne une erreur mieux vaut utiliser des elseif a la place des else
Messages postés
32449
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
347
Bon.. il y a quelques erreurs dans ton code.

Pour commencer... place la connexion à ta BDD dans un fichier à part que tu n'auras
qu'à inclure dans les pages où tu en as besoin.
<?php 
//fichier cnxBdd.php
try{
  $bdd = new PDO('mysql:host=*********;dbname=*********;charset=utf8', '********', '*******');
}catch (Exception $e){
  die('Erreur : ' . $e->getMessage());
}
?>


Ensuite, essayes de placer le maximum de PHP AVANT ton html
cela rend les fichiers plus faciles à lire (et à corriger ^^ )
Pense aussi à récupérer les variables PROPREMENT (via l'écriture ternaire et des ISSET ou !EMPTY) AVANT de les utiliser

<?php
//affichage des erreurs php:
error_reporting(E_ALL);

//connexion à la bdd
require_once "cnxBdd.php";

//Récupération "propre" des variables
$pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo'] : null;
$lvl =  !empty($_GET['lvl']) ? $_GET['lvl'] : null;

// Infos du membre
if($pseudo){
 $sql = "SELECT * FROM Membre WHERE pseudo = :pseudo"
 $a_datas = array(":pseudo"=>$pseudo);
 try{
   $req = $bdd->prepare($sql);  
   $req->execute($a_datas);
   $result = $req->fetchAll(); // on stocke le resultat dans un array
   echo $result[0]['email'];
 }catch (Exception $e){
   echo '<br>Erreur : ' . $e->getMessage();
 }
}

?>
<!DOCTYPE html>
 
<html>
  <head>
    <meta charset="utf-8" />
    <title>Planta</title>
  </head>
  <body>
 
  <form method="get" action="">
    <p>
      <input type="text" name="pseudo">
      <input type="submit" value="Changer mon niveau" >
    </p>
  </form>
<?php

if($lvl){
  if (is_numeric($lvl)){
    if ($lvl > 30) {
      echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre inférieur ou égal à 30 ! </FONT>";
    } else {
      if ($lvl < 1) {
          echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre suppérieur ou égal à 1 !</FONT>";
      } else {
          echo " <FONT color=\"red\" size=\"5\">Vous avez une plante niveau " . htmlspecialchars($lvl) . " !  </FONT> <br>";
          echo '<img src="Plantes/' . htmlspecialchars($lvl) . '.png" border="0" width="450"/></div> ';
      }
    }
  } else {
    echo "<FONT color=\"red\" size=\"5\">Impossible ! Veuillez rentrer un nombre ! <FONT>";
  }
} else{
  echo "<FONT color=\"red\" size=\"5\">Merci de renseigner un level ! </FONT>";
}
?>
  </body> 
</html>


NB: Par contre, dans ton formulaire.. tu ne passes jamais la variable "level" ... tu la prends d'une autre page ??

Enfin bon.. comme ça.. le code ne devrait plus t'afficher d'erreurs.

Cordialement, 
Jordane