簡體   English   中英

Var在MySQL上不受影響

[英]Var not affected on mysql

大家早上好 !

我的代碼中的var有問題:

    <?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>';

?>

我的var $reference是好的,我可以echo $reference; 並正確地獲取內容,但是當我想將$reference發送到我的mysql表..則不發送它。當我提交時,我從解析器得到了這個通知:注意:

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

但是提交時,我在回聲行中的“零件”下得到了正確的內容,所以我真的不明白..有人可以幫助我嗎?

將您的插入語句更改為

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

即將$_POST['Reference']更改$_POST['Reference'] $Reference因為您尚未發布此字段,並且似乎是從循環$_POST['choix']

注意:使用mysqli代替mysqli並參閱如何防止PHP中的SQL注入?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM