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 :

antislash et sql


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut antislash et sql
    Bonjour,

    Sur mon hebergeur j'ai ca :
    Magic_quotes_gpc : on
    Fixe le mode magic_quotes pour les opérations GPC (Get/Post/Cookie). Lorsque magic_quotes est activé, tous les caractères ' (guillemets simples), " (guillemets doubles), \ (antislash) et NUL sont échappés avec un antislash.
    Magic_quotes_runtime : OFF
    Si magic_quotes_runtime est activé, toutes les fonctions qui obtiennent des données auprès d'une source externe, y compris les bases de données et les fichiers texte, verront leur guillemets échappés avec un antislash. Si magic_quotes_sybase est aussi activé, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash.
    Magic_quotes_sybase : OFF
    Si magic_quotes_sybase est aussi activé, un guillemets simple est échappé avec un guillemet simple au lieu d'un anti-slash, si magic_quotes_gpc ou magic_quotes_runtime est activé.

    Dans mes requetes je ne gere pas l'antislash, il se met directement dans ma base.
    Exemple si j'insere : j'habite, il met j\'habite dans ma base

    Lorsque je veux l'afficher je met stripslashes(mon resultat)

    Jusque la ca vas, est ce la bonne solution sachant que j'ai un moteur de recherche que vas cherche dans ma base. Peut etre serais-t-il plus judicieux de mettre j'habite dans la base mais comment je dois faire ?
    Peut etre que je peux régler au niveau de mon hebergeur pour que de mon coté je n'ai rien a faire du tout dans mon code et que tout fonctionne normalement ? Quel est ce réglage, je suis un peu embrouillé là

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    salut

    D'après le commentaire ça ajoute des \ sur get/post.

    Je ne connais pas ton code, mais je pense que le '\' est déjà présent dans ta requete sql.
    Pour moi le plus propre serait de faire stripslashes sur les variables avant de construire ta requete d'insertion.

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut
    Oui il est présent dans ma requête pour éviter les erreurs sql lors de l'insertion, du coup dans ma base il est écrit j\'habite
    Ensuite à l'affichage je l'enlève.

    Mais est ce que c'est mieux comme ca , ou alors ya un moyen de l'inscrire dans la bdd normalement sans faire d'erreur sql ?

  4. #4
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Si le \ était là pour d'éviter les erreurs SQL il n'apparaitrait pas dans ta table.

    Peut-on avec un bout de code représentant ta requete (avec le contenu des variables qui la crée).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $vtitre=htmlentities($_POST["titre_valid"]);
    $vdescription=htmlentities($_POST["description_valid"]);
    $vcat=htmlentities(strtolower($_POST["cat_valid"]));
    $vsouscat=htmlentities(strtolower($_POST["souscat_valid"]));
    $vdepartement=htmlentities(strtolower($_POST["departement"]));
    $vcp=htmlentities(strtolower($_POST["cp_valid"]));
    $vemail=htmlentities(strtolower($_POST["email_valid"]));
    $vtel=htmlentities(strtolower($_POST["tel_valid"]));
    $vtype=htmlentities(strtolower($_POST["type"]));
    $vprix=htmlentities(strtolower($_POST["prix_valid"]));
    $vmdp=htmlentities(strtolower($_POST["mdp1"]));
    $vfichier=htmlentities(strtolower($_POST["fichier_valid"]));
    $vgenre=htmlentities(strtolower($_POST["genre"]));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "INSERT INTO annonces (titre,description,idcategories,idsouscategories,region,departement,codepostal,email,telephone,type,genre,date,affichage,prix,Control,vmDp,ip)
    						VALUES ('$vtitre','$vdescription',$vcat,$vsouscat,".$region["regions"].",$vdepartement,'$vcp','$vemail','$vtel','$vtype','$vgenre',now(),0,$vprix,1,'$vmdp','$ip')";

  6. #6
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    C'est bizarre, je viens de faire un test
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO `operations` (`description`, `details`, `Old_ProductNumber`, `New_ProductNumber`, `Nb_Inner_Cartons`, `Nb_Readers_Per_Inner_Carton`, `Nb_Readers_Per_Inner_And_Per_Row`, `date_time`, `deleted` ) 
    VALUES (' ff\'r', '', '', '', '0', '0', '0', NOW(), '0' )
    dans ma table operation le champ 'description' contient " ff'r " J'ai pas d'antislash.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut
    quand j'insere a partir de phpmyadmin j\'habite il me met j'habite

    quand j'insere a partir de mon site j'habite il me met j\'habite

    j'y comprend plus rien

  8. #8
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Moi non plus, je sèche

    J'ai essayé ta config, ca d : Magic_quotes_gpc : on
    Ca fonctionne.

Discussions similaires

  1. Java requête SQL quote antislash
    Par ritchie23 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 01/10/2008, 16h50
  2. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  3. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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