Erreur sur Erreur

- - Dernière réponse : jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
- 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
Afficher la suite 

Votre réponse

3 réponses

Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
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"
Commenter la réponse de jordane45
Messages postés
11
Date d'inscription
mardi 18 août 2015
Dernière intervention
31 mai 2016
0
Merci
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
Commenter la réponse de Ouattb11
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
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                                                                 
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.