preg_replace sur mysql_real_escape_string !
Bonjour a tous et a toutes !
voici mon souci :
Je cherche a filtrer les retours a la ligne multiple des visiteurs.
Il s'agit d'un formulaire avec un textaera. rien de bien comlpliqué jusque la.
Le souci est que l'enssemble des variables sont traité par 'mysql_real_escape_string' et a partir du moment ou la varaiable est traité je n'arrive plus a la filtrée :(
voici un script tout pret a etre utilisé afin de mieux comprendre mon souci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
//objectif : supprimer les saut de lignes multiples
//traitement 'mysql_real_escape' de la variable
$test = mysql_real_escape_string($_POST[commentaire]);
$testeur = preg_replace("/(\r\n)+|(\n|\r)+/", "\r\n", $test);// c'est ici le probleme a resoudre
// variable non traité par 'mysql_real_escape'
$string = preg_replace("/(\r\n)+|(\n|\r)+/", "\r\n", $_POST[commentaire]);
echo '<hr/>';
echo 'chaine non filtree <br/>'.nl2br($_POST[commentaire]);// chaine non filtree tous les sauts de lignes sont visibles
echo '<hr/>';
echo 'chaine sans mysql_real_escape filtree<br/>'.nl2br($string); // resultat attendu
echo '<hr/>';
echo'chaine avec mysql_real_escape filtree<br/>'. nl2br($testeur); // cette chaine devrait apparaitre comme celle du dessus Le probleme apparait là
?>
<form action="#" method="post">
<textarea id="commentaire" name="commentaire" >1
2
3</textarea>
<input type="submit" />
</form> |
le code est commenté
comme vous pouvez le voir si je ne traite pas la chaine avec 'mysql_real_escape' alors je n'ai pas de probleme pour filtrée les saut de lignes.
le probleme apparait des que que 'mysql_real_escape' est utilisé hors je n'arrive pas atrouvé la regexp exact qui permettrait de corriger ce probleme