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 :

Insertion de données issues d'un textarea dans mysql


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 6
    Points
    6
    Par défaut Insertion de données issues d'un textarea dans mysql
    Bonjour,
    Depuis quelques jours je regarde comment utiliser un éditeur wysiwyg pour ajouter quelques fonctionnalités à mon forum.
    J'ai pour l'instant opté pour ckeditor, les premiers tests sont concluants mais je suis confronté à un petit problème car ckeditor ajoute tout un tas de balises et notamment </br> pour les sauts de ligne. Ce qui n'est pas le cas dans les enregistrements actuellement stockés dans la bdd (j'utilise donc la fonction nl2br pour l'affichage)

    Je me demandais donc qu'elles étaient les bonnes pratiques lors de l'enregistrement dans une base de données, est-il préférable de garder les balises (ce qui semble d'ailleurs indispensable pour les tableaux qui peuvent être créés en utilisant ckeditor) ou faut-il utiliser pour supprimer ces balises (type </br> avant l'insertion dans la bdd ?

    Et dernière question, si il s'avère préférable de conserver les balises HTML comment fait-on pour les enregistrements actuels car je n'utiliserai plus la fonction nl2br sous peine d'avoir des doubles saut de ligne.

    Je ne sais pas si j'ai été très clair mais je reste à disposition pour un complément d'information

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Tu peux aussi reprendre les données existantes afin de repartir avec ton éditeur de texte. Tu fais une moulinette qui update tes textes avec nl2br.

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 6
    Points
    6
    Par défaut
    C'est une solution, mais plus généralement je me demandais ce qui était conseillé de faire avant injection dans la bdd car voilà un petit exemple du code généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <strong>Gras</strong><br />
    <span style="color: #ff0000">Couleur<br />
    <a href="http://www.google.com">http://www.google.com</a></span><br />
    <table border="1" cellpadding="1" cellspacing="1" style="width: 500px">
    	<tbody>
    		<tr>
    			<td>
    				colonne 1</td>
    			<td>
    				Colonne 2</td>
    		</tr>
    		<tr>
    			<td>
    				valeur 1</td>
    			<td>
    				valeur 2</td>
    		</tr>
    	</tbody>
    </table>

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    il n'est jamais bon de traîner des balises HTML dans la base de données, c'est une source de problèmes sans fin : fais toi une fonction br2nl()

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 6
    Points
    6
    Par défaut
    Merci pour ton retour
    Tu me suggères donc de supprimer toutes les balises HTML (<BR>, <TABLE>, <TR> <STRONG> ......) ?

    Y-a-t-il des personnes qui utilisent des éditeurs du style ckeditor ? quelles méthodes adoptez-vous pour l'insertion de ce type de données ?

    merci

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Je me suis mal exprimé : tu ne dois pas supprimer toutes les balises nécessaires aux fonctionnalités d'édition de tes messages (ça serait ballot soit dit en passant), ce que je voulais juste dire c'est qu'il te faut être cohérent.
    Tu ne dois pas mixer les "\n" avec les <br />.

    Entre tout passer au format HTML avant enregistrement ou utiliser des tags personnels qui seront transformés en HTML au rendu, ça se discute.
    Pour des question de maintenabilité et d'évolution, j'opterai personnellement pour la seconde approche. De cette manière tu gardes la main sur les balises de formatage et surtout tu pourras les transformer en ce que tu veux de ton choix assez aisément...

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 6
    Points
    6
    Par défaut
    Merci pour ces précisions, néanmoins certains développeurs semblent dire qu'il est préférable de ne pas mettre les balises <br /> dans la base pour la raison suivante :

    \n\r = 2 caractères invisibles
    <br /> = 6 caractères visibles

    Dans le premier cas, à l'affichage il faudra cependant passer par la fonction nl2br donc je pense que ça se discute.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2014, 16h19
  2. Insertion de données CLOB via un script dans SQL*Plus
    Par Rollmops dans le forum Sql*Plus
    Réponses: 6
    Dernier message: 12/11/2008, 20h57
  3. insertion de donnée saisie par le client dans la base de données du serveur
    Par modafine dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 22/09/2008, 12h46
  4. [FPDF] Mettre des données issues d'une requête dans l'entête
    Par zoom61 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/03/2007, 10h10
  5. insertion des données d'un fichier word dans une base de données
    Par pigeon015 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/02/2007, 09h04

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