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 :

[SQL] Apostrophe dans une requete SQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut [SQL] Apostrophe dans une requete SQL
    Bonjour,

    Sur mon site PHP, j'ai des formulaires liés à une base Oracle.
    Or, quand je saisi un Apostrophe dans un champ Texte, le UPDATE ne fonctionne pas...
    Je n'ai pas trouvé de moyen pour pourvoir en saisir quand meme...

    si quelqu'un connait la solution...

    Merci.

    jdiamsss

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Passe ta donnée par mysql_real_escape_string().

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    Moi aussi j'avais le même probléme dans un projet en php, la solution que j'ai trouvé c'est la fonction addslashes(), elle permet d'ajouet des slashes afin que la requête soit accepté
    si ta zone de texte est nommée : zone_texte
    alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $texte = $_POST['zone_texte'];
                $texte = addslashes($texte);
    là tu peux utiliser la variable $texte dans ta requête sans probléme

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par adil_aeh
    Bonjour,
    Moi aussi j'avais le même probléme dans un projet en php, la solution que j'ai trouvé c'est la fonction addslashes(), elle permet d'ajouet des slashes afin que la requête soit accepté
    si ta zone de texte est nommée : zone_texte
    alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $texte = $_POST['zone_texte'];
                $texte = addslashes($texte);
    là tu peux utiliser la variable $texte dans ta requête sans probléme
    Je ne suis pas d'accord. mysql_real_escape_string() ne protège pas que les apostrophes, elle protège tous les caractères dangereux d'une chaîne. Elle est donc la seule à te garantir la sécurité à 100% de ta requête.
    D'après le manuel php :
    mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée.

    mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slashe aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.

    Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL.

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 36
    Points
    36
    Par défaut
    Oui, tu as tout à fait raison vg33, addslashes() ne protége la chaine que contre les guillemets simples ( ' ), guillemets doubles ( " ), anti-slash ( \ ) et NUL (le caractère NULL ). Merci pour l'information

Discussions similaires

  1. Apostrophe dans une requete sql
    Par taroudant dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/01/2008, 21h02
  2. Comment executer une requete sql delete dans une jsp ?
    Par DarkWark dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/05/2006, 16h59
  3. pb de guillemet dans une requete SQL
    Par linouline dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/12/2005, 11h38
  4. [JDBC]Caractères spéciaux dans une requete SQL
    Par frizby dans le forum JDBC
    Réponses: 2
    Dernier message: 28/11/2005, 18h01
  5. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51

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