Page 1 sur 1

fonction modifier un commentaire

Posté : 03 févr. 2019, 00:03
par bibou51
Bonjour,
sur cette page je viens de réussir a créer une fonction pour supprimer les messages par contre je n'arrive pas à faire une fonction pour modifier les messages.
si quelqu'un pouvais m'aider ce serait sympa .
merci d'avance.

<?php
define('include',NULL);
include('../core.php');

if (!isset($_SESSION['membre']) || $_SESSION['connect'] != true){header('Location: /compte/login'); die();}

$nompage = 'Categorie 1';
$page = "categorie1";
$descpage = 'Categorie 1 du Forum du site';

include('../header.php');
include('../sidebar.php');

$sqlinfos = $db->prepare('SELECT euros, credits, pseudo, avatar FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_SESSION['membre']));  
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);



$avatar = ($infos->avatar == '') ? '/theme/images/noavatar.png' : $infos->avatar;


if(isset($_POST['envoyer']))
{
	$message=($_POST['message']);
	$auteur=($_POST['auteur']);
	$categorie=($_POST['categorie']);
	$date=($_POST['date']);
}



$insert = $db->prepare('INSERT INTO forum_commentaire1 SET message = :message, auteur = :auteur, categorie = :categorie, date = :date');
$insert->execute(array(':message'=>$_POST['message'], ':auteur'=>$_POST['auteur'], ':categorie'=>$_POST['categorie'], ':date'=>time()));

// fonction supprimer

if (isset($_POST['del_x']) && isset($_SESSION['pseudo']) && $_SESSION['admin'] == true) {

$_POST['id'] = intval($_POST['id']);

$delete = $db->prepare('DELETE FROM forum_commentaire1 WHERE id = :id');
$delete->execute(array(':id' => $_POST['id']));
$message = '<div id=valid>Commentaire Supprimé</div><script>setTimeout(\'window.location.replace("/categorie1")\',2000);</script>';

}
$delete = $db->prepare('UPDATE forum_commentaire1 SET message = :message, auteur = :auteur WHERE id = :id');
$delete->execute(array(':message' => $_POST['message'], ':auteur' => $_POST['auteur'], ':id' => $_POST['id']));
$message = '<div id=valid>Commentaire Modifié</div><script>setTimeout(\'window.location.replace("/categorie1")\',2000);</script>';

// fin fonction upprimer

// fonction modifier


//fin fonction modifier


$sqlpubh = $db->prepare('SELECT pub FROM pubs WHERE page = :page AND pos = :pos LIMIT 1');
$sqlpubh->execute(array(':page' => 'forum', ':pos' => 'haut'));
$pubh = $sqlpubh->fetch(PDO::FETCH_OBJ);
$sqlpubb = $db->prepare('SELECT pub FROM pubs WHERE page = :page AND pos = :pos LIMIT 1');
$sqlpubb->execute(array(':page' => 'forum', ':pos' => 'bas'));
$pubb = $sqlpubb->fetch(PDO::FETCH_OBJ);

echo '
<div id="content" class="float_r"><div class="center topart"><h3>Discussions sur le site</h3><div class="sidehead2"><div class="sidehead3"></div></div></div>
<div class="center padding">
Des questions, des commentaires, des idées à proposer ?<br>N\'hésitez pas à venir les poster ici !<br><br>

<div class="center"><a href="index"><button type="button" class="btn">Retour au forum</button></a></div><br>



<form method="post" action="categorie1"> 
<input type="hidden" value="'.$infos->pseudo.'" name="auteur" />
<input type="hidden" value="1" name="categorie" />
<input type="hidden" value="time" name="date" />

<table class="table"><tr class="tr"><td style="width: 90%" class="center"><b>Ajouter votre commentaire</b></td></tr>
<tr style="background: white;"><td style="width: 90%" class="center"><textarea rows="6" cols="45" class="input" name="message" id="message" placeholder="Ecrivez ici votre commentaire..." required></textarea></td></tr>
<tr style="background: white;"><td style="width: 90%" class="center"><input type="submit" value="Envoyer" name="envoyer" class="btn" /></td></tr>
</table></form><br /><br />


