PHP总是使用Post参数评估为false

时间:2015-04-23 18:38:52

标签: php mysqli http-post

我已经查看了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 ;;声明无论发生什么。我确定这是一个非常简单的问题。

2 个答案:

答案 0 :(得分:3)

原因是您的<form>不包含/指定POST方法。

如果省略方法,则表格默认为GET。

因此,您需要将其修改为<form method="post">

需要提及的旁注:

另外,对于您所关注的SQL injectionuse mysqli with prepared statementsPDO with prepared statements,他们会更加安全

  • 绝不信任用户输入。

答案 1 :(得分:2)

你忘了写表格方法了.. 您应该在表单中添加方法标记并将其设置为

<form method="post">