Str_replace

Résolu
darkchristophetd Messages postés 1100 Date d'inscription   Statut Contributeur Dernière intervention   -  
darkchristophetd Messages postés 1100 Date d'inscription   Statut Contributeur Dernière intervention   -
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.
Configuration: Windows XP
Firefox 2.0.0.18

2 réponses

  1. toto
     
    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
  2. darkchristophetd Messages postés 1100 Date d'inscription   Statut Contributeur Dernière intervention   459
     
    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