Problème commentaires (en PHP)

Jojo.

WRInaute discret
Bonjour,

Je suis entrain de refaire un nouveau script de news pour mon site :D

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&eacute; 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 :D
 

cedfr

WRInaute passionné
Salut,
Je tiens tout d'abord à te dire que je ne risque pas de t'aider car mon niveau ne me le permet pas :cry:
Cependant, si quelqu'un arrive à trouver la solution pour les commentaires, te serait-il possible de partager ton script ? Car je suis très interessé puisque c'est difficile de trouver un script comme le tien qui propose un système de commentaire et qui semble marcher (dès que ton problème sera résolu). :D
 

Jojo.

WRInaute discret
Salut, je veux bin te passer ma page commentaire si tu le souhaite :D

Mais il faudrais déja résoudre mon problème :cry:

A+ :D
 

spijoelx

WRInaute discret
j'ai pas trop le temps de tout lire pour ton problème, seulement en lisant le début, tu devrais faire un test avec preg_match() pour vérifier que $_GET['commentaires'] ne soit bien que des chiffres.
 

Jojo.

WRInaute discret
Tu veux dire une ergex pour vérifier que c'est bin un nombre ?

Sinon personne n'as d'idées pour mon problème s'il vous plaît ?

A+ :wink:
 

[--Eric--]

WRInaute occasionnel
Moi déjà, je ferais un :

Code:
$test_requete=mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')");
echo $test_requete;
exit;

pour déjà voir à quoi ressemble ta requete d'insertion. Si les paramètres de ton serveur n'affichent pas les erreurs mysql tu auras du mal à voir ce qui cloche. Ensuite teste ta requête générée directement dans phpMyAdmin pour voir ce qui se passe.
 

Patrice A.

WRInaute passionné
Ton erreur est sans doute au niveau de
Code:
if(isset($mail))

Voici en gros ce que fait ton script :

Code:
SI IL Y A un mail
           ALORS blablabla
SINON, SI il manque le mail ou autre info
           ALORS !pas content !!
SINON,
           fonctionner correctement

Donc ton programme ne "'fonctionne correctement" que si
"Il y a un mail" = FAUX
et
"Il manque le mail ou autre "= FAUX

En logique de Morgan, ça se réduit à :
ton programme ne fonctionne que si (A et non A)
Il ne marchera jamais :wink:
 

Jojo.

WRInaute discret
Merci a toi, moi je voulais dire:
Si on a remplit le formulaire d'e-mail:

- On vérifie si l'e-mail est correct, et si tout les champs sont remplits !

Quel code dois-je mettre alros (car la je voix pas trop) ?

Car si j'enlève le isset, il va me mettre que le-mail est fau alors que je n'est toujours pas poster le commentaire :?

Donc que dois-je mettre ?

A+ :D
 

Patrice A.

WRInaute passionné
la technique de débutant qui marche toujours :
utilise une variable $toutmarchebien, que tu initialises à "vrai"
fais toutes tes vérif de façon indépendante, (sans imbriquer les if/else)
et à chaque vérif que tu fais, si qqch ne va pas, tu mets à "faux"

et à la fin, ne fais la requete que si $toutmarchebien est à "vrai"
 

Jojo.

WRInaute discret
Lol c'est peux être une technique de débutant (j'en suis un je vous rassure) mais j'ai jamais entendu parle de sa 8O

Ce que je ne comprend pas, au lieu de mettre:
Code:
if(isset($mail))

Je met:
Code:
if(isset($mail) AND isset($pseudo) AND isset($message))
{
//Je fais mes vérfications, avec mes conditions (if, else)
}
else //Si tout es bon !
// J'enregistre mes champs dans la BDD
}

Sa serai bon de faire sa ?
Car sans passer pour un débile, j'ai pas trop compris ton $toutmarchebien

A+ et merci
:D
 

Patrice A.

WRInaute passionné
gaffe, le label BLEU n'est pas loin.

Tu sais quand même ce qu'est une variable ?

Et quand je dis tu fais tes vérif de façon indépendante, ça veut bien sur dire que tu dois avoir une structure comme ça :

Code:
$lavariablequisertadiresitoutestcorrect = true;

if(condition1pourqueçamarchepas)
{
  ben alors $lavariablequisertadiresitoutestcorrect = false;
}

if(condition2pourqueçamarchepas)
{
  ben alors $lavariablequisertadiresitoutestcorrect = false;
}
...

if ($lavariablequisertadiresitoutestcorrect == true)
{
  alors trop cool !
  INSERT...
}
 

Jojo.

WRInaute discret
Lol oui oui, je sais ce qu'est une variable :wink:

J'ai éssayer ton truc, et des le début (qu_and j'arrive sur la page du form) il me dit que j'ai pas remplit tout les champs et que mon e-amil est pas valide :cry:
Voiçi mon code (que la partie interessante, je remet pas tout :wink: )
Code:
<?
						$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 (! 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>';
						$toutesok = false;
						 }
						}
						elseif (empty($pseudo) || empty($mail) || empty($message))
						{
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						}
						else
						{
						$toutesok == true; 
						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; 
}
?>

Donc déja il me met une erreur des le débuts, et en plus sa n'insert toujours pas les données !
Pourquoi ?

A+ :)
 

Patrice A.

WRInaute passionné
arf

s'il te plait, pense ton code avant de coder.

pense le en termes logiques, écris-le sur un papier en termes logiques. Ensuite mets-toi dans un cas précis, parcours ton papier, et regarde ce que ça fait.

Tu verras bien qu'un script qui fait
SI on vient de valider un formulaire..
SINON SI ...
SINON ...
FINSI

puis
XXXXX

va faire "XXXX" même si on vient de débarquer, sans avoir validé le formulaire :wink:
 

Jojo.

WRInaute discret
Merci pour ta réponse !

