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

Kowli_12 10 Messages postés lundi 19 février 2018Date d'inscription 28 avril 2018 Dernière intervention - 19 févr. 2018 à 02:57 - Dernière réponse : Kowli_12 10 Messages postés lundi 19 février 2018Date d'inscription 28 avril 2018 Dernière intervention
- 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';
}
 
 
Afficher la suite 

Votre réponse

5 réponses

jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 19 févr. 2018 à 07:28
0
Merci
Bonjour

Une accolade fermante en trop avant le else non ?
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 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
Kowli_12 10 Messages postés lundi 19 février 2018Date d'inscription 28 avril 2018 Dernière intervention - 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
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention > Kowli_12 10 Messages postés lundi 19 février 2018Date d'inscription 28 avril 2018 Dernière intervention - 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';
}
Kowli_12 10 Messages postés lundi 19 février 2018Date d'inscription 28 avril 2018 Dernière intervention - 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
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.