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 );
}