Erreur d'exécution conditionnel

Résolu
Kowli_12 Messages postés 10 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 28 avril 2018 - Modifié le 19 févr. 2018 à 07:27
Kowli_12 Messages postés 10 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 28 avril 2018 - 20 févr. 2018 à 00:59
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 févr. 2018 à 07:28
Bonjour

Une accolade fermante en trop avant le else non ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 févr. 2018 à 07:29
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
0
Kowli_12 Messages postés 10 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 28 avril 2018
19 févr. 2018 à 19:58
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344 > Kowli_12 Messages postés 10 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 28 avril 2018
Modifié le 19 févr. 2018 à 20:43
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';
}
0
Kowli_12 Messages postés 10 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 28 avril 2018
20 févr. 2018 à 00:59
Merci de m'avoir remis dans les rails, tout fonctionne maintenant.
Je te remercie encore d'avoir pris ton temps pour me répondre
0
Rejoignez-nous