dans form.php j'ai un formulaire dans lequel il y a un champ "commentaire" (en "textarea")
quand l'utilisateur envoie le formulaire, on va sur check_form.php, ici, si le formulaire n'est pas valide pour X raisons, on enregistre le commentaire en variable de SESSION ($_SESSION['commentaire']).
et on redirige l'utilisateur sur form.php.
Pour éviter à l'utilisateur de RE-remplir tous les champs du formulaire ceux-ci sont déjà pré-rempli avec ce qu'il venait d'écrire (enregistré dans des variables de SESSION).
Non, la fonction dont il aurait besoin serait br2nl vu qu'il a des <br/> et il veut les transformer en new lines. Mais cette fonction n'existe pas et c'est normal.
Plutôt que de chercher à transformer tes br en nl, tu devrais te poser la question, pourquoi est-ce que tu as des <br/> ? De base lorsque tu reçois les données de ta textarea tu les reçois avec des \n.
Est-ce que tu n'appellerais pas nl2br sur ta donnée avant de la mettre en session ?
tu devrais te poser la question, pourquoi est-ce que tu as des <br/> ? De base lorsque tu reçois les données de ta textarea tu les reçois avec des \n.
Exactement ! Je me suis posé la question en effet... J'en arrive à me dire que c'est parce-que je passe par une variable de SESSION, parce-que dans mon code j'ai UNIQUEMENT :
Rien d'autres ne touche à "$commentaire". Mais je ne fais que supposer...
Tu ne regardes pas au bon endroit. Comme tu l'as remarqué, tu extrais tes données de ta session et celles-ci contiennent des <br/>. C'est donc que l'ajout des <br/> se fait au moment de l'insertion en session.
Peux-tu nous donner le code qui met en session les variables de ton formulaire après le POST ?
Juste pour compléter la réponse, tu peux aussi enlever le htmlentities().
La remarque de Julp un peu plus haut est pertinente, ces fonctions que tu appelles (nl2br et htmlentities) ont une utilité, mais seulement lorsque tu cherches à afficher ce contenu dans une page Web.
Admettons que tu souhaites mettre un message d'erreur à l'utilisateur : "Le commentaire commentaire que vous avez écrit est incorrect" (où bien sûr commentaire contient le message qu'a écrit la personne).
Dans ce cas là :
Les \n ne seront pas interprétés comme des sauts de ligne (c'est pourquoi tu dois utilise nl2br)
Les caractères spéciaux (<, >, &) ne seront pas transformés et cela pose des problèmes de sécurité (c'est pourquoi tu dois utiliser htmlentities() ou htmlspecialchar()
Ces fonctions sont donc utiles à l'affichage. Mais quand tu stockes de l'information (dans une session, dans un fichier ou même dans une BD), elle doit être le plus possible fidèle à celle que l'utilisateur a saisi et la plus pure possible (indépendante d'un langage, donc pas de HTML par exemple).
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli