Php 警告:筛选器\输入():尚未实现输入\请求

Php 警告:筛选器\输入():尚未实现输入\请求,php,netbeans-8,Php,Netbeans 8,我正试图修改这一行 原来是, $cmd = $_REQUEST["cmd"]; 然后,我在Stackoverflow上读了这篇文章,改变了这一点 $cmd = filter_input(INPUT_REQUEST, "cmd"); 但是,我仍然得到底部错误: Warning: filter_input(): INPUT_REQUEST is not yet implemented 当我读到另一篇文章时,它说“输入请求不是有效的类型。” 这里的解决方案是什么?根据文档(以及您的错误消息和您参

我正试图修改这一行

原来是,

$cmd = $_REQUEST["cmd"];
然后,我在Stackoverflow上读了这篇文章,改变了这一点

$cmd = filter_input(INPUT_REQUEST, "cmd");
但是,我仍然得到底部错误:

Warning: filter_input(): INPUT_REQUEST is not yet implemented
当我读到另一篇文章时,它说“输入请求不是有效的类型。”

这里的解决方案是什么?

根据文档(以及您的错误消息和您参考的SitePoint Q&A答案),它不是有效的参数。委员会:

INPUT\u GET
INPUT\u POST
INPUT\u COOKIE
INPUT\u SERVER
INPUT\u ENV
中的一种

此函数不存在“输入请求”

这里的解决方案是什么

使用实际存在的参数之一。

TL;DR 如果要使用
filter\u input()
的筛选选项,请选择
POST
GET
COOKIE
作为请求类型。但这不是你唯一的选择

注意:
GET
通常用于发送检索数据请求的详细信息,而
POST
用于提交要存储在服务器上的数据

您有几个选择:

事实上,到目前为止(截至PHP7.2),只实现了
INPUT\u GET、INPUT\u POST、INPUT\u COOKIE、INPUT\u SERVER或INPUT\u ENV
。但你仍然可以看到它的行为

自己实现输入请求:(我不建议这样做)您可以使用
INPUT\u GET
INPUT\u POST
INPUT\u COOKIE
通过运行一个请求来实现当前不存在的
INPUT\u请求的行为,如果没有运行下一个请求,以此类推,具体如下

`$test_filter = filter_input(INPUT_COOKIE, 'test') ?? filter_input(INPUT_POST, 'test') ?? filter_input(INPUT_GET, 'test');`
使用INPUT\u GET或INPUT\u POST:如果您知道将使用PUSH或GET中的哪一个发送请求,请使用相应的选项。例如,将使用
INPUT\u GET
检索url查询字符串中发送的数据

抑制超全局警告:您可以选择netbeans显示哪些警告,方法是转到Windows:
Tools->Options->Editor->hits
Mac:
netbeans->Preferences->Editor->hits
,然后取消选择
超全局警告或您不想要的任何子集

最后注意:
过滤器输入()
有第三个参数,即实际的过滤器部分;如果您使用的是filter\u输入,那么您最好实际使用filter。如果省略该参数,则:

如果省略,将使用FILTER\u DEFAULT,这相当于FILTER\u UNSAFE\u RAW。这将导致默认情况下不进行过滤

如果仍然需要以类似方式访问
$\u请求
,则可以使用

不过,您需要注意一些差异

过滤变量()

  • 返回“”(空字符串)
  • (推荐)具有
    isset()
    wrap
过滤输入()

  • 返回Null
例子
请注意,根据此票据:,
输入请求
将永远不会执行


在PHP8.0中,
INPUT\u请求
INPUT\u会话
已被完全删除

使用哪一个重要吗?我倾向于使用输入法。谢谢。这不是公认的答案,但描述要好得多,它还解释了公认答案的第一条注释中的@Java问题。
$cmd = '';
if ( isset( $_REQUEST["cmd"] ) ) {
    $cmd = filter_var( $_REQUEST["cmd"], FILTER_SANITIZE_STRING );
}