POST不能在我的电脑上运行

时间:2017-06-03 11:46:09

标签: php html forms post

我试图使用Post从我的表单中读取内容,但即使是https://www.w3schools.com/php/php_forms.asp的简单示例也无法正常工作。我自己的代码是:

<form id="eingabe" method="post" action="../php/suche.php">
    <input id="suche" name="suche" type="text" size="50px" placeholder="Suche">
    <input type="submit" value="Submit">
</form>

suche.php

 $rows = array();
   if (isset($_POST['suche'])) {
       $suche = $_POST['suche'];
       $sql= "SELECT * FROM Buch WHERE  titel LIKE '%" . $suche . "%' OR autor LIKE '%" . $suche  ."%' OR isbn LIKE '%" . $suche  ."%' OR genre LIKE '%" . $suche  ."%'";
       $result=$conn->query($sql);
       if ($result->num_rows > 0) {
          while ($row=$result->fetch_assoc()) {
              $titel = $row['titel'];
              $autor = $row['autor'];
              $isbn = $row['isbn'];
              $genre = $row['genre'];
              $preis = $row['preis'];
              $bild = $row['image'];
              $beschreibung = $row['beschreibung'];
              $rows[] = $row;
          }
      }
  }

var_dump($_POST)始终为array(0) { },但在var_dump($GLOBALS)中,我可以找到我发送的字词:

array(6) { ["HTTP_RAW_POST_DATA"]=> string(10) "suche=test" ["_GET"]=> array(0) { } ["_POST"]=> array(0) { }...

问题是:

我正在使用 php7.1 ,但已经尝试过旧版本。 如果我改为GET它可以工作,但我真的需要使用POST。 我也检查了我的php.ini但POST已激活并且有128MB的消息。 有谁知道为什么Post不适合我?

PS:我的一个朋友正在使用完全相同的代码,它对他很有用,所以它不是代码

1 个答案:

答案 0 :(得分:0)

您可以像这样编写代码 -

 $rows = array();
 if($_SERVER["REQUEST_METHOD"] == "POST"){
   $suche = $_POST['suche'];
   $sql= "SELECT * FROM Buch WHERE  titel LIKE '%" . $suche . "%' OR autor LIKE '%" . $suche  ."%' OR isbn LIKE '%" . $suche  ."%' OR genre LIKE '%" . $suche  ."%'";
   $result=$conn->query($sql);
   if ($result->num_rows > 0) {
      while ($row=$result->fetch_assoc()) {
          $titel = $row['titel'];
          $autor = $row['autor'];
          $isbn = $row['isbn'];
          $genre = $row['genre'];
          $preis = $row['preis'];
          $bild = $row['image'];
          $beschreibung = $row['beschreibung'];
          $rows[] = $row;
      }
      echo "<pre>";
      print_r($rows);
  }
 }else{
   echo "POST method not working";
 }

如果您的POST方法不起作用,那么您将收到一条消息&#34; POST方法不起作用&#34;如果您的POST方法正常,那么您将使用print_r()函数获取数据。

注意 - 此代码仅用于测试目的,请根据需要进行修改。