如果$ _POST变量丢失了怎么办?

Nik*_*kiC 1 php webforms

如果$_POST缺少变量,应用程序应该做什么,这是执行操作所必需的?

例如,假设我有一个表单,<input name="title">并且我有一些页面,它处理生成的POST请求.现在,这个页面应该做什么,如果它收到请求,但没有$_POST['title']设置变量?

为了说清楚:通过"未设置"我的意思是,一个无效的请求,普通用户不能做,只有有人向我的表单处理页面发出手动请求,即有人试图用我的网站做事,我不希望它完成.

一些可能性:

  • 只是die.
  • 打印一个奇特的错误消息,就像你一样,它只是空的字段.
  • 阻止此IP的进一步请求.

sys*_*ich 5

返回带有表单的页面,并向用户表明必须设置标题.


Mic*_*ick 5

检查并清理您预期的 POST 密钥。

if (isset($_POST['title'])) {
    // sanitize and use title here
}
else die("Missing required field: 'title'.");
Run Code Online (Sandbox Code Playgroud)

编辑:因为我们不喜欢 die(),这个怎么样:

if (isset($_POST['title'])) {
    // sanitize and use title here
}
else 
{
    // handle an invalid POST. You could redirect to form 
    // page, display an error, or whatever works for your
    // application.
}
Run Code Online (Sandbox Code Playgroud)