[RESOLU] soucis avec mon code commentaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] soucis avec mon code commentaire

Re: soucis avec mon code commentaire

par 53pierre » 10 mars 2021, 22:27

pour ceux qui seraient embêté comme moi

voici le solution

Code : Tout sélectionner

$connection=mysqli_connect("localhost", "root", "", "monsite"); if (!$connection){ die ("Connection impossible"); } else { $requete=mysqli_query($connection,"SELECT message, pseudo ,date_enregistrement FROM commentaire WHERE valider='1';"); } while($resultat=mysqli_fetch_array($requete)) { echo $resultat['message']."<br>"; echo $resultat['pseudo']."<br>"; echo $resultat['date_enregistrement']."<br>"; }

soucis avec mon code commentaire

par 53pierre » 10 mars 2021, 20:19

bonjour a tous

je suis un débutant et je n essaye pas de faire un site internet et de plus moi et el php c est pas une histoire d amour

je voudrais juste créer une page de commentaire avec validation dans la base de donnée pour filtrer le spam par exemple

pour l instant dans mon fichier il y a en haut les commentaires qui ont été valider , mais qui va disparaître pour laisser place aux commentaire paginer

et c est la ou j ai des soucis je ne parviens pas a ce que seul les messages autorises puissent s afficher
et encore pire a chaque rafraichissement du navigateur le dernier commentaire se dupplique

bref cela ne fonctionne pas avec la pagination
si vous pourriez m aider merci

Code : Tout sélectionner

<?php session_start(); // On détermine sur quelle page on se trouve if(isset($_GET['page']) && !empty($_GET['page'])){ $currentPage = (int) strip_tags($_GET['page']); }else{ $currentPage = 1; } // On se connecte à là base de données include('base1.php'); // On détermine le nombre total d'monsite $sql = 'SELECT COUNT(*) AS nb_monsite FROM `commentaire`;'; // On prépare la requête $query = $bdd->prepare($sql); // On exécute $query->execute(); // On récupère le nombre d'monsite $result = $query->fetch(); $nbmonsite = (int) $result['nb_monsite']; // On détermine le nombre d'monsite par page $parPage = 5; // On calcule le nombre de pages total $pages = ceil($nbmonsite / $parPage); // Calcul du 1er donnees de la page $premier = ($currentPage * $parPage) - $parPage; $sql = 'SELECT * FROM `commentaire` ORDER BY `date_enregistrement` DESC LIMIT :premier, :parpage;'; // On prépare la requête $query = $bdd->prepare($sql); $query->bindValue(':premier', $premier, PDO::PARAM_INT); $query->bindValue(':parpage', $parPage, PDO::PARAM_INT); // On exécute $query->execute(); // On récupère les valeurs dans un tableau associatif $monsite = $query->fetchAll(PDO::FETCH_ASSOC); //require_once('close.php'); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> </head> <!-- fin head --> <!-- debut body --> <div class="container"> <title>phil le perleur</title> <?php $mysqli = new Mysqli('localhost', 'root', '', 'monsite'); $contenu = ''; if($_POST) { $_POST['pseudo'] = addslashes($_POST['pseudo']); $_POST['message'] = addslashes($_POST['message']); if(!empty($_POST['pseudo']) && !empty($_POST['message'])) { $mysqli->query("INSERT INTO commentaire (pseudo, message, date_enregistrement) VALUES ('$_POST[pseudo]', '$_POST[message]', NOW())") OR DIE ($mysqli->error); $contenu .= '<div class="validation">Votre message/question a bien été enregistré </br>il est en attende de validation .</div>'; } else { $contenu .= '<div class="erreur">Afin de déposer un commentaire, veuillez svp remplir tous les champs du formulaire.</div>'; } } $resultat = $mysqli->query("SELECT pseudo, message, DATE_FORMAT(date_enregistrement, '%d/%m/%Y') AS datefr, DATE_FORMAT(date_enregistrement, '%H:%i:%s') AS heurefr FROM commentaire WHERE valider = 1 ORDER BY date_enregistrement DESC"); $contenu .= '<h2>' . $resultat->num_rows . ' commentaire(s)'; while($commentaire = $resultat->fetch_assoc()) { $contenu .= '<div class="message">'; $contenu .= "<div class=\"titre\">Par: " . $commentaire['pseudo'] . ', le ' . $commentaire['datefr'] . " à " . $commentaire['heurefr'] . "</div>"; $contenu .= '<div class="contenu">' . $commentaire['message'] . '</div>'; $contenu .= '</div>'; } //--------------------------------------------------------------------------------------------- // Partie formulaire d'envoi de commentaire ?> <!-- ici je demande que s affiche les commentaires valider a supprimer par la suite--> <div class="commentaire"><?php echo $contenu; ?></div> <!-- ici je demande que s affiche les commentaires valider --> <!-- dans la partie qui suit je cherche a paginer aussi que les messages valider , mais ils sont tous afficher--> <!-- il faudrait donc trouver une solution qui dirait que si dans la base de donnee il y a un o dans la colonne valider que les messages ne s affichent pas--> <div class="container" style=" max-width: 50%;margin:auto;"> <ul class="nav nav-pills nav-justified"> <li class="nav-item"> <a class="nav-link " href="?page=<?= $currentPage - 1 ?>" class="page-link">Précédente</a> <?php for($page = 1; $page <= $pages; $page++): ?> </li> <li class="nav-item"> <a class="nav-link" href="?page=<?= $page ?>" class="page-link"><?= $page ?></a> <?php endfor ?> <?= ($currentPage == $pages) ? "derniere" : "" ?> </li> <li class="nav-item"> <a class="nav-link" href="?page=<?= $currentPage + 1 ?>" class="page-link">Suivante</a> </li> </ul> </div> <div class="container" style=" max-width: 100%;margin:auto;"> <div class="row"> <div class="col"> pseudo </div> <div class="col"> message </div> <div class="col"> date </div> </div> <?php foreach($monsite as $donnees){ ?> <div class="row"> <div class="col"> <?= $donnees['pseudo'] ?> </div> <div class="col"> <?= $donnees['message'] ?> </div> <div class="col"> <?= $donnees['date_enregistrement'] ?> </div> </div> <?php } ?> </div> <div class="container" style=" max-width: 50%;margin:auto;margin-top:5%;"> <form method="post" action=""> <div class="row justify-content-center"> <div class="col-4"> <label >une question /un commentaire a poser</label> </div> </div> <div class="row justify-content-center"> <div class="col-4"> <label for="pseudo">Pseudo</label> </div> </div> <div class="row justify-content-center"> <div class="col-4"> <input type="text" id="pseudo" name="pseudo" maxlength="20" pattern="[a-zA-Z0-9.-_]+" title="caractère autorisés : a-zA-Z0-9.-_"> </div> </div> <div class="row justify-content-center"> <div class="col-4"> <label for="message">Message</label> </div> </div> <div class="row justify-content-center"> <div class="col-4"> <textarea id="message" name="message" cols="50" rows="7"></textarea> </div> </div> <div class="row justify-content-center"> <div class="col-4"> <input type="submit" value="Envoyer le message"> </div> </div> <div class="row justify-content-center"> <div class="col-4"> </form> </div> </div> </div> </body> </html>