php变量出错,我不明白

时间:2016-09-13 14:50:50

标签: php variables

我的php代码中的var有问题.. 我不明白怎么做

有我的代码:

<fieldset>
 <?
 if(isset($_POST['requete']) && $_POST['requete'] != NULL){
   include "connexion.inc";
   $reponse = $bdd->query('SELECT id_piece, piece 
   FROM tbl_piece 
   WHERE piece = '.$requete.' ');
   while($donnees = $reponse->fetch()){
    echo $donnees['id_piece'];
   }
 }
 else{
  echo $requete;
 }
 ?>         
  <form method="post" action="standard.php">
  <input type="text" name="requete">
  <input type="submit" value="Rechercher">
  </form>
  </fieldset>

因此,在我的网页上,只有一个文本框,其中包含一个要验证的按钮,&#34;测试&#34;在文本框上,是的,据我所知,我的var是好的,一切都没问题我的脚本正在等待我的关键字在我的表中查找确定 我写&#34; AD202&#34;它存在于我的表格中并单击我的按钮 然后我得到这个错误

 Notice: Undefined variable: requete in /home/libtronic/www/html/standard.php on line 52

和..我不明白如何保持我的var声明并分配给我的&#34; AD202&#34;关键字

你能帮帮我吗?/?

4 个答案:

答案 0 :(得分:2)

错误是不言自明的,您的变量$requete未在代码中的任何位置定义。

我假设您指的是$_POST['requete'],要定义它,您需要添加如下所示的行:

$requete = $_POST['requete'];

为防止MySQL注入,您可以使用mysqli_real_escape_string :( $link是连接参数)

$requete = mysqli_real_escape_string($link, $_POST['requete']);

注意:在使用$reponse = ...

之前的变量之前,需要先定义它

或者,如果您不想定义它,可以直接使用$_POST['requete'],但是它可能会有SQL注入的风险。

答案 1 :(得分:0)

您没有声明$ requete,只需在查询之前添加它:

$requete = $_POST["requete"];

答案 2 :(得分:0)

您尝试使用变量而不先定义它。此外,在您的PHP代码中使用预准备语句以避免令人讨厌的意外(sql注入)将是更安全和更好的做法

<fieldset>
    <?php
        if(isset($_POST['requete']) && $_POST['requete'] != NULL){
            include "connexion.inc";

            /* define the variable!! */
            $requete=$_POST['requete'];

            $reponse = $bdd->query('SELECT id_piece, piece 
                FROM tbl_piece 
                WHERE piece = '.$requete.' ');

            while($donnees = $reponse->fetch()){
                echo $donnees['id_piece'];
            }
        } else{
            echo $requete;
        }
    ?>
    <form method="post" action="standard.php">
        <input type="text" name="requete">
        <input type="submit" value="Rechercher">
    </form>
</fieldset>

答案 3 :(得分:0)

你的问题是

$reponse = $bdd->query('SELECT id_piece, piece 
FROM tbl_piece 
WHERE piece = '.$requete.' ');

要么捕获$ requete

$requete=$_POST['$requete'];

在陈述之前或

你的专栏应该是

 $reponse = $bdd->query("SELECT id_piece, piece 
 FROM tbl_piece 
 WHERE piece = '$_POST[requete]'");

这是不可取的,因为它对SQL注入是开放的。

理想情况下,在将其用于更多功能之前,您应该清理任何传入的变量_POST或_GET。$ response-&gt; fetch_assoc()

的$ reponse-&gt; fetch()应该更好