我有一些这样的代码行;
一个。
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
-
A. 禁用 Netbeans 中的提示或忽略它,这没有任何问题。
-
不,B没有错。 如果键不存在,
filter_input
返回null
,如果条件null
,isset
将返回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/的一篇精彩文章。希望有办法联系他感谢他,但是...显然他是这里的常客。
感谢兄弟:)