Bonjour,
J'ai beau chercher un peu partout je ne trouve la solution !!
Quand je saisis du texte dans un textarea j'ai bien le texte saisi dans ma bdd mais à l'affichage dans le textarea ça n'affiche pas le texte saisi avec les retours chariot.
Exemple dans la table j'ai le teste saisi :
Bonjour,
Les retours chariot me pausent problème
Dans le textarea après insertion :
Bonjour,\r\nLes retours me pausent problème
voici le code de ma page
if (isset($_POST['textemessage'])) $textemessage = $_POST['textemessage'];
else $textemessage = "";
//enregistrement du message
$objet = mysqli_real_escape_string($con,$_POST['objet']);
$nom = mysqli_real_escape_string($con,$_POST['nom']);
$prenom = mysqli_real_escape_string($con,$_POST['prenom']);
$emetteur = mysqli_real_escape_string($con,$_POST['mail']);
$textemessage = mysqli_real_escape_string($con,$_POST['textemessage']);
//preparation de la requete
$requete = "INSERT INTO messages (id_message, date, heure, nom, prenom, emetteur, objet, texte)
VALUES('','$my_date','$my_time','$nom','$prenom','$emetteur','$objet','$textemessage')";
if (mysqli_query($con, $requete)) {
$message1 = "Merci pour votre message, nous vous répondrons dans les meilleurs délais";
} else {
$message = "Message non enregistré. Merci de vérifier votre saisie";
}
mysqli_close($con);
<textarea name="textemessage" rows="15" style="width:440px; font-size:13px"><?php echo ($textemessage); ?></textarea><br>
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
philippe
J'ai essayé ça :
stripslashes(nl2br(htmlentities(trim($_POST['textemessage']))))
mais ça ne pas non plus!!
Et enfin :
Pourquoi le fais tu sur une variable POST ?
La transformation en <br> devant se faire à l'affichage (quand tu récupères les données de ta BDD) ... pas lors de son insertion dedans...(à moins que tu ne ré-affiches l'info après avoir fait ton submit)
philippe
Bonjour,
Après des heures de recherche voilà où j'en suis.
Pour insérer le message dans la table j'ai donc :
hors textarea (donc écrit directement sur la page) le retour chariot est ok
par contre dans le textarea le retour chariot se fait mais j'ai <br />.
mon textarea est :
stripslashes(nl2br(htmlentities(trim($_POST['textemessage']))))
mais ça ne pas non plus!!
nl2br(stripslashes(htmlentities(trim($_POST['textemessage']))))
stripslashes(nl2br(htmlentities($textemessage)))
tout est bien échappé mais dans mon textarea le retour chariot ne se fait toujours pas !!
Commence donc par faire un ECHO du contenu de ta variable (directement dans ta page sans passer par un textare et regardes quelle forme il a.
Ensuite, et pour éviter tout souci, pense à récupérer le contenu de ta variable AVANT de l'utiliser via un ISSET et l'écriture ternaire;
Comme ceci :
Puis... penses que le nl2br .. tu dois l'appliquer à la variable avant les autres modifications ( htmlentities..stripslashes..etc...)
Et enfin :
Pourquoi le fais tu sur une variable POST ?
La transformation en <br> devant se faire à l'affichage (quand tu récupères les données de ta BDD) ... pas lors de son insertion dedans...(à moins que tu ne ré-affiches l'info après avoir fait ton submit)
Après des heures de recherche voilà où j'en suis.
Pour insérer le message dans la table j'ai donc :
ensuite après l'insertion dans la table et l'affichage dans le textarea j'ai ça :
hors textarea (donc écrit directement sur la page) le retour chariot est ok
par contre dans le textarea le retour chariot se fait mais j'ai <br />.
mon textarea est :
Je ne comprends pas pourquoi le résultat n'est pas le même dans le textarea que hors textarea !!