Donc en terme logique, je devrais faire (tu me reprend si c'est faux :wink: )

Si on vient de validé le formulaire (qui se traduit en PHP par:
Code:
if (isset($_POST['Submit'])) // Si on veut envoyer le formulaire.
						 {
)

Ensuite: Si l'adresse e-mail n'est pas valide (qui se traduit en PHP par:
Code:
if (! preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email n'est pas valide !
                        {
// Si l'adresse e-mail est pas valide, on l'enguele
}
)

Ensuite, on vérifiie Si tout les champs on bien été renplit (qui se traduit en PHP par:
Code:
elseif (empty($pseudo) || empty($mail) || empty($message))
						{
//Il a pas remplit tout les champs, donc on l'enguele 
}

Après si tout ses tests on été passer avec succès, on insert tout sa dans la BDD (qui se traduit en PHP par:
Code:
else
						{
						mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')"); 
echo '// On lui dis que tout s'est bien passer'; 
						 }

Et pour finir dans tout les cas, on affiche les commentaires !

Est-ce que ce résonnement est bon :?:

A+ :D
 

Jojo.

WRInaute discret
Excuser moi du double post (j'aurais pu éditer c'est vrai :cry: )

J'ai réussi, j'arrive a faire l'enregistrement :D

Par contre j'ai un autre problème :(

Les messages sont bien enregistrer dans la BDD, mais il ne s'affiche pas :cry:

Je veux dire, même quand il y a des messages dans la BDD il m'affiche toujours sa:
Aucun commentaire n'a été posté sur cette news, soyez le premier à en rediger

Comment cela se fait t'il ?
Voiçi mon petit code :D :
Code:
<?
						$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 (! 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>';
						$toutesok = false;
						 
						}
						elseif (empty($pseudo) || empty($mail) || empty($message))
						{
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						 
						}
						else
						{
						$toutesok == true; 
						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</a></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='$id_news'") 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; 
}
?>

Voyez vous où est l'erreur svp ?

A+ :D
 

Patrice A.

WRInaute passionné
Bon, bah BLEU
tu l'as cherché celui-là.

Nan mais arrête tu fais exprès avec tes elseif et tes else !!!! :lol:
Je t'ai dit de me virer cette bande de joyeux lurons et de mettre des tests INDEPENDANTS :lol:

IF {
}



IF{
}

vrala, ça c'est indépendant.

et après, je t'ai pas dit de subitement mettre $toutesok à true (là tu mets les steaks avant la charrue) mais de tester si $toutesok était encore à true (ce qui suppose que tu l'initialises à true avant tes tests)


et pour finir,
ne teste pas $donnees[...] si tu ne l'as défini nulle part avant :roll:
tu devrais ptèt lire la base de données avant de vérifier les résultats de cette lecture :lol:

Hmm un bon conseil que je peux te donner, et qui te sera très très utile pour débugguer tout ça :
PHP, ça s'interprète de HAUT en BAS.
donc ce que tu crées en BAS, tu peux pas l'utiliser en HAUT


ah non mais lol quand même :lol:
on va y arriver !!
 

Jojo.

WRInaute discret
Alala, c'est compliquer tout sa !

Je veux bien faire tout mes "if" indépendants ! Car on est bien obliger de mettre un else car sinon comment on enregistre ?

Si on a validé le form:
Si l'e-mail est valide
Si tout les champs ont bien été remplis
On enregistre tout sa !

C'est bien sa ?

A+ :)
 

Patrice A.

WRInaute passionné
Jojo. a dit:
Alala, c'est compliquer tout sa !

Je veux bien faire tout mes "if" indépendants ! Car on est bien obliger de mettre un else car sinon comment on enregistre ?

Si on a validé le form:
Si l'e-mail est valide
Si tout les champs ont bien été remplis
On enregistre tout sa !

C'est bien sa ?

A+ :)
mais en voilà, une bonne idée !
oui ç marche, ça

à condition que tes tests email et champs soient bien "si c'est bon" et non pas "si c'est pas bon" comme actuellement :wink:
 

Jojo.

WRInaute discret
Merci pour ta réponse !
Par contre ceux qui est pas logique, Si l'e-mail est valide, je fais quoi ?

Il faut dire Si l'e-mail n'est pas valide, on l'enguele !

Sans passer pour un débile, pourrais tu me passer un petit bout de code pour que je comprenne (car la j'ai pas mal de mal :? )

A+ :)
 

Patrice A.

WRInaute passionné
Jojo. a dit:
Merci pour ta réponse !
Par contre ceux qui est pas logique, Si l'e-mail est valide, je fais quoi ?

Il faut dire Si l'e-mail n'est pas valide, on l'enguele !

Sans passer pour un débile, pourrais tu me passer un petit bout de code pour que je comprenne (car la j'ai pas mal de mal :? )

A+ :)

Non mais tu peux faire les cas où ça marche pas :

Code:
SI formulaire
     SI tous les champs
              SI email valide
                         alors c'est bon
              SINON
                         alors email pas valide
              FINSI
     SINON
               alors pas tous les champs
     FINSI
SINON
      alors pas formulaire
FINSI
:wink:
 

Jojo.

WRInaute discret
On va y arriver, merci de ta patience, je comprend déja mieux :wink:

J'ai une erreur !
Déja voiçi mon code:
Code:
<?
						$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 (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email est valide !
                          {
						   if (isset($pseudo) || isset($mail) || isset($message)) // Si tout les champs sont bien remplis
						    {
						   $toutesok == true; 
						  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</a></h3>'; 
						}
						else //L'e-mail est pas valide
                        echo '<h2>Erreur !</h2> <br />
						<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
						$toutesok = false;
						 }
						}
						else // C'est que tout les champs sont pas remplis
						{
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						}
						else // C'est que l'on ne veux pas envoyer le formulaire 
						{
						// On récupère les infos de la correspondante
                        $retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") or die(mysql_error());
                        while ($donnees2 = mysql_fetch_array($retour2));
						{
						 }
						}
						if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)
						{ 
						echo 'Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger'; 
						}
						else //C'est qu'il y a des commentaires dans la BDD !
						{
						$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 />
						<?

Donc j'ai fais exactement ce que tu m'a dis :)

Et il me dis qu'il y a une erreur avec mon else:
Parse error: parse error, unexpected T_ELSE in /home/duel/www/commentaires.php on line 310

Et ce else c'est le 3ème
Code:
else // C'est que l'on ne veux pas envoyer le formulaire 
						{
						// On récupère les infos de la correspondante

Voix tu où est l'érreur ?

A+ et merci :D
 

Patrice A.

WRInaute passionné
Pour commencer, "||" veut dire "OU"
donc
Code:
isset($pseudo) || isset($mail) || isset($message))
n'est pas correct.
il faut vérifier que TOUT es isset :wink:


Ensuite
Code:
                else //L'e-mail est pas valide 
                        echo '<h2>Erreur !</h2> <br /> 
                  <h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>'; 
                  $toutesok = false; 
                   }
il est où le "{" après le mot else ?

et enfin, pour des raisons de sécurité, tu dois appliquer la fonction htmlentities à tout ce que tu mets dans la base de données, tu dois aussi appliquer un intval() à $id_news, sinon tu vas te faire pirater ton site en moins de 2 :wink:
 

