PHP - Textarea - Retour Chariot - nl2br
Résolu/Fermé
A voir également:
- Php nl2br textarea
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Php if plusieurs conditions ✓ - Forum PHP
- Echo image php ✓ - Forum PHP
- Br php ✓ - Forum PHP
8 réponses
Bonjour
Le problème, c'est que tu enregistres dans ta base un texte différent de celui que l'utilisateur à frappé. Quand tu enregistres nl2br(htmlentities($_POST["description"])), ton texte est altéré. Il faut enregistrer dans ta base mysql_real_escape_string($_POST["description"]) pour avoir le 'vrai' texte dans ta base.
Plus tard, quand tu le récupères dans une variable $texte grâce à une requête, tu peux l'afficher :
. dans un TEXTAREA grâce à htmlentities($texte)
. hors TEXTAREA grâce à un nl2br(htmlentities($texte))
Le problème, c'est que tu enregistres dans ta base un texte différent de celui que l'utilisateur à frappé. Quand tu enregistres nl2br(htmlentities($_POST["description"])), ton texte est altéré. Il faut enregistrer dans ta base mysql_real_escape_string($_POST["description"]) pour avoir le 'vrai' texte dans ta base.
Plus tard, quand tu le récupères dans une variable $texte grâce à une requête, tu peux l'afficher :
. dans un TEXTAREA grâce à htmlentities($texte)
. hors TEXTAREA grâce à un nl2br(htmlentities($texte))
Merci mais, j'ai déja essayé et ca ne change rien ... les <br /> sont toujours là...
Voici mon code :
<textarea name="modifenqqmpar1" wrap="physical" id="champs1" >
<?php
$text = include("../texte/pconnexion/enqqmpar1.txt");
str_replace('<br/>', "\n", $text);
echo $text;
?>
</textarea>
Cela est peut-être du au fait que j'attribue la valeur de ma commande include à ma variable $text ???
Voici mon code :
<textarea name="modifenqqmpar1" wrap="physical" id="champs1" >
<?php
$text = include("../texte/pconnexion/enqqmpar1.txt");
str_replace('<br/>', "\n", $text);
echo $text;
?>
</textarea>
Cela est peut-être du au fait que j'attribue la valeur de ma commande include à ma variable $text ???
Flachy Joe
Messages postés
2103
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
25 sept. 2007 à 18:19
25 sept. 2007 à 18:19
Bien sur !
Include ne renvoi pas le contenu du fichier dans la variable, il est directement interprété et/ou envoyé au navigateur. cf ( https://www.php.net/manual/fr/function.include.php )
Pour récupérer le contenu d'un fichier il faut utiliser file_get_contents ( https://www.php.net/manual/fr/function.file-get-contents.php )
Include ne renvoi pas le contenu du fichier dans la variable, il est directement interprété et/ou envoyé au navigateur. cf ( https://www.php.net/manual/fr/function.include.php )
Pour récupérer le contenu d'un fichier il faut utiliser file_get_contents ( https://www.php.net/manual/fr/function.file-get-contents.php )
il y a aussi des chances que tu vois <br /> affiche mais qu'en réalite ce soit htmlentities("<br />") donc adapte ton str8replace en fonction de ca
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En effet, cela fonctionne avec un simple str_replace('<br />','',$text), mais il faut qu'il soit combiné avec un nl2br(htmlentities($_POST["nom de ton textarea"])) à la réception de la modification. Il te faut donc deux scripts.
exemple :
Modifier.php :
<?
$serveur="";
$bdd_login="";
$bdd_psw="";
$bdd=$bdd_login;
$db = mysql_connect($serveur,$bdd_login,$bdd_psw) or die ("Erreur 1 dans modifier.php :".mysql_error());
mysql_select_db($bdd,$db) or die ("Erreur 2 dans modifier.php :".mysql_error());
if(isset(htmlentities($_POST["description"]))){
$description=nl2br(htmlentities($_POST["description"]));
mysql_query("UPDATE `MaTable` SET `description` = '$description' WHERE pseudo = 'MonPseudo' LIMIT 1 ") or die("Erreur 2 dans modifier.php :".mysql_error());//
}
$req = mysql_query("SELECT * FROM MaTable WHERE pseudo='MonPseudo'") or die(mysql_error());
$contenu = mysql_fetch_array($req);
?>
<html>
<body>
<Form action="" method="post">
<textarea name="description" cols="35" rows="10" id="textarea">
<? print str_replace('<br />','',$contenu["description"]);?>
</textarea>
<input type="button" value="Enregistrer">
</form>
</body>
</html>
<? mysql_close();?>
exemple :
Modifier.php :
<?
$serveur="";
$bdd_login="";
$bdd_psw="";
$bdd=$bdd_login;
$db = mysql_connect($serveur,$bdd_login,$bdd_psw) or die ("Erreur 1 dans modifier.php :".mysql_error());
mysql_select_db($bdd,$db) or die ("Erreur 2 dans modifier.php :".mysql_error());
if(isset(htmlentities($_POST["description"]))){
$description=nl2br(htmlentities($_POST["description"]));
mysql_query("UPDATE `MaTable` SET `description` = '$description' WHERE pseudo = 'MonPseudo' LIMIT 1 ") or die("Erreur 2 dans modifier.php :".mysql_error());//
}
$req = mysql_query("SELECT * FROM MaTable WHERE pseudo='MonPseudo'") or die(mysql_error());
$contenu = mysql_fetch_array($req);
?>
<html>
<body>
<Form action="" method="post">
<textarea name="description" cols="35" rows="10" id="textarea">
<? print str_replace('<br />','',$contenu["description"]);?>
</textarea>
<input type="button" value="Enregistrer">
</form>
</body>
</html>
<? mysql_close();?>
Flachy Joe
Messages postés
2103
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
24 sept. 2007 à 20:28
24 sept. 2007 à 20:28
Salut,
utilise str_replace('<br/>', "\n", $text)
forum spécialisé php : https://codes-sources.commentcamarche.net/
Bonne continuation
utilise str_replace('<br/>', "\n", $text)
forum spécialisé php : https://codes-sources.commentcamarche.net/
Bonne continuation
IL ME SEMBLE DE MEMOIRE QUE LE FICHIERS .txt ne gere pas les retour charriots remplace le par un .php
Utilisateur anonyme
17 juil. 2008 à 20:48
17 juil. 2008 à 20:48
la balise <pre> permet d'effectuer un retour chariot automatique et il ny a donc pas besoin de <br />.
tu place la balise <pre> au début de ta textarea et a la fin et quan un retour a la ligne, un saut de ligne... sera effectuer dans la textarea, il sera effectuer dans le fichier texte quan il aura été écrit dedans.
mai je te conseille, de remplacer ton fichier texte par un fichier php.
tu place la balise <pre> au début de ta textarea et a la fin et quan un retour a la ligne, un saut de ligne... sera effectuer dans la textarea, il sera effectuer dans le fichier texte quan il aura été écrit dedans.
mai je te conseille, de remplacer ton fichier texte par un fichier php.