我是PHP的新手。
我被建议清理$_GET
和$_POST
。我一直在遵循这个建议。
但是,如果我只想用
检查变量if(isset($_GET['login']))
我需要对此进行任何消毒吗?
另外,我是否需要清理我使用的$_SESSION
值?
答案 0 :(得分:6)
不,您不必进行任何消毒或其他任何事情:isset()
将允许您检查变量(或您的案例中的项目数组)是否存在 - 这就是它。
在这里,当您测试项目/变量是否存在时,您无法清理它:要清理数据,您需要它存在。
但请注意:isset()
如果该项目存在,则会返回false
,但是null
!
在$_GET
项的情况下,很可能不会发生。
答案 1 :(得分:1)
没有。如果你只想检查变量是否存在 - 那么你的代码就可以了。
答案 2 :(得分:0)
不,这样做没有风险。
在继续使用业务逻辑中$_GET
/ $_POST
中的值之前,需要进行清理(例如,使用它构建数据库查询或将其作为HTML输出的一部分显示给用户);在这里,你只是测试一个值是否存在。
答案 3 :(得分:0)
不,你没有。但更好的方法是:
if(key_exists('login',$_GET)) {
}
答案 4 :(得分:0)
我认为不需要卫生设施,如果您只需要检查是否设置了密钥登录,那么最好这样做:
if(array_key_exists('login',$_GET))
因为如果未设置密钥,您的代码将抛出通知错误。