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

Langage PHP Discussion :

des ' et des " dans un champs, et je doit les recups


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Points : 1 250
    Points
    1 250
    Par défaut des ' et des " dans un champs, et je doit les recups
    bonjour à tous,

    V'la le probleme, j'ai un formulaire de saisie HTML qui enrichi via du PHP une base mysql,

    un de mes champs est un <TEXTAREA> dans lequel les gens vont saisir du texte avec des " et des ' (et peut etre d'autres symboles interdit ?...) le probleme c'est que des qu'un de ces symbole est present, l'enregistrement ne se fait pas (normal...)

    Mes questions :

    quels sont exactement les caracteres interdit ?

    et

    comment faire en sorte conserver mon texte sans altération de celui-ci en sortie ??

    Merci d'avance à ceux qui nous aides au quotidien !!!
    a+

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il n'y a pas de caractères interdits ! Les bases de données sont sensées contenir n'importe quel caractère.
    Il faut seulement que tu échappes certains caractères spéciaux qui servent à construire une requête.
    Pour ça =>
    http://php.net/addslashes
    ou si tu as mysql
    http://php.net/mysql_real_escape_string

  3. #3
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    quand tu insère du texte dans MySQL, il est mis entre ' ' pour pouvoir désigner toute la chaîne...

    si jamais un ' est présent, il coupera la chaîne... il faut donc remplacer ' par \'

    sauf que si quelqu'un met un \' dans ta chaîne, tu auras un \\' qui rendra inutile le premier \ donc il faut remplacer les \ de la chaîne par des \\

    le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function protect_to_insert($var)
    { return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $var)); }

    [edit]arf grillé, en plus c'est des fonctions qui existent déjà et qui sont certainement mieux que mon truc [/edit]
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  4. #4
    Membre éprouvé Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Points : 1 250
    Points
    1 250
    Par défaut
    j'ai trouvé, sur un autre forum, voila la reponse et merci à tous

    Pour éviter la confusion entre guillemet et apostrophe :

    fonctions addslashes() et stripslashes().... en php.

    L'ocean devient L\'ocean dans ta base avec addslashes()... et redevient

    L'ocean avec stripslashes().

    <HTML><BODY>

    <FORM method=post action="verif_car.php">
    <input type="text" name="nom" >
    <INPUT type="submit" VALUE="envoie">
    </FORM>

    </HTML></BODY>

    <?php
    // inscrire le texte dans la base
    // nom du fichier verif_car.php
    $nom=$_POST['nom']


    $nom_ok=addslashes($nom);
    // et on travaille avec les variables _ok pour le INSERT INTO
    ?>



    <?php
    // Réutilisé les var
    // nom du fichier requete_car.php

    // on recupere le contenu du champ nom dans la variable $nom
    echo stripslashes($nom);

    ?>

    C'est à peu pres ça, les connection et les requete en moins

    en tout cas merci à ceux qui ont repondu et à l'equipe de www.developpez.net

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 30/11/2007, 11h58
  2. afficher des quotes dans un champ de formulaire
    Par benkunz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/10/2007, 14h45
  3. Réponses: 7
    Dernier message: 05/01/2007, 12h24
  4. Placer des quote dans un champs
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 21/04/2005, 10h36
  5. Selection des x premiers caractères dans un champ précis
    Par Schulman dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/01/2005, 09h23

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