对php有点新,并阅读了一些人的代码并看到了这一点:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['...'])) {
} else {
echo "...";
}
}
我得到了isset(...)正在做什么,但不明白第一个if语句是什么。特别是因为if语句在我的请求方法是GET时工作,但是当我的请求方法是POST时
答案 0 :(得分:3)
假设您的页面名为yourpage.php - 该代码的含义是,如果您通过发布表单访问yourPage.php页面,则只能运行IF语句中的代码部分。因此,如果您只是正常加载该页面,请在地址栏中键入yourpage.php。该代码将无法运行。
但如果你有一些< form action ='yourPage.php'>。当您提交该表单时,您来到yourpage.php该代码将仅在该实例中运行。当页面通过发布时。
它基本上是一种确保某些代码只会在发布表单后发生的方法,想一下像“谢谢你填写我们的调查!”这样的消息。仅在您提交表单后弹出,但仍在同一页面上。
答案 1 :(得分:2)
$_SERVER['REQUEST_METHOD']
是PHP server variables之一。
决定:
使用哪种请求方法来访问页面;即'GET','HEAD', 'POST','PUT'。
它通常默认为GET,因此不要依赖它来确定是否已发布表单(例如,如果不是POST则必须GET等)。
你说:
当我的请求方法是GET但是没有时,if语句正在工作 当我的请求方法是POST
时
我不明白为什么会这样,你必须有其他不同的东西,或者可能的缓存/浏览器历史正在发挥作用。
答案 2 :(得分:0)
我怀疑您在刷新页面查看数据时无意中重新提交了数据。
因此,帖子数据再次出现。
尝试将光标放在浏览器中 URL 的末尾,然后按“回车”