TextArea formatage,stockage et rendu

Résolu
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007 - 1 déc. 2004 à 15:14
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 13 déc. 2004 à 19:07
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

winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
4 déc. 2004 à 01:50
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
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2004 à 16:34
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);
}
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
1 déc. 2004 à 16:50
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2004 à 17:33
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
1 déc. 2004 à 17:41
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.
0
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
2 déc. 2004 à 13:30
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
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
3 déc. 2004 à 09:30
merci War,

J'y voit un peu plus clair.

Je vais essayer de m'orienter dans cette direction

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

win
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 déc. 2004 à 20:16
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...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 déc. 2004 à 12:28
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...
0
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
4 déc. 2004 à 12:32
ben non je l'ai fait aussi ... ça fonctionne bien :)

win
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 déc. 2004 à 19:07
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
0
Rejoignez-nous