Créer un systeme de validation de commentaires

Résolu
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019 - 5 mars 2019 à 13:28
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019 - 6 mars 2019 à 00:00
Bonjour,

J'aurai besoin de faire un système qui fait que tout les commentaires proposés sur la page projet.php sois envoyer sur la page admin.php afin que les admins valide ou refuse les commentaires. Dans la base de données, la colonne est nommé 'confirme' est a pour base le choffre "2" pour refus. Le 1 sera pour confirmer.
J'ai deja le code du projet.php mais après je ne sais pas comment faire donc si vous pouviez m'aidez merci !!

projet.php :
<html>
<head>
  <link rel="stylesheet" href="style2.css" />
  <meta charset="UTF-8">
  <title>|| Faction TOI Projet ||</title>
<div id="myDIV" class="header_fond">
</head>
                <legend style="font-size: 30px;">Proposition de projets :</legend>
</div>
    <div id="myDIV" class="header">

    <body>
    <form action="post.php" method="post">
        <p>
        <label for="pseudo"></label><input  type="text" required="Pseudo en jeu" name="pseudo" placeholder="Pseudo de jeu" id="pseudo"  required minlength="4" maxlength="15" />
        <label for="message"></label><textarea  minlength="10" maxlength="500"  rows="3" cols="58" type="text" required="message" name="message" id="message" placeholder="Idée de projet" /></textarea><br />

       <center> <input type="submit" value="Envoyer" /></center>
    </p>
    </form>
</div>

<div class="test">

<ul>
<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

// Récupération des 100 derniers messages
$reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0, 100;');

// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
    echo '■ Projet proposé par :'.'<li>' 
    .htmlspecialchars($donnees['pseudo']) .'.'.'  '.'Ce joueur propose :'.' '.'' 
    .htmlspecialchars($donnees['message']).'<br/><br/>'.'</li>';

}

$reponse->closeCursor();

?>

2 réponses

jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 344
5 mars 2019 à 20:56
Bonjour,

On a un peu de mal à comprendre la question.....

As tu commencé à écrire le code de la page admin.php ?
Page qui .. pour commencer listera les commentaires à modérer....


Avant de continuer à écrire du code... je t'invite vivement à lire et à appliquer les consignes/conseils donnés dans ces deux liens :
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Reviens nous voir lorsque tu auras procédé aux corrections données dans ces liens et commencé à écrire ton fichier admin.php
Sans oublier de nous expliquer clairement sur quel point technique tu bloques précisément...


0
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019
Modifié le 5 mars 2019 à 21:11
Du coup j'ai deja avancer :

admin.php

<html>
<head>
  <meta charset="UTF-8">
  <title>|| Faction TOI Projet ||</title>
<div id="myDIV" class="header_fond">
</head>
<?php
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
// Récupération des derniers messages
$reponse = $bdd->query('SELECT * FROM minichat WHERE confirme =2');
 
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
    echo '■ Projet proposé par :'.'<li>'
    .htmlspecialchars($donnees['pseudo']) .'.'.'  '.'Ce joueur propose :'.' '.''
    .htmlspecialchars($donnees['message']).'<br/><br/>'.'<form method="post" action="true.php">
<p><input type="submit" value="VALIDER" /></p>
</form> '.'</li>';
 
}
$reponse->closeCursor();
?>

et true.php
<?php
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
 
 
$bdd->exec('UPDATE minichat SET confirme = 1 WHERE ID = 35')
  
 
 
?>


EDIT : Ajout des balises de code

mais comme on le voit, l'ID qui va etre valider est deja écrite et définit. Or ce que je veux c'est que ce soit celle où j'ai cliquer sur valider qui doit être validé et non celle que j'ai définit dans le code par un nombre
0
jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 344
Modifié le 5 mars 2019 à 21:13
Visiblement tu n'as pas encore pris la peine de lire les liens que je t'ai donné.
Mais si tu as un "nouveau" fichier true.php
dans ce cas, pas besoin de submit....
Une simple lien suffirait ...

Dans admin.php
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
    echo '■ Projet proposé par :'.'<li>'
    .htmlspecialchars($donnees['pseudo']) .'.'.'  '.'Ce joueur propose :'.' '.''
    .htmlspecialchars($donnees['message']).'<br/><br/>'.'<p><a href="true.php?id='.$donnees['id'].'" >Valider</a></li>';
 
}


Et côté true.php
$id = !empty($_GET['id']) ? $_GET['id'] : NULL;


et donc
if($id){
  $sql = 'UPDATE minichat SET confirme = 1 WHERE ID = ?';
  $datas = array($id);
  try{
    $prepare = $bdd->prepare($sql);
    $prepare->execute($datas);
  }catch(Exception $e){
   echo "Erreur : ".$e->getMessage();
  }
}
0
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019
Modifié le 5 mars 2019 à 21:12
Je suis en cours de lecture sa c'est ce que j'ai fais depuis le premier poste.
Oui mais après il me faut l'ID du com qui doit etre validé et pas que je mette moi meme le nombre..
0
jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 344 > thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019
5 mars 2019 à 21:13
regarde ma réponse.
0
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019
Modifié le 5 mars 2019 à 21:19
Le submit est quand meme mieux car déjà après je ferai l'option supprimer quand sa serait ais le validé. Et sinon c'est bon enfaite
0
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019
5 mars 2019 à 21:53
Enfaite encore un truc.
Voici le codes ou seront affichés les commentaires approuvés :
<html>
<head>
<link rel="stylesheet" href="style2.css" />
<meta charset="UTF-8">
<title>|| Faction TOI Projet ||</title>
<div id="myDIV" class="header_fond">
</head>
<legend style="font-size: 30px;">Proposition de projets :</legend>
</div>
<div id="myDIV" class="header">

<body>
<form action="post.php" method="post">
<p>
<label for="pseudo"></label><input type="text" required="Pseudo en jeu" name="pseudo" placeholder="Pseudo de jeu" id="pseudo" required minlength="4" maxlength="15" />
<label for="message"></label><textarea minlength="10" maxlength="500" rows="3" cols="58" type="text" required="message" name="message" id="message" placeholder="Idée de projet" /></textarea><br />

<center> <input type="submit" value="Envoyer" /></center>
</p>
</form>
</div>

<div class="test">

<ul>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

// Récupération des 100 derniers messages
$reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0, 20;');

// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
echo '■ Projet proposé par :'.'<li>'
.htmlspecialchars($donnees['pseudo']) .'.'.'  '.'Ce joueur propose :'.' '.''
.htmlspecialchars($donnees['message']).'<br/><br/>'.'</li>';

}

$reponse->closeCursor();

?>


Comment je fais pour qu'il n'y ai que les approuvés. J'ai l’impression d’oublier un truc
0
jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 344
5 mars 2019 à 23:46
1 - Merci de poster ton code CORRECTEMENT en utilisant les BALISES DE CODE
Explications disponibles ici: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

2 - Tu n'as pas appliqué les consignes présentes dans les liens que je t'ai donné... pourquoi donc me fatiguerai-je encore à te répondre ??

3 - Je vais quand même te répondre... oui tu as oublié un truc.... un WHERE dans ta requête....
0
thomas_68740 Messages postés 6 Date d'inscription mardi 5 mars 2019 Statut Membre Dernière intervention 6 mars 2019
6 mars 2019 à 00:00
excuse moi... J'étais tellement dans le code en me disant que lire ne servait pas. J'ai trouver grace a vous mais promis je vais lire les liens que tu a donnés. D'ailleurs je vais aussi refaire des cours de php. Merci de ton aide et désolé d'avoir été aussi obstiné
0
Rejoignez-nous