Jojo.

WRInaute discret
Salut :)

Sa s'améliore, il y a plus d'érreur :wink:

Par contre pour les htmlentities, je les aies déja appliquer :)
J'ai été voir dans la doc, mais j'ai aps tout compris, la fonction intval() sert à quoi exactement ?

Voiçi mon code:
Code:
<?
						$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 (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email est valide !
                          {
						   if (isset($pseudo) && isset($mail) && isset($message)) // Si tout les champs sont bien remplis
						    {
						   $toutesok == true; 
						  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</a></h3>'; 
						}
						else //L'e-mail est pas valide
						{
                        echo '<h2>Erreur !</h2> <br />
						<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
						$toutesok = false;
						 }
						}
						else // C'est que tout les champs sont pas remplis
						 {
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						}
						 }
						else // C'est que l'on ne veux pas envoyer le formulaire 
						{
						// On récupère les infos de la correspondante
                        $retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") or die(mysql_error());
                        while ($donnees2 = mysql_fetch_array($retour2));
						{
						 }
						}
						if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)
						{ 
						echo 'Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger'; 
						}
						else //C'est qu'il y a des commentaires dans la BDD !
						{
						$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; 

?>

Donc maintenant il enregistre bien les commentaires poster (c'est un bonne nouvelle :p )

Mais il ne veux pas m'afficher les news, j'ai poster 5 news, j'ai été voir dans ma BDD elles sont bien enregistrer, mais elles ne s'affiches pas (il me met:
Aucun commentaire n'a été posté sur cette news, soyez le premier à en rediger
)

As tu une idée de pourquoi les commentaires ne s'affichent pas ?

A+ :D
 

e-kiwi

WRInaute accro
>> Votre message a bien été poster !

-> é

sinon tu peux apprendre a debugguer un prog :) tu fais un echo de ta requete, tu l''xecute dans phpmyadmin et tu verra si l erreur vient de ta requete ou non. ca fera le moitié des cas d erreur a écarter...
 

Jojo.

WRInaute discret
Salut,

Tu penses que c'est un problème de requête ?
Car moi je vois pas trop où est l'érreur là :?

A+ :D
 

Patrice A.

WRInaute passionné
je viens de t'expliquer d'écrire sur un papier ta structure de prog...

Code:
                  else // C'est que l'on ne veux pas envoyer le formulaire 
                  { 
                  // On récupère les infos de la correspondante 
                        $retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") or die(mysql_error()); 
                        while ($donnees2 = mysql_fetch_array($retour2)); 
                  { 
                   } 
                  } 
                  if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL) 
                  { 
                  echo 'Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger'; 
                  }
ceci, fait :

Code:
SI formulaire
   ALORS ... (cette partie est ok sauf que $toutesok ne sert plus à rien)
SINON
  ALORS 
         pour chaque commentaire posté
                      ne rien glander (bah oui, {} ça glande rien)
FINSI
   faire un truc pour ce commentaire
tu vois bien le problème...
 

Jojo.

WRInaute discret
Oki, donc alors avant de code, si j'ai bien compris, il faut que j'affiche les commentaires dans le else ou je récupère les commentaires ?

A+ :D
 

cedfr

WRInaute passionné
On dirait que le script fonctionne au fur et à mesure :lol:
Vivement qu'il soit testé, approuvé et tatoué :p
 

Jojo.

WRInaute discret
Merci d'avoir répondu, bon j'éspère que ce sera bientot fini :lol:
Mais sa marche tojours pas :cry:

Bon la maintenant c'est juste un problème d'affichage, vu que les messages s'inserts bien dans la BDD :D

Je suis sur que j'ai fais une érreur toute bête ! Voiçi mon code:

Code:
<?
						$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 (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email est valide !
                          {
						   if (isset($pseudo) && isset($mail) && isset($message)) // Si tout les champs sont bien remplis
						    {
						   $toutesok == true; 
						  mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')"); 
						echo '<h3>Votre message a bien été posté ! <a href="http://www.duel-monster.org">Cliquez ici pour retrourner à la page d\'accueil du site</a></h3>'; 
						}
						else //L'e-mail est pas valide
						{
                        echo '<h2>Erreur !</h2> <br />
						<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
						$toutesok = false;
						 }
						}
						else // C'est que tout les champs sont pas remplis
						 {
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						}
						 }
						else // C'est que l'on ne veux pas envoyer le formulaire 
						{
						// On récupère les infos de la correspondante
                        $retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") 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; 


						 }
						}
						if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)
						{ 
						echo 'Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger'; 
						}
						?>

