Str_replace

Résolu/Fermé
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 - 26 nov. 2008 à 15:07
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 - 26 nov. 2008 à 16:48
Bonjour,
En PHP, dans un script de commentaires, il y a ce code quand l'utilisateur valide le formulaire :
$date = date('d/m/Y\- H\:i');
	$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
	$commentaire = mysql_real_escape_string(htmlspecialchars($_POST['commentaire']));
	$commentaire = '<pre>'.$commentaire.'</pre>';
	$commentaire = str_replace(';)' ,'<img src="images/clin-d\'oeil.gif" />', $commentaire);
	$note = $_POST['note'] ;
	
	
	mysql_query("INSERT INTO commentaires VALUES('$date', '$page', '$pseudo', '$note', '$commentaire')");

Mais au lieu de remplacer, quand on entre ;) , par <img src="images/clin-d\'oeil.gif,
il entre directement ;) dans la bdd.
Pourquoi ??
merci, j'en ai besoin.

2 réponses

Bonjour

As-tu fait un echo $commentaire juste avant ta requête pour vérifier si le str_replace avait fait sa substitution ou non ?
Et as-tu vérifié que ta requête se passait bien an ajoutant or die (mysql_error) ?
Car je suis prêt à parier que si la substitution fonctionne, la requête ne marchera pas, car tu as un champ qui contient un ' et tu ne fais pas de mysql_real_escape_string dessus.
0
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 459
26 nov. 2008 à 16:48
en fait j'ai regardé et ça marche avec ce code :
$date = date('d/m/Y\- H\:i');
	$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
	$commentaire = str_replace(';)' ,'<b>', $commentaire);
	$commentaire = mysql_real_escape_string($_POST['commentaire']);
	$commentaire = str_replace(';)' ,'<img src="images/clin-oeil.gif" />', $commentaire);
	$commentaire = str_replace(':)' ,'<img src="images/grand-sourire.gif" />', $commentaire);
	$commentaire = str_replace(':!:' ,'<img src="images/exclamation.gif" />', $commentaire);
	$commentaire = str_replace(':=>:' ,'<img src="images/fleche.gif" />', $commentaire);
	$commentaire = str_replace(':énervé:' ,'<img src="images/enerver.gif" />', $commentaire);
	$commentaire = str_replace(':étonné:' ,'<img src="images/etoner.gif" />', $commentaire);
	$commentaire = str_replace(':cool:' ,'<img src="images/cool.gif" />', $commentaire);
	$commentaire = str_replace(':diable:' ,'<img src="images/diable.gif" />', $commentaire);


	$commentaire = '<pre> '.$commentaire.'</pre> ';
	
	$note = $_POST['note'] ;
	
	
	mysql_query("INSERT INTO commentaires VALUES('$date', '$page', '$pseudo', '$note', '$commentaire')");
	echo'Votre commentaire a bien été ajouté.<br><br><center><a href="xhtml.php#coms2">Retour</a></center><br><br><br><br><br><br><br><br><br>';

Merci de ta réponse
0