Login dans le post commentaire

Résolu/Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - Modifié par flo39400 le 18/06/2015 à 21:03
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 18 juin 2015 à 21:50
Bonjour,
J'ai crée un espace utilisateur et la les personnes connecter peuvent poster des commentaires. Le seule problème sais pour stocker le 'login' dans la table 'coms' dans la colonne 'login'.

Voici le code pour poster un commentaire mais je n'arrive pas a enregistrer le login je l'est juste afficher visuellement.

<?php session_start(); ?>

<head>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design" />
</body>
<?php
//--------------------------------------------------//
// fichier : formulaire.php 
//--------------------------------------------------//
// connexion à la BDD:
require_once "connexionBDD.php";

// Le temps des tests.. pour voir ce qui est reçu dans la variable
// $_POST :


//------------------------------------
//traitement du submit :
//------------------------------------

//récupération des variables :
$post = isset($_POST['post']) ? $_POST['post'] : NULL;
$commentaire= isset($_POST['commentaire']) ? $_POST['commentaire'] : '';
try{
 $sql = "INSERT INTO coms(post) VALUES (:commentaire)";
 $params = array(":commentaire"=>$commentaire);
 $prepare = $db->prepare($sql);
 $prepare->execute($params);

}catch(PDOException $e) {
    
}

?>
<!-- formulaire html -->
<form action="" method="post">
<p>Votre commentaire:</p>
<h2><?php echo ''.$_SESSION['login'].''; ?></h2>
<textarea name="commentaire" style="width:500px;height:200px;"><?php echo $commentaire ;?></textarea><br/>
<input type="submit" value="Envoyer">
</form>





2 réponses

blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
18 juin 2015 à 21:10
Salut,

Ya comme une impression de déjà vu.. lol
Je comprends un peu mieux ton soucis, as tu une colonne login dans ta table coms de ta base de données?
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
18 juin 2015 à 21:20
J'ai une table 'membre' avec 'id', 'login' , 'pass_md5' et 'email' et dans l'autre table 'coms' il y a : 'post_id', 'post' et le 'login'.

J'arrive a afficher le login grace a:
<?php echo ''.$_SESSION['login'].''; ?>
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
18 juin 2015 à 21:39
Sais bon mais j'ai du enlevé le if pour évité le commentaire vide mais donc ça me poste le commentaire vide et le commentaire que j'ai écris.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
18 juin 2015 à 21:40
Comment évité que le commentaire vide sois posté ?
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
Modifié par jordane45 le 18/06/2015 à 21:40
Ok ben c'est parfait dans ce cas, remplace les lignes
 $sql = "INSERT INTO coms(post) VALUES (:commentaire)";
 $params = array(":commentaire"=>$commentaire);

par
 $sql = "INSERT INTO coms(post, login) VALUES (:commentaire, :login)";
 $params = array(":commentaire"=>$commentaire, ":login"=>$_SESSION['login']);


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
18 juin 2015 à 21:47
Toujours là pour corriger ;)
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
18 juin 2015 à 21:47
Je comprend pas trop la donc ça marche mais j'ai du enlever le
$post = isset($_POST['post']) ? $_POST['post'] : NULL;
$commentaire= isset($_POST['commentaire']) ? $_POST['commentaire'] : NULL;
if($post && $commentaire){ // ce if j'ai du l'enlevé pour que cela marche

 try{
  $sql = "INSERT INTO coms(post) VALUES (:commentaire)";
  $params = array(":commentaire"=>$commentaire);
  $prepare = $db->prepare($sql);
  $prepare->execute($params);

 }catch(PDOException $e) {
     echo 'Erreur : '.$e->getMessage();
     echo 'N° : '.$e->getCode();
 }
}
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
18 juin 2015 à 21:49
Car la j'ai un commentaire vide dès l'ouverture de ma page commentaire et le commentaire que j'écris qui au passage on ne sais pas si cela a était publié ou pas... :/
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 18/06/2015 à 21:53
Sinon il s'affiche mais faut fermer la page puis il faut recharger la page source, pour voir la publication des commentaires (celui vide et celui que j'ai écrit ).
0