Heu petite question il faudrais pas que j'utilise un refrech en javascript qui actualise automatiquement la page ?
Sinon il ne m'affiche toujours pas les messages :cry:

A+ :D
 

Patrice A.

WRInaute passionné
Bon,déjà, tes else ne correspondent pas aux bons IF
regarde bien, tu verras.

Sinon, ça devrait marcher... A condition bien sûr que tu passes à la page l'ID de la "news" en $_GET['commentaires'];
donc il faut appeler mapage.php?commentaires=XX où XX est le n° de la "news".

Et il est où mon intval ?
Si la prochaine fois, tu ne l'as toujours pas mis, je te pirate ton script dès que tu le mets en ligne, ça t'apprendra :lol:
 

Jojo.

WRInaute discret
Bon bon, je vais le mettre ton intval :lol:

Je la met à toute les variables la fonction ?
Et elle s'applique comme htmlentities ?

A+ (on y es presque^^) :wink:
 

Morph1er

WRInaute occasionnel
Salut,

lol, tout d'abord !!!
je pense que tu aurai du faire un script simple. Tu fais ton script tout basique qui enregistre dans tes tables les infos saisies dans le formulaire.

Après tu complexifies un peu en faisant comme Dj_Apx l'indique c'est à dire.
Tu fait un boolean et tu l'initialises à true.

et juste après tu fait ton 1er test.
Es ce que l'e-mail est valide.
Si la condition n'est pas remplit, tu passes ton boolean à false, ce qui interdira l'enregistrement ds tes tables...
Et tu continues comme ça jusqu'à contrôler entièrement les infos saisies.

Au début, il faut voir simple et rajouter les contrôles après. Je pense que c'est le mieux au début quand on débute...
 

Jojo.

WRInaute discret
Je débute oui...

Mais j'ai jamais aimé les bollean (vrai faux) j'aime pas trop sa car je comprend pas trop leur fonctionnement !

Donc je préfère garder ma technique, les conditons c'est beaucoup plus simple à utiliser !

A+ :D
 

Patrice A.

WRInaute passionné
Jojo. a dit:
Bon bon, je vais le mettre ton intval :lol:

Je la met à toute les variables la fonction ?
Et elle s'applique comme htmlentities ?

A+ (on y es presque^^) :wink:
Oui, ça s'applique pareil, mais ça sert à récupérer une valeur entière d'une variable

234 donnera 234
34.788 donnera 34
et
Code:
' WHERE 1=1;DROP TABLE commentaires
donnera 0. (au lieu de pirater ton script et d'effacer toute ta table commentaires :roll: )
 

Patrice A.

WRInaute passionné
Jojo. a dit:
Je débute oui...

Mais j'ai jamais aimé les bollean (vrai faux) j'aime pas trop sa car je comprend pas trop leur fonctionnement !

Donc je préfère garder ma technique, les conditons c'est beaucoup plus simple à utiliser !

A+ :D
Je te conseille l'excellent Site du zéro
Avec leur cours PHP, tu deviendras en seulement quelques heures un bon programmeur dans ce langage.
C'est sur ce site que j'ai appris à me servir de PHP, donc tu peux aisément devenir "presque aussi bon" que moi rien qu'en t'aidant de leur tutoriel, simple, concis et très abondamment commenté. :wink:
 

Jojo.

WRInaute discret
Salut,

J'ai tout appris sur le Site du zer0 justement :D

Mais je ne c'est pas pourquoi j'aime pas les bolein (donc je les utilises pas trop !)

Donc bon revenons à nos moutons :lol:
Avec la fonction intval sa donne sa (juste le début je ferais la suite près :))
Code:
<?
						$id_news = $_GET['commentaires']; 
						$pseudo = htmlentities(intval($_POST['pseudo']));
						$pseudo = addslashes($_POST['pseudo']);
						$mail = htmlentities(intval($_POST['mail']));
						$mail = addslashes($_POST['mail']);
						$message = htmlentities(intval($_POST['message']));
						$message = addslashes(nl2br($_POST['message'])); ?>

