Erreur d'exécution conditionnel [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018
-
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018
-
Bonjour
Je suis débutant en php
je voulais testé ce code en me connectant à une base de donné Mysql, tous se passe bien seul problème, la condition else ne s’exécute pas, même quand le if est fausse, rien de ce qui est prévus dans le bloc else ne s'affiche.
Voici le mini page qui doit effectuer le traitement du formulaire transmis par post

Merci encore une fois à ceux qui consacreront leur temps à me répondre


   
 if(isset($_POST['prenom']) && isset($_POST['password']))
    {
        $name = $_POST['prenom'];
        $password = $_POST['password'];
    try {
                 $connexion = new PDO("mysql:host=$host; dbname=Membres;charset=utf8", $user, $pass);
                 $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
           } catch (Exception $ex) {
        echo 'Erreur de connexion à la base de donné '.$ex->getMessage();
    }

        $donne = $connexion->prepare('SELECT Prenom, Password FROM User WHERE Prenom="'.$name.'" AND Password="'.$password.'"');
       
        $donne->execute();
      
        while ($resultat = $donne->fetch())
        {
            echo $resultat['Prenom'];
        }
        
        $donne->closeCursor();
    }
    
 else {
        echo 'Vous n\'ête pas encore inscrit sur  le forum, cliquer <a href=\'../HTML/users.html\'> ICI </a> pour vous inscrire';
}
 
 

1 réponse

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

Une accolade fermante en trop avant le else non ?
Messages postés
32478
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2021
347
Applique ceci lorsque tu codes... Ca t'évitera ce genre de pb...
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

Merci pour la réponse et je m'excuse pour le retard
je vais appliquer tes conseils dans l'avenir,pour ce qui est de l'accolade il n'y pas un de trop!
merci encore
Messages postés
32478
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2021
347 >
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

Oui mal vu pour les accolades.
C'est que ton code est mal indenté...

Quoi qu'il en soit, essaye ça :
$Prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL;
$password = !empty($_POST['password']) ? $_POST['password'] : NULL;

if($Prenom && $password){
    
    try {
      $connexion = new PDO("mysql:host=$host; dbname=Membres;charset=utf8", $user, $pass);
      $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (Exception $ex) {
        echo 'Erreur de connexion à la base de donné '.$ex->getMessage();
        exit();
    }

    $sql = 'SELECT Prenom, Password FROM User WHERE Prenom=:Prenom AND Password=:password';
    $datas = array(':Prenom'=>$Prenom ,':password'=>$password);
    try {
      $donne = $connexion->prepare($sql);
      $donne->execute();
    } catch (Exception $ex) {
        echo 'Erreur de requête !: '.$ex->getMessage();
    }  
    
    
    while ($resultat = $donne->fetch())
    {
      echo $resultat['Prenom'];
    }
       
    $donne->closeCursor();
} else {
   echo 'Vous n\'ête pas encore inscrit sur  le forum, cliquer <a href=\'../HTML/users.html\'> ICI </a> pour vous inscrire';
}
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

Merci de m'avoir remis dans les rails, tout fonctionne maintenant.
Je te remercie encore d'avoir pris ton temps pour me répondre