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 :

Insertion dans bdd qui plante [MySQL]


Sujet :

PHP & Base de données

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Insertion dans bdd qui plante
    Bonjour,

    Voilà 5 jours que je me suis mis au php et j'ai un petit problème que je n'arrive pas à résoudre, peut être sauriez vous m'aider ?

    dans mon code j'insere un message dans ma base de donnée:


    //connexion a la base
    connect_db();

    mysql_query("INSERT INTO "._TABLE_MSG." (login_expediteur, login_destinataire, objet, message)
    VALUES ('".$_SESSION['login']."','".$_POST['destinataire']."','".$_POST['sujet']."','".$_POST['corp']."')");
    Le problème est que si mes variables $_POST['sujet'] ou $_POST['corp'] contiennent des caractères comme: ' ( des apostrophes) ma reqête plante car il interprete se caractere comme faisant partie de la requête.... je sais pas si je m'explique bien...


    Je suis sur que je ne suis aps le premier a qui ca arrive alors si ca vous ai déjà arriver, comment resoudre ce problème ?

    Cordialement,
    seb

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Ta connexion à la BDD est bonne:

    En effet, c'est une question de ' dans les post.

    Ce que je te conseille de faire, c'est d'abord de tester normalement ton script (sans mettre de ') et de voir si ca marche.

    Ensuite, test avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <?php
    $login = addslashes($_SESSION['login']);
    $destinataire  = addslashes($_POST['destinataire']);
    $sujet  = addslashes($_POST['sujet']);
    $corp  = addslashes($_POST['corp']);
    
    mysql_query("INSERT INTO _TABLE_MSG (login_expediteur, login_destinataire, objet, message) VALUES ('".$login."', '".$destinataire."', '".$sujet."', '".$corp."')");
    ?>
    Attention: ne met rien autour du nom de ta table!

    Si tu la sors de la chaine, elle sera interprété par PHP qui te retournera une erreur.

    NB: aucune optimisation dans ce code. Si ca marche, améliore le!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    je te remerci pour ta réponse, je vais essayer ta solution dans le couurant de l'aprés midi.

    Sinon l'insertion fonctionne trés bien si le contenu de mes variable ne contient pas de: '
    j'avais vaguement entendu parler de addslashes en regardant sur les forum, mais je ne savais pas vraiment à quoi ca servait.

    sinon tu me dit de ne rien mettre autour du nom de la table, si j'ai mi quelque chose c'est car ce n'est pas le nom de la table directement (_TABLE_MSG), le nom de la table est d'efini dans un fichier que j'inclu, et c'est cette variable qui contient le nom de ma table, pour une question de maintenance, si un jour j'avais a changer le nom de ma table ca m'evitera de modifier X pages.

    Encore merci, je reviendrais poster pour dire si mon problème est résolu

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    ca marche nickel, je te remerci encore, je vais appliquer des addslashes partout ^^

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

Discussions similaires

  1. [CKEditor] Probleme pour afficher le code html apres insertion dans bdd
    Par Pepito2030 dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 28/12/2006, 21h52
  2. Réponses: 12
    Dernier message: 16/08/2006, 22h28
  3. [MySQL] Problème double insertion dans BDD
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 28/12/2005, 00h09
  4. pb double insertion dans BDD
    Par oceane751 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/12/2005, 09h59
  5. Insertion dans BDD type ACCESS
    Par NeHuS dans le forum ASP
    Réponses: 2
    Dernier message: 20/04/2005, 10h53

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