espace commentaires

Ce topic a été résolu
didoub74

didoub74 Le 10 septembre 2019 à 21:22 (Édité le 15 septembre 2019 à 21:18)

bonjour je souhaitrait que quand l'utilisateur est connecter a son profil il puisse envoyer des commentaires avec son profil et quand il n'est pas connecter qu'il ne puisse pas envoyer de commentaires

Merci d'avance
SkinDePewDiePie_

SkinDePewDiePie_ Le 11 septembre 2019 à 16:48 (Édité le 11 septembre 2019 à 16:49)

Code:
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=...', '...', '...');
if(isset($_GET['id']) AND !empty($_GET['id'])) {
   $getid = htmlspecialchars($_GET['id']);
   $article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
   $article->execute(array($getid));   $article = $article->fetch();
   if(isset($_POST['submit_commentaire'])) {
      if(isset($_POST['pseudo'],$_POST['commentaire']) AND !empty($_POST['pseudo']) AND !empty($_POST['commentaire'])) {
         $pseudo = htmlspecialchars($_POST['pseudo']);
         $commentaire = htmlspecialchars($_POST['commentaire']);
         if(strlen($pseudo) < 25) {
            $ins = $bdd->prepare('INSERT INTO commentaires (pseudo, commentaire, id_article) VALUES (?,?,?)');
            $ins->execute(array($pseudo,$commentaire,$getid));
            $c_msg = "<span style='color:green'>Votre commentaire a bien été posté</span>";
         } else {
            $c_msg = "<span style='color:red'>Erreur: Le pseudo doit faire moins de 25 caractères</span>";
         }
      } else {
         $c_msg = "<span style='color:red'>Erreur: Tous les champs doivent être complétés</span>";
      }
   }
   $commentaires = $bdd->prepare('SELECT * FROM commentaires WHERE id_article = ? ORDER BY id DESC');
   $commentaires->execute(array($getid));
?>
<h2>Vidéo N°1 (Section)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Cmu8SBqUNQY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /><p><?= $article['contenu'] ?></p><br /><h2>Commentaires:</h2>
<?php if(isset($_SESSION['id'])){ ?>
<form method="POST">
   <input type="text" name="pseudo" text="<?= $_SESSION['pseudo'] ?>" /><br />
   <textarea name="commentaire" placeholder="Votre commentaire..."></textarea><br />
   <input type="submit" value="Poster mon commentaire" name="submit_commentaire" />   
</form>
<?php } else{ ?>
Connectez-vous pour poster un commentaire.
<?php } ?>
<?php if(isset($c_msg)) { echo $c_msg; } ?><br /><br />
<?php while($c = $commentaires->fetch()) { ?>
   <b><?= $c['pseudo'] ?>:</b> <?= $c['commentaire'] ?><br /><br />
<?php }
} ?>
Meilleure réponse
SkinDePewDiePie_

SkinDePewDiePie_ Le 11 septembre 2019 à 15:17

Bonjour, un système de messagerie ou de forum?
-Matteo
didoub74

didoub74 Le 11 septembre 2019 à 16:05

un système de commentaires 😜
Doppler

Doppler Le 11 septembre 2019 à 16:21

Salut, 

Utilise des conditions pour mieux gérer le problème :
<?php 
if (isset($_SESSION['id'])) { // vérifier si la session existe
      // utilisateur connecté
} else {
      // utilisateur non connecté
}
?>

~A
SkinDePewDiePie_

SkinDePewDiePie_ Le 11 septembre 2019 à 16:27

Re comme dit @Doopler, l'éléphant de PHP x)
Donc tu peux faire comme ca mais dans ce cas la aussi faire autrement:
<?php if(!isset($_SESSION['id'])){ ?>
Vous devez etre connecté pour envoyer un message
<?php } else { ?>
<textarea placeholder="Votre message"></textarea>
<?php } ?>
didoub74

didoub74 Le 11 septembre 2019 à 16:33 (Édité le 11 septembre 2019 à 16:41)

