Pb balises 'br' et '\' insertion BDD php
Résolu/Fermé
ReMs3007
Messages postés
7
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
19 février 2009
-
16 févr. 2009 à 09:14
ReMs3007 Messages postés 7 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 19 février 2009 - 18 févr. 2009 à 11:50
ReMs3007 Messages postés 7 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 19 février 2009 - 18 févr. 2009 à 11:50
A voir également:
- Php <br />
- Easy php - Télécharger - Divers Web & Internet
- <Br/> ✓ - Forum HTML
- Balise br ✓ - Forum CSS
- Br html - Forum CSS
- Retour a la ligne php ✓ - Forum PHP
4 réponses
Bonjour
tu as 2 problèmes distincts.
D'abord, les balise <br>, c'est toi qui les ajoute à l'affichage avec le fonction nl2br. Elle convient pour afficher du HTML, pas le text d'un TEXTAREA. Enlève cette fonction.
Ensuite les \ avant les apostrophes. Puisque tu utilises correctement mysql_escape_string pour enregistrer tes valeurs, c'est qu'il doivent réellement être dans $_POST. Et s'ils sont dans $_POST, c'est probablement que dans ta configuration tu as magic_quotes_gpc actif. Pour récupérer correctement une valeur de POST (ou GET ou COOKIE) dans tous les cas, il faut utiliser ou non un stripslashes selon la valeur de magic_quotes_gpc. Personnellement, j'utilise une fonction pour ça :
function RecupChaine($chaine) {
if (get_magic_quotes_gpc()==1) return stripslashes($chaine); // il y avait magic
return $chaine; // il n'y avait pas magic
}
Dans ma requête pour enregistrer, je mets mysql_real_escape(RecupChaine($_POST['champ']))
Note que les textes déjà entrés dans la base peuvent être corrigés en les relisant, en faisant un stripslashes puis un update
tu as 2 problèmes distincts.
D'abord, les balise <br>, c'est toi qui les ajoute à l'affichage avec le fonction nl2br. Elle convient pour afficher du HTML, pas le text d'un TEXTAREA. Enlève cette fonction.
Ensuite les \ avant les apostrophes. Puisque tu utilises correctement mysql_escape_string pour enregistrer tes valeurs, c'est qu'il doivent réellement être dans $_POST. Et s'ils sont dans $_POST, c'est probablement que dans ta configuration tu as magic_quotes_gpc actif. Pour récupérer correctement une valeur de POST (ou GET ou COOKIE) dans tous les cas, il faut utiliser ou non un stripslashes selon la valeur de magic_quotes_gpc. Personnellement, j'utilise une fonction pour ça :
function RecupChaine($chaine) {
if (get_magic_quotes_gpc()==1) return stripslashes($chaine); // il y avait magic
return $chaine; // il n'y avait pas magic
}
Dans ma requête pour enregistrer, je mets mysql_real_escape(RecupChaine($_POST['champ']))
Note que les textes déjà entrés dans la base peuvent être corrigés en les relisant, en faisant un stripslashes puis un update
ReMs3007
Messages postés
7
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
19 février 2009
1
18 févr. 2009 à 11:50
18 févr. 2009 à 11:50
C'est Ok çà marche ;)
Merci
voilà, il manquait String ;)
mysql_real_escape_string(RecupChaine($_POST['titre']));
Merci
voilà, il manquait String ;)
mysql_real_escape_string(RecupChaine($_POST['titre']));
974_Vin's_974
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
16 févr. 2009 à 10:03
16 févr. 2009 à 10:03
C lorsque tu fais la requete UPDATE qu'il insert les br et / ????
ReMs3007
Messages postés
7
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
19 février 2009
1
16 févr. 2009 à 13:11
16 févr. 2009 à 13:11
oui c'est lors de l'update qu'il les rajoute.
J'ai remplacé nl2br par
echo str_replace("<br>","\n",('<textarea name="text" id="text" cols="100" rows="10" width="300" >'.$data['texte_accueil'].'</textarea>'));
Maintenant les br ne s'affiche plus mais il y a toujours le problème des ' qui se voit rajouté un \ devant eux :s
J'ai remplacé nl2br par
echo str_replace("<br>","\n",('<textarea name="text" id="text" cols="100" rows="10" width="300" >'.$data['texte_accueil'].'</textarea>'));
Maintenant les br ne s'affiche plus mais il y a toujours le problème des ' qui se voit rajouté un \ devant eux :s
18 févr. 2009 à 09:42
Cependant, il n'accepte pas le nom de ma fonction lors de l'appel :s
Fatal error: Call to undefined function mysql_real_escape()
Une idée?