我试图使用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:我的一个朋友正在使用完全相同的代码,它对他很有用,所以它不是代码答案 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()函数获取数据。
注意 - 此代码仅用于测试目的,请根据需要进行修改。