je ne comprend pas où le mettre voici le code de mon fichier php :
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=...', '...', '...');if(isset($_GET['id']) AND !empty($_GET['id'])) {
   $getid = htmlspecialchars($_GET['id']);
   $article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
   $article->execute(array($getid));
   $article = $article->fetch();
   if(isset($_POST['submit_commentaire'])) {
      if(isset($_POST['pseudo'],$_POST['commentaire']) AND !empty($_POST['pseudo']) AND !empty($_POST['commentaire'])) {
         $pseudo = htmlspecialchars($_POST['pseudo']);
         $commentaire = htmlspecialchars($_POST['commentaire']);
         if(strlen($pseudo) < 25) {
            $ins = $bdd->prepare('INSERT INTO commentaires (pseudo, commentaire, id_article) VALUES (?,?,?)');
            $ins->execute(array($pseudo,$commentaire,$getid));
            $c_msg = "<span style='color:green'>Votre commentaire a bien été posté</span>";
         } else {
            $c_msg = "<span style='color:red'>Erreur: Le pseudo doit faire moins de 25 caractères</span>";
         }
      } else {
         $c_msg = "<span style='color:red'>Erreur: Tous les champs doivent être complétés</span>";
      }
   }
   $commentaires = $bdd->prepare('SELECT * FROM commentaires WHERE id_article = ? ORDER BY id DESC');
   $commentaires->execute(array($getid));
?>
<h2>Vidéo N°1 (Section)</h2>
               <iframe width="560" height="315" src="https://www.youtube.com/embed/Cmu8SBqUNQY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
               <br />
<p><?= $article['contenu'] ?></p>
<br />
<h2>Commentaires:</h2>
<form method="POST">
   <input type="text" name="pseudo" placeholder="Votre pseudo" /><br />
   <textarea name="commentaire" placeholder="Votre commentaire..."></textarea><br />
   <input type="submit" value="Poster mon commentaire" name="submit_commentaire" />
   
</form>
<?php if(isset($c_msg)) { echo $c_msg; } ?>
<br /><br />
<?php while($c = $commentaires->fetch()) { ?>
   <b><?= $c['pseudo'] ?>:</b> <?= $c['commentaire'] ?><br /><br />
<?php } ?>
<?php
}
?>
SkinDePewDiePie_

SkinDePewDiePie_ Le 11 septembre 2019 à 16:48 (Édité le 11 septembre 2019 à 16:49)

Code:
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=...', '...', '...');
if(isset($_GET['id']) AND !empty($_GET['id'])) {
   $getid = htmlspecialchars($_GET['id']);
   $article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
   $article->execute(array($getid));   $article = $article->fetch();
   if(isset($_POST['submit_commentaire'])) {
      if(isset($_POST['pseudo'],$_POST['commentaire']) AND !empty($_POST['pseudo']) AND !empty($_POST['commentaire'])) {
         $pseudo = htmlspecialchars($_POST['pseudo']);
         $commentaire = htmlspecialchars($_POST['commentaire']);
         if(strlen($pseudo) < 25) {
            $ins = $bdd->prepare('INSERT INTO commentaires (pseudo, commentaire, id_article) VALUES (?,?,?)');
            $ins->execute(array($pseudo,$commentaire,$getid));
            $c_msg = "<span style='color:green'>Votre commentaire a bien été posté</span>";
         } else {
            $c_msg = "<span style='color:red'>Erreur: Le pseudo doit faire moins de 25 caractères</span>";
         }
      } else {
         $c_msg = "<span style='color:red'>Erreur: Tous les champs doivent être complétés</span>";
      }
   }
   $commentaires = $bdd->prepare('SELECT * FROM commentaires WHERE id_article = ? ORDER BY id DESC');
   $commentaires->execute(array($getid));
?>
<h2>Vidéo N°1 (Section)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Cmu8SBqUNQY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /><p><?= $article['contenu'] ?></p><br /><h2>Commentaires:</h2>
<?php if(isset($_SESSION['id'])){ ?>
<form method="POST">
   <input type="text" name="pseudo" text="<?= $_SESSION['pseudo'] ?>" /><br />
   <textarea name="commentaire" placeholder="Votre commentaire..."></textarea><br />
   <input type="submit" value="Poster mon commentaire" name="submit_commentaire" />   
</form>
<?php } else{ ?>
Connectez-vous pour poster un commentaire.
<?php } ?>
<?php if(isset($c_msg)) { echo $c_msg; } ?><br /><br />
<?php while($c = $commentaires->fetch()) { ?>
   <b><?= $c['pseudo'] ?>:</b> <?= $c['commentaire'] ?><br /><br />
<?php }
} ?>
Meilleure réponse
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte