Partage
  • Partager sur Facebook
  • Partager sur Twitter

Partie Message Privé Problème lors de la connexion

Section Message Privé Problème

Sujet résolu
    2 février 2023 à 15:38:10

    Bonjour, mon objectif est de créer une section de message privé PHP lorsqu'un utilisateur est connecté mais je ne sais pas pourquoi même si ma page est connectée la page est blanche :
    Je pense que ce n'est pas une erreur, mais je suis quand même connecté, la partie inscription, connexion est faite, j'ai aussi fait un souvenir de moi, mais je ne sais pas pourquoi je ne peux pas y accéder.
    Par exemple si je supprime cette partie de ce code : if(isset($_SESSION['id']) AND !empty($_SESSION['id'])){
    le message est vraiment envoyé, dans mon sql, mais quand j'ajoute if elle devient blanche alors que je suis connecté. Est-ce un problème de boucle de if parce que même avec un autre else ça ne marche pas.
      <?php
      session_start();
      $bdd = new PDO('mysql:dbname=pig;host=lolhst', 'm', 'test' );
    
    
    if(isset($_SESSION['id']) AND !empty($_SESSION['id'])){
          if(isset($_POST['Sendmsg'])){
              if(isset($_POST['destinataire'], $_POST['message']) AND !empty($_POST['destinataire']) AND !empty($_POST['message'])){
                $destinataire = htmlspecialchars($_POST['destinataire']);
                $message = htmlspecialchars($_POST['message']);
    
                $id_destinataire= $bdd->prepare('SELECT id FROM users WHERE username = ?');
                $id_destinataire->execute(array($destinataire));
                $id_destinataire = $id_destinataire->fetch();
                $id_destinataire = $id_destinataire['id'];
              
    
                $ins = $bdd->prepare('INSERT INTO message(id_exped,id_dest,message) VALUES (?,?,?)');
                $ins->execute(array($_SESSION['id'], $id_destinataire,$message));
        
                $error = "Votre message a bien été envoyé";
              }else{
                $error = "Veuillez compléter tous les champs";
    
    
    
              }
    
    
          }
    
    
        $destinataires =  $bdd->query('SELECT username FROM users ORDER BY username');
    
    
          ?>
    
          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Envoi de message</title>
        
          </head>
          <body>
    
          <form method="POST">
            <label>Destinataire:</label>
            <select name ="destinataire">
            <?php while($d = $destinataires->fetch()) { ?>
                <option><?= $d['username']?></option>
                <?php } ?>
    
    
            </select>
            <br />
            <textarea name="message" rows="10" placeholder ="Votre message"></textarea>
            <br /> <br />
            <input type="submit" value="Envoyer" name="Sendmsg"/>
            <br /> <br />
            <?php if(isset($error)) { echo '<span style= "color:red">'.$error.'</span>' ; } ?> 
    
          </form>
            
          </body>
          </html>
        
    
        <?php
         }
    
        ?>

    -
    Edité par MatthieuMonray1 2 février 2023 à 15:50:32

    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2023 à 11:37:49

      Hello,

      Il faut afficher les erreurs PHP.

      Ensuite ça fonctionne pas sûrement parce que ta configuration de base de donnée n'est pas bonne, vérifie tu as écris "lolhst" au lieu de "localhost" à la ligne 3.

      Tu n'est pas obligé de mettre isset($_SESSION) et !empty($_SESSION...) juste le !empty suffit, puisqu'il vérifie également l'existence de la clé en plus de vérifier si la valeur n'est pas vide.

      -
      Edité par Kévin Brissez 13 février 2023 à 11:40:16

      • Partager sur Facebook
      • Partager sur Twitter

      Partie Message Privé Problème lors de la connexion

      × 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