Jusque la c'est bon (et si c'est bon je finirai mon code, en éspèrant qu'il soit bon^^)

A+ :D
 

Patrice A.

WRInaute passionné
Ah non mais là tu le fais exprès.
Relis ce sujet depuis le début.
Je refuse d'aider davantage si tu ne fais pas un minimum d'effort pour comprendre à quoi sert intval et où l'utiliser... :roll:
 

Jojo.

WRInaute discret
Arf oui désoler :cry:

Code:
<?
						$id_news = intval($_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'])); ?>

Sa va mieux comme sa :lol:
 

Jojo.

WRInaute discret
Ok, vu que c'est mon dernier crédit, je vais poser l'ultime questions :lol:

Donne moi le code à mettre :D

Car la franchement je ne vois pas (je sais je suis bête...)

Si on veut valider le formulaire....
{
Si l'e-mail est valide...
{
Si les champs sont remplit..
{
On insert tout le bazar
}
Sinon 'on l'enguele et à la fin on affiche les commentaires !

C'est bien ce que j'ai fais, mais sa marche pas ...

A+ :wink:
 

Jojo.

WRInaute discret
Désoler de répondre que maintenant :oops:

Voiçi mon code (aller on y est presque...):
Code:
<?
						$id_news = intval($_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 (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email est valide !
                          {
						   if (isset($pseudo) && isset($mail) && isset($message)) // Si tout les champs sont bien remplis
						    {
						   $toutesok == true; 
						  mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')"); 
						echo '<h3>Votre message a bien été posté ! <a href="http://www.duel-monster.org">Cliquez ici pour retrourner à la page d\'accueil du site</a></h3>'; 
						}
						else //L'e-mail est pas valide
						{
                        echo '<h2>Erreur !</h2> <br />
						<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
						$toutesok = false;
						 }
						}
						else // C'est que tout les champs sont pas remplis
						 {
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						}
						 }
						else // C'est que l'on ne veux pas envoyer le formulaire 
						{
						// On récupère les infos de la correspondante
                        $retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") 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; 


						 }
						}
						if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)
						{ 
						echo 'Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger'; 
						}
						?>

Voila !
Tu vois l'érreur ?

A+ :D
 

Pulsar-san

WRInaute discret
Une chose sans rapport avec ton problème, remplace
Code:
<?
par
Code:
<?php
ce qui va spécifier que ton code doit être interprété comme étant du PHP.
Le jour où tu installes ton programme sur un serveur correctement configuré c'est ton code qui apparaitra et non ce qu'il est sensé présenter.
php.ini a dit:
; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = Off
 

correiaj

WRInaute impliqué
Personnellement je trouve ta façon de coder très bâclée...

Premièrement on met des commentaires, surtout sur les requêtes SQL
Sinon, personne y comprend rien, même toi dans quelqus mois... Et surtout quand on est au stade développement, on affiche les erreur mySQL...

Ensuite une structure:
fonction {
fonction {
fonction {
}
}
}

etc...

Et puis pour simplifier, surtout sur des fonctions qui te reserviront, fais des includes, c´est plus joli et plus pratique.
ensuite, quand c´est possible, utilise des switch au lieu des elseif elseif....

Enfin, quand tu auras fait tout ça, tu saura d´où vient ton problème, car tu te repèrera dans ton code...
 

Jojo.

WRInaute discret
Ma façon de coder baclé ?

Arrêter de critiquer, chacun sa façon de coder, je trouve mon code clair, donc du moment que je le comprend c'est le principal :wink:
 

correiaj

WRInaute impliqué
Oui, mais tu ne le trouveras pas clair dans quelques temps (un an...) et pour ceux qui t´aident, c´est encore moins évident:
Tu es obligé de filer 70 lignes de code pour dénicher un bug...
 

Jojo.

WRInaute discret
Sa ne me dérange pas, mais bon sans passer sur un fénéant, vu que je suis débutant, j'ai mis pas mal de temps à faire ce script, donc je ne veux pas refaire tout mon code, juste trouver l'érreur et que sa marche enfin !

Désoler si vous ne vous y retrouver pas :cry:
 

Patrice A.

WRInaute passionné
Mais c'est quoi le problème, actuellement ? t'as toujours des erreurs ?

Et de
  1. je vois que tu ne respectes pas mes commentaires, une fois de plus, et ça commence à me lasser parce que je n'aime pas me répéter. Tes ELSE ne correspondent pas aux bons IF !!!!!!! Quand tu écris
    Code:
    Si e-mail valide alors...
    Sinon
    eh bien le Sinon, c'est "e-mail non valide" :roll:
  2. A part ça,
    Code:
                      if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)
    Ca ne veut rien dire. Pour vérifier si tout vaut "NULL" on écrit
    Code:
    si ((truc 1 vaut null) et (truc 2 vaut null))
    et non pas
    Code:
    si (truc 1 et truc 2 et truc 3) valent null
    parce que (truc 1 et truc 2) c'est un booléen, qui vaut vrai au faux, pas autre chose.
 

correiaj

WRInaute impliqué
bon, déjà dans ton INSERT INTO, mais la version pro, c´est mieux:

INSERT INTO table(les champs à entrer) VALUES(les valeurs)...

Ensuite, essaie de tester cette requête toute seule,
Ensuite, tu remonte au fur et à mesure (tu inclus au fur et a mesure les fonctions), jusuqu´à celle qui ne marche pas...

ça s´appelle debuger....
 

Jojo.

WRInaute discret
Salut, bon je vais éssayé d'être clair !
Dans mon code je fais:
Si le formulaire est envoyer, si l'e-mail est valide & que on a remplit tout les champs, on enregistre, sinon le formulaire n'est pas envoyer (on affiche les commentaires), sinon le-mail n'est pas valide, on l'enguele, sinon les champs ne sont pas tous remplis, et on l'enguele !

Voila ce que je veux faire !
Sinon:
Code:
   if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)