<table class="table">
<tbody>
<tr class="tr"><td style="width:55%">Commentaire</td><td class="center" style="width:20%">Auteur</td><td class="center" style="width:25%">Date</td></tr>
</tbody>
</table>';



$sqlforum_commentaire1 = $db->query('SELECT * FROM forum_commentaire1 ORDER BY id DESC');
while($forum_commentaire1 = $sqlforum_commentaire1->fetch(PDO::FETCH_OBJ)){

$admin = (isset($_SESSION['pseudo']) && $_SESSION['admin'] == true) ? '<form method="post" action="categorie1" style="float:right"><input type="hidden" name="id" value="'.$forum_commentaire1->id.'" /><input type="image" src="/theme/images/edit.png" title="Modifier ce commentaire" name="modif" />&nbsp;<input type="image" onclick="return confirm(\'Supprimer ce commentaire ?\');" src="/theme/images/del.png" title="Supprimer ce commentaire" name="del" /></form>' : '';

echo '<table class="table">
<tbody>
<tr style="background: white;">
<td style="width:55%">'.$forum_commentaire1->message.' '.$admin.'</td><td class="center" style="width:20%">'.$forum_commentaire1->auteur.'</td><td class="center" style="width:25%">'.jour_date($forum_commentaire1->date).'</td></tr>
</tbody>
</table>';


}

echo '<br><div class="center"><span style="color:green"><b>Mini Forum créé par bibou51</b></span></div><br>




</div><br />

</div>';







include('../footer.php');
?>

Re: fonction modifier un commentaire

Posté : 03 févr. 2019, 16:12
par bibou51
bonjour,
bon j'ai réussi à faire ma fonction "modifier" mais ça ne fonctionne que quand je suis connecté en admin.
si on pouvais m'aider pour que l'auteur d'un message puisse aussi modifier ou supprimer ses propres messages ça serait sympa.
Merci d'avance.
<?php
define('include',NULL);
include('../core.php');

if (!isset($_SESSION['membre']) || $_SESSION['connect'] != true){header('Location: /compte/login'); die();}

$nompage = 'Categorie 1';
$page = "categorie1";
$descpage = 'Categorie 1 du Forum du site';

include('../header.php');
include('../sidebar.php');

$sqlinfos = $db->prepare('SELECT euros, credits, pseudo, avatar FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_SESSION['membre']));  
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);

$avatar = ($infos->avatar == '') ? '/theme/images/noavatar.png' : $infos->avatar;

if(isset($_POST['envoyer']))
{
	$message=($_POST['message']);
	$auteur=($_POST['auteur']);
	$categorie=($_POST['categorie']);
	$date=($_POST['date']);
}


$insert = $db->prepare('INSERT INTO forum_commentaire1 SET message = :message, auteur = :auteur, categorie = :categorie, date = :date');
$insert->execute(array(':message'=>$_POST['message'], ':auteur'=>$_POST['auteur'], ':categorie'=>$_POST['categorie'], ':date'=>time()));


// fonction supprimer

if (isset($_POST['del_x']) && isset($_SESSION['pseudo']) && $_SESSION['admin'] == true) {

$_POST['id'] = intval($_POST['id']);

$delete = $db->prepare('DELETE FROM forum_commentaire1 WHERE id = :id');
$delete->execute(array(':id' => $_POST['id']));
$message = '<div id=valid>Commentaire Supprimé</div><script>setTimeout(\'window.location.replace("/categorie1")\',2000);</script>';


$delete = $db->prepare('UPDATE forum_commentaire1 SET message = :message, auteur = :auteur WHERE id = :id');
$delete->execute(array(':message' => $_POST['message'], ':auteur' => $_POST['auteur'], ':id' => $_POST['id']));
$message = '<div id=valid>Commentaire Modifié</div><script>setTimeout(\'window.location.replace("/categorie1")\',2000);</script>';
}
// fin fonction supprimer

