IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PB avec des BR dans un textarea


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut PB avec des BR dans un textarea
    Bonjour mon intitulé parait peut être simple mais je ne savais pas comment expliquer rapidement mon problème qui est plus complexe que ça.
    En fait j'ai un formulaire d'ajout dans ma base de données.Pour cela j'ai utilisé des textarea comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea cols=\"46\" rows=\"3\" name=\"trav_pre\" size=\"60%\"></textarea>
    Le problème c'est que lorsque je tape mon texte en faisant des "Entrer" pour passer à la ligne dans mon cadre, le <br> s'ajoute automatiquement dans la base ça c 'est bien mais lorsque j'affiche ma page qui me permet de faire une modification du texte que j'ai déjà tapé et que je veux mettre à jour il m'affiche le <br> en texte brut et m'en rajoute un deuxième derrière!! Je sais pas si je me fais bien comprendre. En fait je souhaiterai qu'il ne m'affiche pas mon <br>. Si quelqu'un pouvait m'aider.
    Je vous remercie. Bonne journée à vous.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Je pense que tout simplement, tu ne devrais pas enregistrer les BR dans la base (ni toute autre conversion d'ailleurs) mais plutot l'enregistrer en brut texte.
    Ensuite quand tu veux les afficher, tu peux décider d'ajouter la mise en forme (notamment à l'aide de la fonction nl2br() qui permet de transformer les sauts de ligne en br automatiquement).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut re:
    C est ce que j'ai fait voici le code avant insertion dans la base de donnéees:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $trav_pre = htmlentities($_POST['trav_pre'], ENT_QUOTES);
    $trav_pre= nl2br($trav_pre);
    Le <br> je ne le tape pas à la main quand j'appuie sur entrer dans mon champs de saisie il se rajoute automatiquement mais lorsque je fais l'affichage dans ma page de mise à jour dont voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea cols=\"20\" rows=\"3\" name=\"trav_pre\" size=\"60%\">$result[Travaux_prevoir]</textarea>
    Et bien cela m'affiche:
    test test<br />
    test<br />
    test
    Et je souhaiterai qu'ils ne s'affichent pas. De plus si je reclique sur mise à jour alors que je n'ai pas modifié ce champs mais un autre il me rajoute encore les <br>!! A chaque MAJ il me les rajoute!
    Merci pour ton aide.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Justement non, tu fais des modifications avant insertion dans la bdd !!

    Lorsque tu fais celà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $trav_pre = htmlentities($_POST['trav_pre'], ENT_QUOTES);
    $trav_pre= nl2br($trav_pre);
    Tu encodes ta chaine en entités HTML puis tu remplaces les sauts de ligne par des BR !
    Or, cette étape doit etre faite lorsque tu fais un affichage de ce champ dans une page mais pas pour enregistrer en bdd.

    Pour résumé, la marche à suivre est la suivante.

    Pour insérer en bdd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $champ_texte=$_POST['trav_pre'];
    $requete="insert into xxxx ('champ_texte') values ('".mysql_real_escape_string($champ_texte)."')";
    Ensuite, pour réafficher dans un textarea le champ contenu en bdd:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $champ_texte=$ressource_sql['champ_texte'];
    echo '<textarea>'.$champ_texte.'</textarea>';
    Pour afficher dans une page web directement (pas dans un textarea donc mais dans le flux html classique.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $champ_texte=nl2br(htmlentities($ressource_sql['champ_texte'],ENT_QUOTES));
    echo $champ_texte;
    En somme, lorsque tu insères en bdd, tu n'as pas besoin d'encoder ta chaine, il faut l'enregistrer telle quelle (il faut simplement échapper les caractères sensibles au niveau de la sécurité de la requête).
    Lorsque tu veux ensuite afficher ce champ dans un textarea, tu le récupères dans la bdd et tu l'affiches sans rien d'autres.
    Et lorsque tu veux l'afficher dans une page web, en affichant les sauts de lignes etc, tu lui passes un htmlentities et un nl2br.

Discussions similaires

  1. JTable avec des JPanel dans les cellule
    Par pigpen dans le forum Composants
    Réponses: 11
    Dernier message: 13/04/2006, 19h58
  2. Liaison avec des images dans une table
    Par ValérieBruxelles dans le forum Access
    Réponses: 5
    Dernier message: 25/11/2005, 14h21
  3. Prbleme de liaison avec des doublons dans le fichier lié.
    Par krak70 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/10/2005, 11h03
  4. [VB.NET] Requete avec des dates dans un DataSet
    Par leSeb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/10/2005, 14h30
  5. Réponses: 9
    Dernier message: 25/09/2005, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo