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 :

Sauvegarder du texte (db mysql) CR, single-quote, double-quote, etc [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut Sauvegarder du texte (db mysql) CR, single-quote, double-quote, etc
    Bonjour tout le monde,

    Comment dois-je faire pour sauver (ds une DB mysql) du texte (à partir d'une zone textarea "html") avec les catactères suivants:
    - Enter
    - guillemets
    - quotes
    - etc.

    Ex: ce message (celui-ci comporte plusieurs ENTER, \r\n, etc.)

    Afin que je puisse par la suite afficher le texte convenablement/même forme (et non du style \r\n dans mon texte pour le Enter ).
    De ce fait, je pense que je dois jongler avec les fonctions suivantes:
    - stripslashes
    - addslashes

    Qu'en pensez-vous ?
    si oui avez-vous un exemple?

    Merci d'avance.

    Yves

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Vous faîtes certainement (aussi ?) référence à la fonction nl2br ?

    Par rapport à vos traitements relatifs aux slashs : addslashes est fortement déconseillée en faveur de mysql_real_escape_string pour MySQL (chaque SGBD a sa fonction, ce qui tend à prouver l'inutilité d'addslashes par ailleurs par rapport au SGBD).


    Julp.

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    Bonjour,

    En effet. Toutefois lorqu'il affiche le texte dans ma zone textarea, il fait bien le saut à la ligne (le enter) mais hélas, il affiche la balise <br /> dans ma zone (textarea)!!!

    Voici mon ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <label><b>Description : </b></label> <textarea name="html_doc_desc" rows="7" cols="128"><?PHP echo nl2br( lecture_table ($where_doc_id, 'doc_description')); ?></textarea><br />
    Avez-vous une idée pour retirer la balise tout en faisant le ENTER ?

    Merci.

    Yves

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Fais un str_replace en changeant <br /> par \n et ca devrait fonctionner

  5. #5
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    Merci cela fonctionne correctement !

  6. #6
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    Aîe, quand j'essaie plusieurs valeurs je dois passer par une variable.
    hélas j'ai un souci avec celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $trouve   = array("\", "<br />");
    ...
    <label><b>Description : </b></label> <textarea name="html_doc_desc" rows="7" cols="128"><?PHP echo str_replace($trouve,"",nl2br( lecture_table ($where_doc_id, 'doc_description'))); ?></textarea><br />
    Il n'aime pas trop mon "<br />" slash sûrement car je reçois le message d'erreur suivant:

    Parse error: parse error, unexpected '>' in D:\xampp\htdocs\sources\suivibo\upd_doc_det.php on line 128

    Avez-vous une solution à cette problèmatique?

    Merci d'avance.

    Yves

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $trouve = array("\\", "<br />"); \\ escapement de \
    ?>
    <label><b>Description : </b></label> <textarea name="html_doc_desc" rows="7" cols="128"><?PHP echo str_replace($trouve,"",nl2br($lecture_table.'('.$where_doc_id.',doc_description)')); ?></textarea><br />
    je ne sais pas si c'est ça que tu veux?
    il farderait que tu nous montre la ligne 128 (si ce n'ai pas cela)

  8. #8
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut str_replace --> <br />
    Désolé, c'est tout bon!

    Merci

    Yves

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. single et double quotes
    Par gianni7033 dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2010, 16h20
  2. quotes, doubles quotes, échappement etc. au secours !
    Par robiwan dans le forum Langage
    Réponses: 9
    Dernier message: 30/04/2008, 15h09

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