我想修改这一行.
原来,它是
$cmd = $_REQUEST["cmd"];
Run Code Online (Sandbox Code Playgroud)
然后,我通过阅读此帖子在Stackoverflow上的链接改为此.
$cmd = filter_input(INPUT_REQUEST, "cmd");
Run Code Online (Sandbox Code Playgroud)
但是,我仍然得到底部错误:
Warning: filter_input(): INPUT_REQUEST is not yet implemented
Run Code Online (Sandbox Code Playgroud)
当我读到其他文章的链接时,它说"INPUT_REQUEST不是有效类型".
什么是解决方案?
TL;DR
如果您想使用filter_input()的过滤器选项,请选择POST、GET、 或COOKIE作为您的请求类型。但这不是您唯一的选择。
注意: GET通常用于发送检索数据请求的详细信息,而POST用于提交要存储在服务器上的数据。
您有几个选择:
事实上,到目前为止(从 PHP 7.2 开始)只INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV被实现了。但是你仍然可以得到它的行为。
自己实现 INPUT_REQUEST :(我不建议这样做)您可以使用INPUT_GET,INPUT_POST并通过运行一个INPUT_COOKIE来实现您对当前非现存的行为所期望的行为INPUT_REQUEST,如果没有得到任何运行下一个等等,作为如下。
`$test_filter = filter_input(INPUT_COOKIE, 'test') ?? filter_input(INPUT_POST, 'test') ?? filter_input(INPUT_GET, 'test');`
Run Code Online (Sandbox Code Playgroud)
使用 INPUT_GET 或 INPUT_POST:如果您知道将使用 PUSH 或 GET 中的哪一个来发送请求,则使用相应的选项。INPUT_GET例如,将检索在 url 的查询字符串中发送的数据。
抑制超全局警告:您可以通过转到Windows : Tools -> Options -> Editor -> Hints Mac :NetBeans -> Preferences -> Editor -> Hints并取消选择Superglobals或您不想要的任何子集来选择 netbeans 向您显示的警告。
最后注意: filter_input()有第三个参数是实际的过滤器部分;如果您无论如何都在使用 filter_input ,那么您也可以实际使用过滤器。如果省略参数,则:
如果省略,将使用 FILTER_DEFAULT,相当于 FILTER_UNSAFE_RAW。这将导致默认情况下不进行过滤。
| 归档时间: |
|
| 查看次数: |
1505 次 |
| 最近记录: |