2016-06-27 20 views
0

Guten Morgen alle!Var nicht betroffen auf mysql

Ich habe ein Problem mit einem var in meinem Code:

<?Php 
error_reporting(E_ALL); 
    //Si IP correspond pas au PC autorisé, on retourne au debut. 
    include "./_protection.php"; 
    $data=''; 
    $rep=''; 
    $requete=''; 
    $val = ''; 
    $Reference= ''; 

echo '<h2><u>Commander des pièces</u></h2><br>'; 

/***************************************************************************************************** 
*         AJOUT DE PIECE DANS LA BASE DE DONNEES 
*****************************************************************************************************/ 

    if(@$_POST['action'] == "ajouter") 
    { 
    if(!empty($_POST['choix'])){  
     foreach($_POST['choix'] as $val){ 
      $Reference.="$val,"; 
     } 

    //Injection dans la base SQL 
    include "./../connexion.inc"; 
    mysql_query("INSERT INTO `tbl_commandes` (`id`, `Eleve`, `Reference`, `Quantite`, `Date`, `Statut`) 
VALUES ('', '".$_POST['Eleve']."', '".$_POST['Reference']."', '".$_POST['Quantite']."', '".$_POST['Date']."', '".$_POST['Statut']."')"); 
    mysql_close(); 
    } 
    } 


/***************************************************************************************************** 
*         FORMULAIRE POUR L'AJOUT DE PIECE 
*****************************************************************************************************/ 
echo ' 
<fieldset> 
    <legend>Commander des Pièces</legend> 
    <FORM action="./?page=commande_piece_full_php" method="POST"> 
     <p align="left"> 
     <H2>Pièces :</h2> 
     <br>'; 
     echo $Reference; 
     include "./../connexion.inc"; 
     $rep = mysql_query("SELECT id_categorie_piece, categorie_piece FROM tbl_categorie_piece ORDER BY categorie_piece"); 
     mysql_close(); 
     include "./../connexion.inc"; 
     while($data = mysql_fetch_array($rep)) 
      { 
      echo $data['categorie_piece']; 
      echo '<br>'; 
      $requete = $data['id_categorie_piece']; 
      $reponse = mysql_query("SELECT id_piece, piece FROM tbl_piece WHERE idr_categorie_piece='$requete' ORDER BY piece"); 
      while($donnees = mysql_fetch_array($reponse)){ 
       ?> <input type="checkbox" name="choix[]" value="<? echo $donnees['id_piece'] ?>"><? echo $donnees['piece'] ?><br> <? 
       } 
      echo '<br>'; 
      } 
     mysql_close(); 
echo ' 
    Elève : 
    <select name="Eleve">'; 
     include "./../connexion.inc"; 
     $reponse2 = mysql_query("SELECT id_client, client FROM tbl_client ORDER BY client"); 
     while($donnees2 = mysql_fetch_array($reponse2)) 
     { 
      ?> <option value="<? echo $donnees2['client'] ?>"><? echo $donnees2['client'] ?></option> <? 
     } 
     mysql_close(); 
    echo ' 
    </select> 
    <br> 
    Date souhaitée : <input type="textbox" name="Date"> 
    <br> 
    Quantité : <input type="textbox" name="Quantite"> 
    <br> 
    <input type="submit" value="ajouter"> 
    <input type="hidden" name="action" value="ajouter"> 
    </form> 
</fieldset>'; 

?> 

meine var $reference ist Ok, ich kann echo $reference; und bekommt den Inhalt zu Recht aber wenn ich auf meine MySQL-Tabelle senden will $reference .. dass doesn ‚t es senden wenn ich einreichen, erhalte ich diese Mitteilung vom Parser: Hinweis:

Undefined index: Reference in /home/bddstock/www/admin/commande_piece_full_php.php on line 27 

aber wenn es submited ist bekomme ich die richtigen Inhalte in meiner Echo Linie unter PIECES so verstehe ich wirklich nicht .. kann mir jemand helfen?

Antwort

1

Ihre Insert-Anweisung ändern zu

mysql_query("INSERT INTO `tbl_commandes` (`id`, `Eleve`, `Reference`,  
`Quantite`, `Date`, `Statut`) 
VALUES ('', '".$_POST['Eleve']."', '".$Reference."', '".$_POST['Quantite']."', '".$_POST['Date']."', '".$_POST['Statut']."')"); 

d.h $_POST['Reference'] zu $Reference ändern, wie Sie dieses Feld nicht gebucht haben und es scheint, dass Sie es von looping $_POST['choix'] abzuleiten.

Hinweis: Verwenden Sie anstelle von mysql mysqli und How can I prevent SQL injection in PHP?

+0

Wirklich Dank Sie beziehen! Es klappt ! Ich werde Mysqli oder vielleicht PDO verwenden, zu denen man leichter zu konvertieren ist? – Khaleesi

+0

Beide sind einfacher zu verstehen, aber ich empfehle, PDO zu verwenden. Siehe http://stackoverflow.com/questions/31311607/please-how-to-convert-mysql-query-to-pdo-in-my-code – jitendrapurohit

+0

@Khaleesi, wenn die veröffentlichte Antwort Ihr Problem behoben, können Sie es als akzeptieren eine Antwort. – jitendrapurohit