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 -
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 :
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.
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.
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.
en fait j'ai regardé et ça marche avec ce code :
Merci de ta réponse
$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