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 :

probleme addslash impossible de faire d'update [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut probleme addslash impossible de faire d'update
    j'ai un gros soucis avec ce que je crois etre les
    addslashes

    dés qu'un mot contient une appostrophe ca plante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = "update produits set reference='".$reference."',marque=".$marque.",designation='".$designation."',categorie=".$categorie;
    			$req .= ",prix=".$prix.",prixConcurrence=".$prixConcurrence.",commentaire='".$commentaire."',apercu='".$apercu."'";
    			$req .= " where id=".$id.";";
    			$stmt = db_query($req) or die("requete invalide : $req");
    je sais pas ou placer
    echo addslashes($str);

    et si c'est vraiment ca qu'il faut que je mette

    j'ai verifier
    magic_quotes_gpc
    il est bien sur off

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut un addslash sur chaque variable a proteger.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut
    merci

    mais je sais pas ou se trouve mes variables

    quel est le code exact a integrer ?

    j'ai essayer de mettre partout
    avant et apres
    echo addslashes($str);

    mais ca ne marche pas toujours pas

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    je te rappelle que echo sert a afficher et ce n'est pas ca qu'on veut faire

    on remplace la variable par sa version echappée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str = addslashes($str);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut
    ca ne marche tjrs pas

    aussi faut que j'arrive a bien comprendre quand utilisé tel ou tel formule et comme tu dis lorsque je veux afficher ou faire autre chose

    ceci dit je pense que le probleme viens d'easyphp

    parceque avant mon code fonctionnais tres bien
    sauf que le tout etait habergé chez online

    la je suis en local et il doit y'avoir des manip a faire sur le fichier de config.

    j'ai bien verifier le magic quote
    tout est sur off comme j'ai pu le voir sur google.

    quel serait les autres options a verifier ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faudrait commencer par nous dire precisemment l'erreur que tu rencontres et ou en est ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut
    merci

    j'ai une base de donnée avec une table produits

    que j'actualise via php

    je peux
    - ajouter des nouveau produits
    - actualiser des produit deja existant

    un produit contient une description
    et il arrive souvent que la description contienne des apostrophe

    et c'est a ce moment la que ca bug

    voici le code d'update qui s'effectue via un bouton ''modifier''

    ce code fonctionne chez l'hebergeur online mais pas en local sur easyphp

    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
    if ($option=="modifier") 
    {
     
    $reference = $_POST['reference'];
    $marque = $_POST['marque'];
    $designation = $_POST['designation'];
    $categorie = $_POST['categorie'];
    $prix = $_POST['prix'];
    $prixConcurrence = $_POST['prixConcurrence'];
    $commentaire = $_POST['commentaire'];
    $apercu = $_POST['apercu'];
     
    $req = "update produits set reference='".$reference."',marque=".$marque.",designation='".$designation."',categorie=".$categorie;
    $req .= ",prix=".$prix.",prixConcurrence=".$prixConcurrence.",commentaire='".$commentaire."',apercu='".$apercu."'";
    $req .= " where id=".$id.";";
     
    stmt = db_query($req) or die("requete invalide : $req");

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans le code que tu nous montres, il n'y pas les fonctions d'echappement.

    De plus tu ne nous a toujours pas dit quelle erreur tu avais.

    Au passage, si on parle de mysql, il existe une fonction addslashes()spécifique qui mysql_real_escape_string()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut
    voici le code que je transmet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    update produits set reference='Navirad',
    marque=101,
    designation='',
    categorie=160,prix=49,
    prixConcurrence=0,
    commentaire='Vous approchez d'une zone dangereuse équipée d'un radar automatique ? Le GPS Navirad vous alerte immédiatement par un signal sonore - Alertes sonores - Evitez les fausses alertes - Mises à jour gratuites - Limiteur de vitesse - Petit et discret - 100% légal',
    apercu='' 
    where id=12490
    et l'erreur est celle ci

    #1064 - Erreur de syntaxe près de 'une zone dangereuse équipée d'un radar automatique ? Le GPS Navirad vous alert' à la ligne 1

    il ne prends pas en compte d'une
    a cause de l'appostrophe

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans le code que tu nous montres, il n'y pas les fonctions d'echappement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut
    je sais pas ce qu'est une fonction d'echappement

    et je sais pas du tout comment l'integrer au code.

    j'ai mis
    apres la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_real_escape_string($designation,$commentaire);
    mais ca ne change rien du tout

    comment je dois faire ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 43
    Par défaut
    bon ca y'est j'ai trouvé

    en faite j'ai juste modifié
    magic_quotes_gpc = on

    mis sur on
    et ca fonctionne

    je comprends pas j'ai vu partout qu'il fallais le mettre sur off

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

Discussions similaires

  1. Impossible de faire mon update
    Par Trebor_ dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/10/2012, 17h06
  2. Impossible de faire un update MySql
    Par tonymx15 dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 05/06/2012, 15h25
  3. [TortoiseSVN] Impossible de faire un update des fichiers disponibles sur le serveur
    Par genjy dans le forum Subversion
    Réponses: 1
    Dernier message: 31/08/2009, 00h12
  4. impossible de faire fonctionner phppgadmin et pgdmin3
    Par le_ben dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 09/12/2004, 14h27
  5. faire un update partiel
    Par danseur dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 19/01/2004, 18h27

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