// fonction modifier


if (isset($_POST['modif_x']) && isset($_SESSION['pseudo']) && $_SESSION['admin'] == true && isset($_POST['id']) && $_POST['id'] != '') {

$_POST['id'] = intval($_POST['id']);

$sqllivre2 = $db->prepare('SELECT * FROM forum_commentaire1 WHERE id = :id');
$sqllivre2->execute(array(':id' => $_POST['id']));
$livre2 = $sqllivre2->fetch(PDO::FETCH_OBJ);

//
$delete = $db->prepare('DELETE FROM forum_commentaire1 WHERE id = :id');
$delete->execute(array(':id' => $_POST['id']));
$message = '<div id=valid>Commentaire Supprimé</div><script>setTimeout(\'window.location.replace("/categorie1")\',2000);</script>';


$delete = $db->prepare('UPDATE forum_commentaire1 SET message = :message, auteur = :auteur, date = :date WHERE id = :id');
$delete->execute(array(':message' => $_POST['message'], ':auteur' => $_POST['auteur'], ':date' => $_POST['date'], ':id' => $_POST['id']));
$message = '<div id=valid>Commentaire Modifié</div><script>setTimeout(\'window.location.replace("/categorie1")\',2000);</script>';
//

echo '<div id="content" class="float_r"><div class="center topart"><h3>Discussions sur le site</h3><div class="sidehead2"><div class="sidehead3"></div></div></div>
<div class="center padding">
Des questions, des commentaires, des idées à proposer ?<br>N\'hésitez pas à venir les poster ici !<br><br>

<div class="center"><a href="index"><button type="button" class="btn">Retour au forum</button></a></div><br>

<form method="post" action="categorie1"> 
<input type="hidden" value="'.$infos->pseudo.'" name="auteur" />
<input type="hidden" value="1" name="categorie" />
<input type="hidden" value="time" name="date" />

<table class="table"><tr class="tr"><td style="width: 90%" class="center"><b>Modifier votre commentaire</b></td></tr>
<tr style="background: white;"><td style="width: 90%" class="center"><textarea rows="6" cols="45" class="input" name="message" id="message" placeholder="Ecrivez ici votre commentaire..." required>'.$livre2->message.'</textarea></td></tr>
<tr style="background: white;"><td style="width: 90%" class="center"><input type="submit" value="Modifier" name="modifier" class="btn" /></td></tr>
</table></form><br /><br />

</div></div>';

}
else{
// fin fonction modifier

$sqlpubh = $db->prepare('SELECT pub FROM pubs WHERE page = :page AND pos = :pos LIMIT 1');
$sqlpubh->execute(array(':page' => 'forum', ':pos' => 'haut'));
$pubh = $sqlpubh->fetch(PDO::FETCH_OBJ);
$sqlpubb = $db->prepare('SELECT pub FROM pubs WHERE page = :page AND pos = :pos LIMIT 1');
$sqlpubb->execute(array(':page' => 'forum', ':pos' => 'bas'));
$pubb = $sqlpubb->fetch(PDO::FETCH_OBJ);

echo '
<div id="content" class="float_r"><div class="center topart"><h3>Discussions sur le site</h3><div class="sidehead2"><div class="sidehead3"></div></div></div>
<div class="center padding">
Des questions, des commentaires, des idées à proposer ?<br>N\'hésitez pas à venir les poster ici !<br><br>

<div class="center"><a href="index"><button type="button" class="btn">Retour au forum</button></a></div><br>

<form method="post" action="categorie1"> 
<input type="hidden" value="'.$infos->pseudo.'" name="auteur" />
<input type="hidden" value="1" name="categorie" />
<input type="hidden" value="time" name="date" />

<table class="table"><tr class="tr"><td style="width: 90%" class="center"><b>Ajouter votre commentaire</b></td></tr>
<tr style="background: white;"><td style="width: 90%" class="center"><textarea rows="6" cols="45" class="input" name="message" id="message" placeholder="Ecrivez ici votre commentaire..." required></textarea></td></tr>
<tr style="background: white;"><td style="width: 90%" class="center"><input type="submit" value="Enover" name="envoyer" class="btn" /></td></tr>
</table></form><br /><br />

<table class="table">
<tbody>
<tr class="tr"><td style="width:55%">Commentaire</td><td class="center" style="width:20%">Auteur</td><td class="center" style="width:25%">Date</td></tr>
</tbody>
</table>';


$sqlforum_commentaire1 = $db->query('SELECT * FROM forum_commentaire1 ORDER BY id DESC');
while($forum_commentaire1 = $sqlforum_commentaire1->fetch(PDO::FETCH_OBJ)){

$admin = (isset($_SESSION['pseudo']) && $_SESSION['admin'] == true) ? '<form method="post" action="categorie1" style="float:right"><input type="hidden" name="id" value="'.$forum_commentaire1->id.'" /><input type="image" src="/theme/images/edit.png" title="Modifier ce commentaire" name="modif" />&nbsp;<input type="image" onclick="return confirm(\'Supprimer ce commentaire ?\');" src="/theme/images/del.png" title="Supprimer ce commentaire" name="del" /></form>' : '';


echo '<table class="table">
<tbody>
<tr style="background: white;">
<td style="width:55%">'.$forum_commentaire1->message.' '.$admin.' '.$auteur.'</td><td class="center" style="width:20%">'.$forum_commentaire1->auteur.'</td><td class="center" style="width:25%">'.jour_date($forum_commentaire1->date).'</td></tr>
</tbody>
</table>';


}

echo '<br><div class="center"><span style="color:green"><b>Mini Forum créé par bibou51</b></span></div><br>


</div><br />

</div>';
}

include('../footer.php');
?>

Re: fonction modifier un commentaire

Posté : 04 févr. 2019, 17:04
par Spols
insère une condition alternative à ceci $_SESSION['admin'] == true en cherchant à savoir si le post est écrit par le membre connecté.

indice: un || sera utile

Re: fonction modifier un commentaire

Posté : 04 févr. 2019, 23:19
par bibou51
Bonjour Spols,
Merci pour l'indice mais j'ai essayé avec un || et $_POST['auteur'] et aussi $_POST['message'] et j'y arrive pas.
Pourtant je suis sûr que c'est tout bête mais comme je suis débutant ce n'est pas toujours évident.

Re: fonction modifier un commentaire

Posté : 09 févr. 2019, 18:46
par bibou51
Bonjour,
Malgré tout mes essais tout au long de la semaine je n'ai toujours pas trouvé la solution...
Donc si on pouvait me donner un indice supplémentaire ça serait cool.
Merci d'avance.
p.s. ; je suis débutant soyez indulgent.

Re: fonction modifier un commentaire

Posté : 11 févr. 2019, 09:17
par Spols
isset($_SESSION['pseudo']) && $_SESSION['admin'] == true

==>

isset($_SESSION['pseudo']) && ($_SESSION['admin'] == true || $_SESSION['pseudo'] == $_POST['auteur'])

à condition d'avoir toujours une superglobale _POST et que l'auteur et le pseudo soit identique.

Re: fonction modifier un commentaire

Posté : 11 févr. 2019, 15:13
par bibou51
bonjour Spols,
Merci pour ton aide mais ça ne fonctionne pas non plus.

Re: fonction modifier un commentaire

Posté : 12 févr. 2019, 09:11
par Spols
Il faut que tu débug ton code pour savoir pourquoi cela ne marche pas.

Ajoute des echo/var_dump pour connaitre les valeurs de tes variables et pourquoi elle ne correspondent pas à tes désirs.