|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Étudiant Inscription : février 2011 Messages : 15 ![]() |
Hello,
voici mon problème: Je récupère du texte d'un textarea que je traite avec mysql_real_escape_string avant de le rentrer dans ma BDD. Ensuite, je veux l'afficher. Je traite les données brut venues de la BDD avec stripslashes, puis htmlentities puis nl2br. Sauf que je n'ai aucun retour à la ligne (aucun br) ! Dans ma bdd, je vois des \n\r, mais ils ne sont pas remplacés. J'ai testé dans tous les sens, enlever le stripslashes etc etc pour voir si ça fonctionne, mais même pas. Du coup j'ai trouvé ça: http://www.developpez.net/forums/d65...ne-fonctionne/ Mais ça m'embête la solution avec la fonction eval. Je voudrais bien savoir pourquoi en sorti de bdd, ma fonction nl2br ne fonctionne pas alors que si je fais un test avec une chaine toute bête ça fonctionne. Merci ! |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Bonjour,
utilises la fonction nl2br avant de rentrer les informations en base. Ex : Code :
$message = mysql_real_escape_string(nl2br($_POST['message'])); |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Étudiant Inscription : février 2011 Messages : 15 ![]() |
Salut,
merci, j'y ai pensé mais je voudrais garder mon texte brut, tel qu'il est. Donc éviter de modifier quoi que ce soit avant de le mettre dans ma bdd. |
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Salut
Il faut juste éviter de mélanger les choses. Exemple : Code :
Code :
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||||
|
|
10
|
|
|
#5 | ||
|
Invité régulier
![]() Étudiant Inscription : février 2011 Messages : 15 ![]() |
Hello,
c'est exactement ce que je fais, mais le nl2br n'est pas pris en compte et mon message_html ne comporte aucun <br />... edit: j'ai trouvé une solution en utilisant un str_replace: Code :
|
||
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Ou alors le mal est déjà fait, la donnée dans la Bdd est mal insérée. Tu disais aussi que tu appliquais un stripslashes(), or, il y a pas lieu de faire ça. Le seul cas où cela est nécessaire, c'est si la directive dans le php.ini magic_quotes_gpc est à On, ou qu'on aurait appliqué un addslashes() avant. Fait des essais avec une donnée correctement insérée avec des sauts de lignes, quitte à le faire directement/manuellement dans la Bdd (PhpMyAdmin par exemple). Faut éviter le piège en somme. Au passage, où est-ce que tu applique ce nl2br dans la partie HTML ? Donne le code qu'on voit.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Ca ne résout pas le problème, dans le meilleur des cas ça le contourne.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Étudiant Inscription : février 2011 Messages : 15 ![]() |
Je suis un noob
Je vous explique ma connerie ... j'utilise une class mysql pour faire mes requêtes sql. En je viens de voir que le mysql_real_escape_string est déjà utilisé lors d'un insert. Et comme moi je l'utilisais aussi, ça fait qu'il était utilisé 2 fois. D'où les problèmes de slashes et de \r\n. En corrigeant, ça marche forcément ... ^^ du coup pour insérer dans ma BDD, je rentre directement sans refaire un mysql_real_escape_string Et pour l'affichage Code :
$string = nl2br(htmlentities($string)); |
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Cette fois je suis d'accord, là c'est réparé.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com