克服 NetBeans 中的警告 - PHP - 不要直接使用 Superglobals Array $_GET


Overcoming Warning in NetBeans - PHP - Do not use Superglobals Array directly $_GET

我有一些这样的代码行;

一个。

    if ( isset($_GET["logout"]) && $_GET["logout"] == 1){
    do_something;
    }

我替换为(以摆脱警告);

二.

    if ( isset( filter_input(INPUT_GET,'logout',FILTER_SANITIZE_NUMBER_INT)  ) &&  
    filter_input(INPUT_GET,'logout',FILTER_SANITIZE_NUMBER_INT) == 1){ 
    do_something;
    }

但我最终用 B 打破了应用程序。登录屏幕甚至没有出现。阿帕奇错误日志中也没有错误。

这是示例网址;

 http://192.168.0.91/test-app/?logout=1

我的 B. 语法/代码有什么问题?我想我用错了filter_input?

更新1:

PHP 版本 ->php5-5.4.20-34.3.x86_64NetBeans 版本 -> 8.0.1

  1. A. 禁用 Netbeans 中的提示或忽略它,这没有任何问题。

  2. 不,B没有错。 如果键不存在,filter_input 返回 null,如果条件nullisset 将返回 false ,所以你的逻辑很好,函数的使用也很好。唯一的问题可能是您的PHP版本太旧。filter_input是在 5.2.0 中引入的。

代码 B. 通过更改为 ;

if ( filter_input(INPUT_GET,"logout",FILTER_SANITIZE_STRING) !== null &&    
filter_input(INPUT_GET,"logout",FILTER_SANITIZE_INT)==1) { 
dosomething;
}

应用程序现在运行良好。

此修复的灵感来自David Zentgraf在 http://kunststube.net/isset/的一篇精彩文章。希望有办法联系他感谢他,但是...显然他是这里的常客。

感谢兄弟:)