我已经查看了Stack Overflow,发现了非常相似的问题(比如这个问题):if (!empty ($_POST)) not working
下面的代码总是回显"帖子是空的"即使使用以下网址发布:http://localhost/gui.php?sql=Select+ * +来自+成分%3B
<form>
SQL Query: <input type="text" name="sql"><br>
<input type="submit" value="Query">
</form>
<?php
if(!empty($_POST["sql"])){
$sql = $_POST["sql"];
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "Name: " . $row["firstName"]. " " . $row["lastName"]. "<br>","Address: ", $row["address"], ", ", $row["city"],", ",$row["state"],", ",$row["zip"],"<br>","Phone: ", $row["phone"], ", ",$row["email"],"<br><br>";
}
} else {
echo "No results for query";
}
}
else{
echo "Post is empty";
}
我已经尝试过切换到使用isset功能,对帖子运行计数等等,但我总是打击回声&#34;帖子是空的&#34 ;;声明无论发生什么。我确定这是一个非常简单的问题。
答案 0 :(得分:3)
原因是您的<form>
不包含/指定POST方法。
如果省略方法,则表格默认为GET。
因此,您需要将其修改为<form method="post">
。
需要提及的旁注:
另外,对于您所关注的SQL injection,use mysqli
with prepared statements或PDO with prepared statements,,他们会更加安全。
答案 1 :(得分:2)
<form method="post">