Ce que je veux dire par là, Si aucun commentaire n'a été enregistré on dis que sa va être le premier à le faire "Aucun commentaire n'a été posté sur cette news, soyez le 1er à le faire !"


Code:
si ((truc 1 vaut null) et (truc 2 vaut null))

J'avais éssayé mais sa ne marchait pas !

A+ :)
 

Patrice A.

WRInaute passionné
Jojo. a dit:
Salut, bon je vais éssayé d'être clair !
Dans mon code je fais:
Si le formulaire est envoyer, si l'e-mail est valide & que on a remplit tout les champs, on enregistre, sinon le formulaire n'est pas envoyer (on affiche les commentaires), sinon le-mail n'est pas valide, on l'enguele, sinon les champs ne sont pas tous remplis, et on l'enguele !
Mais t'as rien compris au fonctionnement de IF et ELSE ?
Chaque ELSE Correspond au IF que tu VIENS de fermer.
Regarde bien l'ordre de tes trucs (fais des indentations pour mieux voir)
Code:
SI TRUC 1 ALORS
                 SI TRUC 2 ALORS
                        ...
                  SINON (c'est-à-dire pas TRUC 2)
                 FINSI
SINON (c'est à dire non truc 1)
FINSI

Sinon:
Code:
   if (($donnees2['message'] && $donnees2['timestamp'] && $donnees2['pseudo'] && $donnees2['mail']) == NULL)

Ce que je veux dire par là, Si aucun commentaire n'a été enregistré on dis que sa va être le premier à le faire "Aucun commentaire n'a été posté sur cette news, soyez le 1er à le faire !"
Ce que tu veux dire par là je l'ai très bien compris. Mais on s'en fout :!:
Ce qui compte c'est ce que comprend PHP.
Et je t'ai déjà dit comment ça s'écrit.

D'ailleurs s'il n'y a pas de commentaires, alors $donnees2 vaut NULL, un point c'est tout, pas besoin de tester tout le contenu.
 

Jojo.

WRInaute discret
Salut,

Désoler je veux pas passer pour un *** mais la je pige plus grand chose :?

Pourrais tu me donner le code à mettre car la je s'en que tu va encore m'engueler longtemps si on continue comme sa^^
 

Patrice A.

WRInaute passionné
Je t'engueule pas...

Regarde tes if et tes else... les else ne sont pas dans le bon ordre.
et pour ton test final, if($donnees2 == NULL) devrait suffire
 

Jojo.

WRInaute discret
Salut, donc j'ai regarder un peu tout sa !

Voiçi mon nouveau code maintenant, je te prévient déja, il marche pas... mais dis moi si je suis dans la bonne vois ou pas^^:
Code:
<?
						$id_news = intval($_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 (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email est valide !
                          {
						   if (isset($pseudo) && isset($mail) && isset($message)) // Si tout les champs sont bien remplis
						    {
						   $toutesok == true; 
						  mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')"); 
						echo '<h3>Votre message a bien été posté ! <a href="http://www.duel-monster.org">Cliquez ici pour retrourner à la page d\'accueil du site</a></h3>'; 
						}
						else // C'est que l'on ne veux pas envoyer le formulaire 
						{
						// On récupère les infos de la correspondante
                        $retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") 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; 
 }
else //L'e-mail est pas valide
						{
                        echo '<h2>Erreur !</h2> <br />
						<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
						$toutesok = false;
						 }
						}
						else // C'est que tout les champs sont pas remplis
						 {
						echo '<h2>Erreur !</h2> <br />
						<h3>Vous n\'avez pas remplit tous les champs !</h3>';
						$toutesok = false;
						}
						 }
						}
						if ($donnees2['message'] == NULL && $donnees2['timestamp'] == NULL && $donnees2['pseudo'] == NULL && $donnees2['mail'] == NULL)
						{ 
						echo '<strong>Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger</strong>'; 
						}
						?>

Il me dis qu'il y a une erreur:
Parse error: parse error, unexpected T_ELSE in /home/duel/www/commentaires.php on line 329

Et la ligne 329 c'est mon else qui dis: Si l'e-mail est pas valide !
Tu voies où est l'érreur ?

A+ :D
 

correiaj

WRInaute impliqué
Après reflexion non,
mais parc ontre je ne vois d´où vient le else?
Et apparement, php non plus...
et regarde si tu suit mes conseils, ça saute aux yeux...
essaye avec ça: (et c´est pas corrigé, j´ai même pas regardé les fautes de code, juste la syntaxe)
<?
$id_news = intval($_GET['commentaires']);
$pseudo = addslashes(htmlentities($_POST['pseudo']));
$mail = addslashes(htmlentities($_POST['mail']));

$message = addslashes(n12br(htmlentities($_POST['message'])));


if (isset($_POST['Submit'])) // Si on veut envoyer le formulaire.
{
if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) // Si l'email est valide !
{
if (isset($pseudo) && isset($mail) && isset($message)) // Si tout les champs sont bien remplis
{
$toutesok == true;
mysql_query("INSERT INTO commentaires VALUES('', '".$id_news."', '".$message."', '" . time() . "', '".$pseudo."', '".$mail."')");
echo '<h3>Votre message a bien été posté ! <a href="http://www.duel-monster.org">Cliquez ici pour retrourner à la page d\'accueil du site</a></h3>';
}
else // C'est que l'on ne veux pas envoyer le formulaire
{
// On récupère les infos de la correspondante
$retour2 = mysql_query("SELECT * FROM commentaires WHERE id_news='$id_news'") 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\]!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;

} // ferme le while

} //ferme le else ligne 19

} //ferme le if ligne 11

