Afficher Des Commentaires

Résolu/Fermé
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017 - 19 nov. 2014 à 20:28
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017 - 20 nov. 2014 à 23:05
Salut tous le monde ! Et oui c'est encore moi et j'aurais encore besoin de votre aide... J'aimerais me débrouiller seul, et après plusieurs heures de recherche et d'essais j'avoue que je craque ! Je fais donc appelle a vous pour m'aider.


Voici mon problème j'aimerai créer un blog avec des commentaires mais le problème c'est que j'arrive pas a afficher les commentaires correctement... Les commentaires vont bien dans la base de données mais quand je veut afficher les commentaires c'est le même pseudo qui est afficher pour tous les commentaires même si il y a plusieurs utilisateur qui ont écrit des commentaires...


Voici mon code :


Index :

<!DOCTYPE html>
<meta charset='utf-8'>
<?php
session_start();
?>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Mon blog</title>
	<link href="style.css" rel="stylesheet" /> 
    </head>
        
    <body>
        <h1>Mon super blog !</h1>
		<img src="elisa.jpg"><br /> 
   <a href="commentaire.php">Commenter</a>
 </html>

<?php
if(isset($_SESSION['pseudo']))
{}else{
header('Location:login.php');
}
?>



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

// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO user(message) VALUES(?)');
$req->execute(array($_POST['message']));

// Redirection du visiteur vers la page du minichat
header('Location: test51.php');
?>


Test51 :
<?php
session_start();
if(isset($_SESSION['pseudo']))
?>
  <meta charset="utf-8" />
        <title>Mini-chat</title>
    </head>
    <style>
    form
    {
        text-align:center;
    }
    </style>
    <body>
    
    <form action="commentaire.php" method="post">
        <p>
        <label for="message">Message</label> :  <input type="text" name="message" id="message" /><br />

        <input type="submit" value="Envoyer" />
	</p>
    </form>
<?php
// Connexion à la base de données
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=blablabla', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

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

// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
	echo '<p><strong>' .$_SESSION['pseudo']. '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}

$reponse->closeCursor();

?>
<?php
if(isset($_SESSION['pseudo']))
{}else{
header('Location:login.php');
}
?>
    </body>
</html>





8 réponses

GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
Modifié par GrifOli le 20/11/2014 à 00:37
Bonjour,

Le problème est ici:
echo '<p><strong>' .$_SESSION['pseudo']. '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';

Tu affiches le pseudo de la personne qui est connectée sur sa session. Tu devrais plutôt mettre:

echo '<p><strong>' .$donnees['nom_de_la_colonne_des_utilisateurs_ici']. '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';


en remplaçant bien sûr nom_de_la_colonne_des_utilisateurs_ici par le nom de la colonne des utilisateurs dans ta base de données.
1
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
20 nov. 2014 à 15:38
Il y a une dernière modification à faire. Actuellement lorsque tu fais ta requête, tu ne sélectionnes que les valeurs de la colonne "message", mais en réalité tu ne veux pas afficher que ces résultats là, tu veux aussi afficher les pseudo. Tu peux demander à la requête de tout sélectionner ce qu'il y a dans ta table avec l'astérix comme suit:

$reponse = $bdd->query('SELECT * FROM user ORDER BY ID DESC LIMIT 0, 10');


Ça devrait régler ton problème ;)
1
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
Modifié par GrifOli le 20/11/2014 à 19:13
Ah ok, il s'agit d'un autre problème alors, cette fois au niveau de ton insert. Ici, tu ne fais qu'insérer le message de l'utilisateur dans la bdd, tu n'insères pas son pseudo.
$req = $bdd->prepare('INSERT INTO user(message) VALUES(?)');
$req->execute(array($_POST['message']));


Remplace les deux lignes ci-dessus par celles-ci:
$req = $bdd->prepare('INSERT INTO user(nom_de_la_colonne_user_ici, message) VALUES(:pseudo, :message)');
$req->execute(array('pseudo' => $_SESSION['pseudo'], 'message' => $_POST['message']));


Remplace nom_de_la_colonne_user_ici par le nom de ta colonne user dans ta bdd.
1
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
20 nov. 2014 à 22:32
Montre-moi le code où tu attribues une valeur à $_SESSION['pseudo'] (le code où la personne entre son nom d'utilisateur et son mot de passe).
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
Modifié par BuddyLove_x52 le 20/11/2014 à 13:01
Qu'es que que je ferais sans toi GrifOli ? lol.

Maintenant sa ne m'affiche plus aucun pseudo mais sa m'affiche les commentaires. Je me suis pourtant bien co a ma BD et j'ai bien apeller l'username et les commentaires , je pense que je doit modifier mon formulaire non ? Ou créer une session id ?
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
20 nov. 2014 à 18:27
Cela ne marche toujours pas, quand j'écrit le commentaire il s'enrgistre bien dans ma bdd mais sans le pseudo, comment je pourrais faire un "insert" mais en invisible ? Est-ce possible d'inséré le pseudo et le commentaire dans la base de donnés sans être obliger de retaper son pseudo d'utilisateur a chaque fois ?
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
20 nov. 2014 à 19:23
Ou a marche enfin ! J'avais penser a faire comme tu as fais, mais moi je faisais juste :

$req = $bdd->prepare('INSERT INTO user(username) VALUES(:pseudo, :message)');
$req->execute(array($_SESSION['pseudo'],  $_POST['message']));


par contre ; quand le nom s'enrgistre dans la bdd il a pour nom vv.. Est-ce moi qui ait pu faire une erreur de frappe dans une de mes pages ?
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
Modifié par GrifOli le 20/11/2014 à 19:39
Je ne comprends pas? Le nom du pseudo qui est entré est vv ? Et quel est le pseudo complet de l'utilisateur en question? Ça semble être au niveau du nombre de caractères acceptés dans ta bdd pour la colonne username. Vérifie cela!
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
20 nov. 2014 à 19:43
Voila ce que sa me donne





Et dans ma bdd pareille :




Le nom s'affiche quand je me connecte sur la page mais une fois le commentaire poster le nom ce remplace par "vv" et c'est pareil pour chaque compte
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
20 nov. 2014 à 19:45
Clique sur l'onglet Structure et montre moi l'impression d'écran s.v.p.
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
20 nov. 2014 à 19:47
Voilà :

0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
20 nov. 2014 à 22:44
Je viens tous juste de réussir ! J'ai trifouiller partout et sa marche ! Mais ne me demande d'ou viens l'erreur je ne sais pas.. Merci encore, grace a toi j'ai pu avancer dans mon projet !
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
20 nov. 2014 à 22:49
Tant mieux alors! Bonne continuation ;)
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
20 nov. 2014 à 23:05
Merci ! :).
0