IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Pas d'affichage après un if else


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 131
    Par défaut Pas d'affichage après un if else
    Bonjour à tous,

    J'ai un soucis d'affichage d'un message d'erreur, mais je n'ai aucune idée pourquoi. J'aurai besoin de vos connaissances.

    Control du formulaire:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    if (isset($_POST['logIn'])) {
     
        // On initialise le tableau des erreurs
        $errors_log = [];    
     
    /* Controle EMAIL
    *****/
     
            if (empty($_POST['email']) OR !verifmail($_POST['email'])) {
                $id_ctrl = 1;
                $erreur_form = 'erreur_form_alert';
                $errors_log['email'] = $erreur_form;            
                $erreur_mail_pass = " Verifier votre email et/ou votre mot de passe ! ";
            }
     
    if(!empty($_POST['email'])){           
     
                $inc_con_bdd = (file_exists(ROOT_ADMIN_APP . 'class_db.php')) ? include_once (ROOT_ADMIN_APP . 'class_db.php') : false;
     
                $sql = "SELECT * FROM users WHERE email = :email";
     
                $req = $bdd->prepare($sql);    
                $req->bindValue(":email", $_POST['email'], PDO::PARAM_STR);  
                $req->execute();
                $user = $req->fetch();      
     
                if(!$user){  
     
                    $id_ctrl = 2;                  
     
                    // CSS mise en forme alerte
                    $erreur_form = 'erreur_form_alert';
                    $errors_log['email'] = $erreur_form;  
     
                    // Proposition si mail existe pas !
                    $erreur_mdp_modif = "Mot de passe perdu ?";
                    $erreur_text = "Voulez vous créer un compte ?";              
     
    		//header("location: index.php?p=register");
                }

    J'appelle le control du code erreur
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
               <?php if (isset($errors_log) ) : ?>
                    <div class="<?php echo @$erreur_form ?>"> 
                        <?php if ($id_ctrl = 1 ) : ?>                        
                            <p><?php echo @$erreur_mail_pass; ?></p>  
                        <?php else: ?>
                            <a href="#"><?php echo @$erreur_mdp_modif ?></a> - 
                            <a href="#"><?php echo @$erreur_text ?></a>                                 
                        <?php endif ?>                                                 
                    </div>
                <?php endif ?>

    Alors mon soucis ce situe dans la partie else et ne fait pas apparaitre les deux liens avec les propositions de liens et cela malgré ($id_ctrl ) reconnu !
    Je rajoute les dumps:

    Erreur formulaire vide:
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:int 1
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:string ' Verifier votre email et/ou votre mot de passe ! ' (length=49)
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:null
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:null
    Erreur en cas de non existence du mail dans la bdd:
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:int 2
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:null
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:string 'Mot de passe perdu ?' (length=20)
    C:\wamp64\www\pizzeria\admin\includes\function.php:9:string 'Voulez vous créer un compte ?' (length=30)
    En fait, les valeurs => "$erreur_mdp_modif" ainsi que => "$erreur_text" existe, mais ne s'affiche pas après else.

    Voila j'espère que j'ai n'ai pas été trop brouillon dans mon explication.
    Merci de vos aides et explications

    JLuc

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Une affectation (un seul signe =) est vraie si la valeur affectée l'est aussi, or la valeur étant 1, le else n'est jamais exécuté. Une comparaison nécessite deux ou trois signes =.

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour gesualda,

    ligne 4 du contrôle du code d'erreur :
    <?php if ($id_ctrl = 1 ) : ?>Ca serait plutôt <?php if ($id_ctrl == 1 ) : ?>.

    grillé !

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 131
    Par défaut
    hello vous 2, CosmoKnacki, laurentSc,

    Merci beaucoup de vos réponses. J'étais à nouveau dans la lune.
    C'était cela, mais trop absorber pour trouver l'endroit ou ça merdouillait !

    En tous les cas, résolu.
    Bonne après midi
    Jluc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pas d'affichage après ajout d'un nouveau label
    Par whims dans le forum Débuter
    Réponses: 10
    Dernier message: 27/07/2010, 13h54
  2. [PowerBuilder] Prob. d'affichage après insertion de contrôle
    Par Oakenshield dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 30/01/2006, 14h37
  3. [JTable] pas d'affichage du header
    Par I o dans le forum Composants
    Réponses: 2
    Dernier message: 27/04/2005, 13h42
  4. Pas d'affichage de texture sur certains PC
    Par octopus984 dans le forum GLUT
    Réponses: 7
    Dernier message: 19/04/2005, 13h22
  5. Pb d'affichage apres une liste déroulante
    Par loic.440 dans le forum ASP
    Réponses: 13
    Dernier message: 19/01/2005, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo