Bonjour,
Je suis entrain de refaire un nouveau script de news pour mon site
Je m'en suis globalement bien sortie :wink:
Mais j'ai un petit problème avec les commentaires, je m'éxplique, quand je poste un commentaire, il ne l'enregistre pas dans la Base de Donnée ! J'ai éssayé pas mal de chose, mais rien a faire ! Les champs de ma BDD sont correct, mais c'est l'enregistrement du message qui foire :cry:
J'aimerais savoir si vous pouviez m'aider à résoudre ce problème s'il vous plaît, voiçi mon code:
Ce code est assez long je l'avoue, j'éxplique déja tout sa !
Donc au début, on affiche la news en question (comme sa quand on poste le commentaire, on voit la news au dessus) donc je récupère la news avec la fonction $_GET (qui varira dans l'URL en fonction de la news :wink: ). En dessous j'affiche le formulaire, avec BBCode et Smileys (mais sa on s'en fou un peu :lol: ) Et après le formulaire, c'est la que sa devient interessant, on simplifie les variables déja (car les superglobale sont longues à écrire !); ensuite on fait 2 test pour voir si l'adresse e-mail entrer dans le formulaire est valide, et puis après on vérifie si tout les champs sont bien remplit :wink:
Après si tout est bon on insert dans la BDD les données (Pseudo, E-Mail, et Message ), après on voit si il y a des messages concernant la news, si il y en as on les affiches, sinon on marque un petit texte:
Voila, donc il ne m'affiche aucune erreur lorsque je post un commentaires (pas de parse error ni rien !), mais quand je post un commentaire, il ne l'enregistre pas (j'ai été voir dans PHP My Admin après, mais aucun message n'y a été poster :roll: )
Donc voila je voulais savoir si vous voyez une erreur qui justifirait qu'il n'insert pas les messages postés dans la BDD :?:
Au revoir
Je suis entrain de refaire un nouveau script de news pour mon site
Je m'en suis globalement bien sortie :wink:
Mais j'ai un petit problème avec les commentaires, je m'éxplique, quand je poste un commentaire, il ne l'enregistre pas dans la Base de Donnée ! J'ai éssayé pas mal de chose, mais rien a faire ! Les champs de ma BDD sont correct, mais c'est l'enregistrement du message qui foire :cry:
J'aimerais savoir si vous pouviez m'aider à résoudre ce problème s'il vous plaît, voiçi mon code:
Code:
<?
mysql_connect("*****", "****", "*****");
mysql_select_db("****") or die(mysql_error());
if (isset($_GET['commentaires'])) // Si on demande à poster un commentaire
{
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['commentaires'])or die(mysql_error());
$donnees = mysql_fetch_array($retour);
}
?>
<table width="360" border="0" class="tableau">
<tr>
<td width="265" height="30" class="table"><h3 align="center">
<p align="center">
<? echo $donnees['titre']; ?>
<em><span class="Style13">le</span> <? echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em> <span class="Style13">posté par</span> <strong><a href="mailto:<? echo $donnees['mail']; ?>"><? echo $donnees['pseudo']; ?></a></strong></p>
</h3></span></td>
</tr>
<tr>
<td><?
$message = nl2br(stripslashes($donnees['contenu']));
$message = preg_replace('!\[B\](.+)\[/B\]!isU', '<strong>$1</strong>', $message);
$message = preg_replace('!\[I\](.+)\[/I\]!isU', '<em>$1</em>', $message);
$message = preg_replace('!\[U\](.+)\[/U\]!isU', '<span style="text-decoration: underline;">$1</span>', $message);
$message = preg_replace('!\[FOND=(red|green|blue|yellow|purple|olive)\](.+)\[/FOND\]!isU', '<span style="background-color:$1">$2</span>', $message);
$message = preg_replace('!\[SIZE=([0-9]+)\](.+)\[/SIZE\]!isU', '<span style="font-size:$1px">$2</span>', $message);
$message = preg_replace('!\[FONT=(Comic sans Ms|Times New Roman|Verdana|Serif)\](.+)\[/FONT\]!isU', '<span style="font-family:$1">$2</span>', $message);
$message = preg_replace('!\[COLOR=(red|green|blue|black|yellow|purple|olive)\](.+)\[/COLOR\]!isU', '<span style="color:$1">$2</span>', $message);
$message = preg_replace('!\|(.+)\|!isU', '<img src="smiley/$1.png" />', $message);
$message = preg_replace('!\[MAIL\](.+)\[/MAIL\]!isU', '<a href="mailto:$1">$1</a>', $message);
$message = preg_replace('!\[URL=(.+)\](.+)\[/URL\]!isU', '<a href="$1" title="$1" target="_blank">$2</a>', $message);
$message = preg_replace('!\[IMG\](.+)\[/IMG\]!isU', '<img src="$1" alt="$1" style="border: none;" />', $message);
$array = array('alien','amazed','angry','biglaugh','confused','cry',
'dead','dodge','frown','grin','ill','mad','mistrust','neutral','rolleyes',
'shades','shy','smile','special','suprised','tongue','wink');
?>
<?
foreach($array as $element)
{
$message = str_replace(':'.$element.':','<img src="smileys/'.$element.'.png">',$message);
}
?><span class="affiche_news"><? echo $message; ?></span></td>
</tr>
</table><br /><br />
<form name="commentaires" id="commentaires" method="post" action="">
<table width="350" border="0">
<tr>
<td width="65" class="Style2">Pseudo:</td>
<td width="275"><input name="pseudo" type="text" id="pseudo" /></td>
</tr>
<tr>
<td class="Style2">E-Mail:</td>
<td><input name="mail" type="text" id="mail" /></td>
</tr>
<tr>
<td class="Style2">Smileys:</td>
<td><a href="javascript:smiley(':alien:')"><img src="../smileys/alien.png" alt=":alien:" width="18" height="18" border="0" /></a> <a href="javascript:smiley(':amazed:')"><img src="../smileys/amazed.png" alt=":amazed:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':angry:')"><img src="../smileys/angry.png" alt=":angry:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':biglaugh:')"><img src="../smileys/biglaugh.png" alt=":biglaugh:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':confused:')"><img src="../smileys/confused.png" alt=":confused:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':cry:')"><img src="../smileys/cry.png" alt=":cry:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':dead:')"><img src="../smileys/dead.png" alt=":dead:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':dodge:')"><img src="../smileys/dodge.png" alt=":dodge:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':frown:')"><img src="../smileys/frown.png" alt=":frown:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':grin:')"><img src="../smileys/grin.png" alt=":grin:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':ill:')"><img src="../smileys/ill.png" alt=":ill:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':mad:')"><img src="../smileys/mad.png" alt=":mad:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':mistrust:')"><img src="../smileys/mistrust.png" alt=":mistrust:" width="18" height="18" border="0" /></a><br />
<a href="javascript:smiley(':neutral:')"><img src="../smileys/neutral.png" alt=":neutral:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':rolleyes:')"><img src="../smileys/rolleyes.png" alt=":rolleyes:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':shades:')"><img src="../smileys/shades.png" alt=":shades:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':shy:')"><img src="../smileys/shy.png" alt=":shy:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':smile:')"><img src="../smileys/smile.png" alt=":smile:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':special:')"><img src="../smileys/special.png" alt=":special:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':suprised:')"><img src="../smileys/suprised.png" alt=":suprised:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':tongue:')"><img src="../smileys/tongue.png" alt=":tongue:" width="18" height="18" border="0" /></a><a href="javascript:smiley(':wink:')"><img src="../smileys/wink.png" alt=":wink:" width="18" height="18" border="0" /></a></td>
</tr>
<tr>
<td class="Style2">BBCode:</td>
<td><input type="button" onclick="nxbbcode('B', 'message');" id="B" value="B" style="font-weight:bold" />
<input type="button" onclick="nxbbcode('I', 'message');" id="I" value="I" style="font-style:italic" />
<input type="button" onclick="nxbbcode('U', 'message');" id="U" value="U" style="text-decoration:underline" />
<input class='boutton_2' type='button' value='URL' id ='URL' onclick="boutons_bbcodes_URL('URL', 'message');" />
<input class='boutton_2' type='button' value='IMG' id ='IMG' onclick="boutons_bbcodes_IMG('IMG', 'message');" />
<input class='boutton' type='button' value='@' id ='MAIL' onclick="boutons_bbcodes_mail('MAIL', 'message');" />
<select id="font" onchange="addnxselectbbcode('font', 'message');">
<option value="" selected="selected">Police</option>
<option value="Arial">Arial</option>
<option value="Verdana">Verdana</option>
<option value="Courier">Courier</option>
<option value="Times">Times</option>
<option value="Times New Roman">Times New Roman</option>
<option value="Comic Sans MS">Comic Sans MS</option>
<option value="Georgia">Georgia</option>
<option value="Sylfaen">Sylfaen</option>
<option value="Mangal">Mangal</option>
</select>
<SELECT id="SC" style="WIDTH: 88px" onchange="SETCOLOR('message',SC)">
<OPTION style="COLOR: black" value="BLACK" selected>Noir</OPTION>
<OPTION style="COLOR: blue" value="BLUE">Bleu</OPTION>
<OPTION style="COLOR: red" value="RED">Rouge</OPTION>
<OPTION style="COLOR: yellow" value="yellow">Jaune</OPTION>
<OPTION style="COLOR: green" value="GREEN">Vert</OPTION>
<OPTION style="COLOR: orange" value="ORANGE">Orange</OPTION>
<OPTION style="COLOR: purple" value="PURPLE">Violet</OPTION>
</SELECT></td>
</tr>
<tr>
<td class="Style2">Message:</td>
<td><textarea name="message" cols="30" rows="5" id="message"></textarea></td>
</tr>
<tr>
<td class="Style2"><input type="hidden" name="id_news" value="<? echo $_GET['commentaires'];?>" /></td>
<td> <input type="image" src="../images/news/envoyer.png" name="Submit" value="Envoyer" onClick="document.form.submit()" /></td>
</tr>
</table>
</form>
<p><?
$id_news = $_GET['commentaires'];
$pseudo = htmlentities($_POST['pseudo']);
$pseudo = addslashes($_POST['pseudo']);
$mail = htmlentities($_POST['mail']);
$mail = addslashes($_POST['mail']);
$message = htmlentities($_POST['message']);
$message = addslashes(nl2br($_POST['message']));
if (isset($_POST['Submit'])) // Si on veut envoyer le formulaire.
{
if(isset($mail))
{
if (! preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email n'est pas valide !
{
echo '<h2>Erreur !</h2> <br />
<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
}
}
elseif (empty($pseudo) || empty($mail) || empty($message))
{
echo '<h2>Erreur !</h2> <br />
<h3>Vous n\'avez pas remplit tous les champs !</h3>';
}
else
{
mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')");
echo '<h3>Votre message a bien été poster ! <a href="http://www.duel-monster.org">Cliquez ici pour retrourner à la page d\'accueil du site</h3>';
}
}
if (($donnees['message'] && $donnees['timestamp'] && $donnees['pseudo'] && $donnees['mail']) == NULL)
{
echo 'Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger';
}
else
{
// On récupère les infos de la correspondante
$retour2 = mysql_query('SELECT * FROM commentaires WHERE id=' . $_GET['commentaires'])or die(mysql_error());
while ($donnees2 = mysql_fetch_array($retour2));
{
$pseudo = stripslashes($donnees2['pseudo']);
$mail = stripslashes($donnees2['mail']);
$message = nl2br(stripslashes($donnees2['message']));
?>
Posté le <em><? echo date('d/m/Y \à H\hi', $donnees2['timestamp']); ?></em> par <a href="mailto:<? echo $mail; ?>"><? echo $pseudo; ?></a><br />
<?
$message = preg_replace('!\[B\](.+)\[/B\]!isU', '<strong>$1</strong>', $message);
$message = preg_replace('!\[I\](.+)\[/I\]!isU', '<em>$1</em>', $message);
$message = preg_replace('!\[U\](.+)\[/U\]!isU', '<span style="text-decoration: underline;">$1</span>', $message);
$message = preg_replace('!\[FOND=(red|green|blue|yellow|purple|olive)\](.+)\[/FOND\]!isU', '<span style="background-color:$1">$2</span>', $message);
$message = preg_replace('!\[SIZE=([0-9]+)\](.+)\[/SIZE\]!isU', '<span style="font-size:$1px">$2</span>', $message);
$message = preg_replace('!\[FONT=(Arial|Verdana|Courier|Times|Times New Roman|Comic sans Ms|Georgia|Sylfaen|Mangal)\](.+)\[/FONT\]!isU', '<span style="font-family:$1">$2</span>', $message);
$message = preg_replace('!\[COLOR=(red|green|blue|black|yellow|purple|olive)\](.+)\[/COLOR\]!isU', '<span style="color:$1">$2</span>', $message);
$message = preg_replace('!\|(.+)\|!isU', '<img src="smiley/$1.png" />', $message);
$message = preg_replace('!\[MAIL\](.+)\[/MAIL\]!isU', '<a href="mailto:$1">$1</a>', $message);
$message = preg_replace('!\[URL=(.+)\](.+)\[/URL\]!isU', '<a href="$1" title="$1" target="_blank">$2</a>', $message);
$message = preg_replace('!\[IMG\](.+)\[/IMG\]!isU', '<img src="$1" alt="$1" style="border: none;" />', $message);
$array = array('alien','amazed','angry','biglaugh','confused','cry',
'dead','dodge','frown','grin','ill','mad','mistrust','neutral','rolleyes',
'shades','shy','smile','special','suprised','tongue','wink');
foreach($array as $element)
{
$message = str_replace(':'.$element.':','<img src="smileys/'.$element.'.png">',$message);
}
}
echo $message;
}
?>
Ce code est assez long je l'avoue, j'éxplique déja tout sa !
Donc au début, on affiche la news en question (comme sa quand on poste le commentaire, on voit la news au dessus) donc je récupère la news avec la fonction $_GET (qui varira dans l'URL en fonction de la news :wink: ). En dessous j'affiche le formulaire, avec BBCode et Smileys (mais sa on s'en fou un peu :lol: ) Et après le formulaire, c'est la que sa devient interessant, on simplifie les variables déja (car les superglobale sont longues à écrire !); ensuite on fait 2 test pour voir si l'adresse e-mail entrer dans le formulaire est valide, et puis après on vérifie si tout les champs sont bien remplit :wink:
Après si tout est bon on insert dans la BDD les données (Pseudo, E-Mail, et Message ), après on voit si il y a des messages concernant la news, si il y en as on les affiches, sinon on marque un petit texte:
Aucun commentaire n'a été posté sur cette news, soyez le premier à en rediger
Voila, donc il ne m'affiche aucune erreur lorsque je post un commentaires (pas de parse error ni rien !), mais quand je post un commentaire, il ne l'enregistre pas (j'ai été voir dans PHP My Admin après, mais aucun message n'y a été poster :roll: )
Donc voila je voulais savoir si vous voyez une erreur qui justifirait qu'il n'insert pas les messages postés dans la BDD :?:
Au revoir