else //L'e-mail est pas valide
{
echo '<h2>Erreur !</h2> <br />
<h3>L\'adresse e-mail (' . $mail . ') n\'est pas valide, recommencez !</h3>';
$toutesok = false;
}
} //ferme le if ligne 9
else // C'est que tout les champs sont pas remplis
{
echo '<h2>Erreur !</h2> <br />
<h3>Vous n\'avez pas remplit tous les champs !</h3>';
$toutesok = false;
}


if ($donnees2['message'] == NULL && $donnees2['timestamp'] == NULL && $donnees2['pseudo'] == NULL && $donnees2['mail'] == NULL)
{
echo '<strong>Aucun commentaire n\'a été posté sur cette news, soyez le premier à en rediger</strong>';
}
?>

(.+)\
 

Patrice A.

WRInaute passionné
:cry:

Révise le cours sur les IF et les ELSE s'il te plaît...


je répète encore une fois
voilà ce qu'il faut faire
Code:
SI TRUC 1 ALORS 
                 SI TRUC 2 ALORS 
                        ... 
                  SINON (c'est-à-dire pas TRUC 2) 
                 FINSI 
SINON (c'est à dire non truc 1) 
FINSI
et non pas
Code:
SI TRUC 1 ALORS 
                 SI TRUC 2 ALORS 
                        ... 
                  SINON (c'est-à-dire pas TRUC 1 
                 FINSI 
SINON (c'est à dire non truc 2 
FINSI
qui n'a pas de sens
 

Discussions similaires

Haut