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 données dans BDD via formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Points : 89
    Points
    89
    Par défaut insertion données dans BDD via formulaire
    Bonjour,

    j ai crée deux fichiers php qui devrait inserez des données dans le champ "nom_label" de ma table label, mais ce n est pas le cas et je comprends vraiment pas pourquoi ... voici mes deux fichiers php et en dessous un echo sur $sql,

    merci de votre aide

    insertion1.php :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
    "http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd">
    <html Xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Mailing</title>
    <link href="formulaire.css" rel="stylesheet" type="text/css" />
    </head>
     
    <form name="insertion2" action="insertion3.php" method="POST">
      <table border="0" align="center" cellspacing="2" cellpadding="2">
         <tr align="center">
          <td>label</td>
          <td><input type="text" name="label"></td>
        </tr>
    insertion2.php :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     <?php
     
      include ('config.php');
      include ('connexion.php'); 
     
      //récupération des valeurs des champs:
      //label:
      $nom_label = $_POST["label"] ;
     
     
     
      //création de la requête SQL:
      echo $sql = "INSERT  INTO label (nom_label)
                VALUES ( '$nom_label') " ;
     
     
      //exécution de la requête SQL:
       echo $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
      //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
      {
        ("L'insertion a été correctement effectuée") ;
      }
      else
      {
        echo("L'insertion à échouée") ;
      }
    ?>
    et enfin le cho sur $sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO label (nom_label) VALUES ( 'rr')
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\wamp\www\handsandarms\insertion2.php on line 18

  2. #2
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    Salut,

    Plusieurs choses, es-tu sur que ta connexion à la base de donnée soit OK ( ton $cnx) ? SI tu effectue un simple select, te renvoit-il quelque chose? A priori, cela viendrait de la.

    Autre chose qui n'a rien a voir, mais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      $nom_label = $_POST["label"] ;
      
      
      
      //création de la requête SQL:
      echo $sql = "INSERT  INTO label (nom_label)
                VALUES ( '$nom_label') " ;
    Oublie... C'est une horreur coté sécurité! Tu ne dois JAMAIS, JAMAIS, et encore JAMAIS injecter dans une requete SQL un valeur récupérer directement d'un POST, GET ou COOKIE! C'est le meilleur moyen pour se faire hacker son site, par une injection SQL. Pense toujours à filtrer les données (utilise les REGEXP pour cela, ou d'autres fonctions php, tels que ctype: http://fr.php.net/ctype)

    Onet
    ---
    Retrouvez tout mes tutos et mes articles: http://www.olivierlange.com

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    la focntion mysql_query prend deux paramètres : le premier est ta requête SQL, le second est un "link_identifier" (c'est ce dont il est question dans le message d'erreur sous le nom de "MySQL-Link resource").

    $cnx n'est pas une "ressource de type MySQL Link". il faudrait voir comment se fait ta connexion

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Points : 89
    Points
    89
    Par défaut
    Merci de vos réponses alors,

    - la requete insert into je veins de la tester sur ma base directement ca focntionne.

    - Merci pour le conseil de sécurité

    - au niveau de la connexion c ets les deux fichiers config et connexion qui me connecte et sur d autres fichiers php les connexions fonctionnent ...

  5. #5
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    fais voir un print_r($cnx) juste avant de faire ta requete!

    (d'ailleur, il n'est pas obligatoire de préciser le $cnx. SI tu l'omet, il prends la dernière connexion ouverte. Donc, sauf cas très particulier, tu n'a jamais besoin de spécifier ton $cnx. Donne lui que ta requete, et il y a plus de chance que ca passe.)

    Onet
    ---
    Retrouvez tout mes tutos et mes articles: http://www.olivierlange.com

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Points : 89
    Points
    89
    Par défaut
    merci j ai enlever le $cnx et ca fonctionne par contre je dois inserez des données dans deux tables différentes est ce que ce st possible de faire deux form qi chacune pointe vers un fichier php par exemple insert1.php et insert2.php ?

  7. #7
    Membre régulier
    Avatar de Atomicfryer
    Homme Profil pro
    Géomaticien
    Inscrit en
    Février 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2004
    Messages : 103
    Points : 101
    Points
    101
    Par défaut
    oui tu peux
    tu auras du coup :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form method="post" action="insert1.php">...</form>
    <form method="post" action="insert2.php">...</form>
    ou bien tu peux mettre un choix multiple pour sélectionner ton type d'insertion ou faire un champ masqué avec le choix...
    en gros tu as le choix
    Ne me dites pas que ce problème est difficile.
    S'il n'était pas difficile, ce ne serait pas un problème.

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Points : 89
    Points
    89
    Par défaut
    merci de ta reponse en fait j ai tout fait pointé vers un seul fichier php et ajouter un $sql2 avec insert vers l autre table

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

Discussions similaires

  1. [MySQL] Insérer valeurs dans BDD via formulaire php
    Par Seeverine dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/11/2014, 12h39
  2. [Débutant] MAJ de données dans BDD via interface WPF
    Par jerrypeeren dans le forum Linq
    Réponses: 2
    Dernier message: 19/11/2013, 21h38
  3. Réponses: 8
    Dernier message: 25/11/2008, 12h33
  4. Réponses: 12
    Dernier message: 20/12/2007, 17h24
  5. [MySQL] problème ajout donnée dans BDD via php
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/05/2006, 23h41

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