Erreur sur Erreur

ZauSucuc - 15 mai 2016 à 12:36
jordane45
Messages postés
35710
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 juin 2022
- 15 mai 2016 à 23:07
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

jordane45
Messages postés
35710
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 juin 2022
358
15 mai 2016 à 12:38
Bonjour,

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

0
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"
0
Ouattb11
Messages postés
11
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
31 mai 2016

15 mai 2016 à 13:42
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
0
jordane45
Messages postés
35710
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 juin 2022
358
Modifié par jordane45 le 15/05/2016 à 23:08
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                                                                 
0