TextArea formatage,stockage et rendu [Résolu]

Signaler
Messages postés
53
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
11 janvier 2007
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonjour,

Dans un de mes formulaires, je souhaiterais utiliser une textArea ou quelque chose dans le genre pour pouvoir donner la possibilité d'entrer des commentaires avec formatage genre retour à la ligne.

Le contenu de cette textarea est ensuite stockée dans une base de donnée MySQL.

Lorsque je veux rendre ce commentaire, je me connecte à la base de données mysql mais à l'affichage, les retours à la ligne ont disparu.

Comment faire pour éviter ce problème. Quel est la marche à suivre pour que les commentaires soit stocké correctement et rendu correctement.

Merci d'avance

K

13 réponses

Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
J'ai pas dit que ton code était faux, je pense simplement que tu te compliques la vie pour rien :)
ton code:
function htmlise($var){
$var = str_replace("<", "<", $var);
$var = str_replace(">", "égt", $var);
$var=enleveguillemets($var);
$var = ereg_replace("[\]", "", $var);
$var=nl2br($var);
return($var);
} 

le mien:
htmlentities($var)
(tu peux imbriquer un nl2br() si ça te chante :))

win
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut perso j'ai fait deux fonctions :
tu utilises htmlise lorsque tu récupères ta variable, et tu utilises enleveguillements avant de réenregistrer une variable...

function enleveguillemets($var){
$gui='"';
$var = str_replace("'", "'.$gui'$gui.'", $var);
return($var);
}
function htmlise($var){
$var = str_replace("<", "<", $var);
$var = str_replace(">", "égt", $var);
$var=enleveguillemets($var);
$var = ereg_replace("[\]", "", $var);
$var=nl2br($var);
return($var);
}
Messages postés
53
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
11 janvier 2007

Salut

Merci de m'avoir répondu aussi rapidement.

Je ne suis pas sûr d'avoir tout compris. peux-tu m'expliquer un peu mieux tes fonctions.

Que vont faire ces fonctions exactemement?

Je suppose que je dois les appliquer avant d'enregistrer le commentaire dans la base de donnée mais pour la restitution je dois faire comment?

Merci
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
en fait il y a une des deux fonction qui permetras de transformer les < en < et > par > (je crois avoir fait quelques erreurs ici...)

et en fait celle qui enlève les guillements ne sert a rien pour du mysql je crois... c'est pour avoir en fait une bdd avec un fichier php ou c'est utile...
Messages postés
53
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
11 janvier 2007

Au fait le fonctionnement que tu me proposes est le suivant:

- récupération du contenu de la textArea
- Transformation du contenu en html
- stockage dans la Bdd
- récupération des données de la Bdd
- affichage du code html avec le contenu

Je suis désolé mais je pige toujours pas comment tu peux récupérer le contenu de la textArea et la transformer en HTML tout en respectant les saut de ligne et les retour.
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
utilise nl2br() pour afficher les espaces (
)
et sinon htmlentities() suffit pour transformer les < et > (hein coucou747) en html (ça évite les failles de type CSS/XSS)

win
Messages postés
53
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
11 janvier 2007

merci War,

J'y voit un peu plus clair.

Je vais essayer de m'orienter dans cette direction

A+
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
ça évite les failles de type CSS/XSS => de quoi parles tu ?
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
D'injecter du html/javascript dans une page web

win
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
tu sais si j'enlèves les < et les > il aura un peu de mal a le faire......
le html sera immédiatement affiché en code source et le js aussi...
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
ah bah meerci du conseil.
Je ne sais pas si ta solution m'aidera vraiment car j'ai une option smiley sur mon site ^^ et une option === +++ ___ pour des codes de changements de forme de texte...
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
ben non je l'ai fait aussi ... ça fonctionne bien :)

win
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
tu fais pas réponse accèptée ??
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org