Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mon message d'alerte ne s'affiche plus

Sujet résolu
    3 février 2023 à 11:11:33

    Bonjour, je suis en train de coder un site de blog avec un systeme de connection. 
    Voici mon probleme, quand un utilisateur entre de mauvaise donnée de connection, un message d'alerte s'affiche et l'utilisateur doit entrer a nouveau les bonnes données. cependant mon message d'alerte a areté de s'afficher sans que je n'ai aucune explication n'y aucun message d'erreur. 
    si quelqu'un peu m'aider je vous en serai reconnaisent.

    voici mon code:  

    <?php
    try
    {
        $db = new PDO('mysql:host=localhost;dbname=blog;charset=utf8', 'root', 'root');
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }

    $sqlQueryUser = 'SELECT*FROM user';
    $userStatement = $db->prepare($sqlQueryUser);
    $userStatement->execute();
    $users = $userStatement->fetchAll();
    ?>

    <?php
        if (isset($_POST['email']) &&  isset($_POST['password'])) {
            foreach ($users as $user) {
                if (
                    $user['email'] === $_POST['email'] &&
                    $user['password'] === $_POST['password']
                ) {
                    $_SESSION['loggedUser'] = $user['pseudo'];
                } else {
                    $errorMessage = sprintf('Informations invalide<br>Veuillez rééssayer',
                        $_POST['email'],
                        $_POST['password']
                    );
                }
            }
        }
    ?>



    <?php if(!isset($_SESSION['loggedUser'])): ?>

        <?php if(isset($errorMessage)) : ?>
            <div id="Alert" class="error" role="alert">
                <?php echo $errorMessage; ?>
            </div>
        <?php endif; ?>

        <div class="Form Identification" id="Identification">
            <div class="H">
                <h3 class="h3">Identifiez-vous :</h3>
                <button id="Ins-btn" class="Switchh">Inscription</button>    
            </div>    
            <div class="Formulaire">
                <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                    <div class="Champ">
                        <label for="email">Adresse mail :</label>
                        <input class="input" type="email" name="email" id="email">
                    </div>
                    <div class="Champ">
                        <label for="password">Mots de passe</label>
                        <input class="input" type="password" name="password" id="password">
                    </div>
                    <div class="btn">
                        <input class="bouton" type="submit" name="envoi" id="envoi">    
                    </div>                
                </form>
            </div>
        </div>

    <?php else: ?>
        <div class="success" role="alert">
            <h4>Validé ✓</h4>
            <span>Bonjour <?php echo $_SESSION['loggedUser']; ?>,</span><br><span>Bienvenue sur notre site !</span><br>
            <span>Vous pouvez désormer visiter l'integralité de notre site</span><br><span>
            Ainsi que rédiger VOS propres blogs.</span><br><span>Vous pouvez retourner à la page d'accueil
            par le lien si dessous.</span><br>
            <a href="home.php">
                <button>Page D'accueil</button>
            </a>
        </div>
    <?php endif; ?>

    -
    Edité par corentinabbruzzese 3 février 2023 à 11:12:19

    • Partager sur Facebook
    • Partager sur Twitter
      3 février 2023 à 11:26:00

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        3 février 2023 à 11:52:50

        pour ce qui voit et ce se demande, j'ai tout recréé, section par section, div par div et ca a marcher, je sais pas se qui ce passe mais ca marche je vais pas me pleindre.
        neanmoin si quelqu'un a une explication je suis preneur. merci

        -
        Edité par corentinabbruzzese 3 février 2023 à 11:53:05

        • Partager sur Facebook
        • Partager sur Twitter
          3 février 2023 à 12:03:39

          $errorMessage="";
          
          if (isset($_POST['email']) &&  isset($_POST['password'])) {
              $mail = $_POST['email'];
              $pass = $_POST['password'];
              $sqlQueryUser = 'SELECT * FROM user WHERE `email` = ? AND `password` = ? ';
              $userStatement = $db->prepare($sqlQueryUser);
              $userStatement->bindParam(1, $mail, PDO::PARAM_STR);
              $userStatement->bindParam(2, $pass, PDO::PARAM_STR);
              $userStatement->execute();
              $result = $userStatement->fetch(); // get the mysqli result
             
              if($result){
                  $_SESSION['loggedUser'] = $result['pseudo'];
              }else{
                  $errorMessage = "Error";
              }
              
          }
          Peut être mieux comme ça de structurer ton code pour la requête  MYSQL , tu cherche directement dans ta base de données avec l'email et le pass , ça évite de récupérer toutes les lignes de ta table user.
          • Partager sur Facebook
          • Partager sur Twitter

          la connaissance s'acquiert par l'expérience, le reste n'est qu'information.

          Mon message d'alerte ne s'affiche plus

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown