drvvvuyia15070493 2014-12-20 12:59
浏览 71
已采纳

是(int)$ _ GET ['user_input']安全吗?

Is it safe to assume that in

if (($i = (int)trim($_GET['user_input'])) != 0) {
    // do stuff with $i
}

$i can only ever be an integer?


Edit:

I now use:

if (ctype_digit($i = $_GET['user_input'])) {
    // do stuff with $i
}
  • 写回答

4条回答 默认 最新

  • dongshai8330 2014-12-20 13:07
    关注

    So if your only question is if it's in any case a int, then is the answer :

    Yes

    But if the cast to int fails (e.g. input: 'a') $i is just 0

    Example:

    Input/ Output:

    4       ->  4
    -5      -> -5
    "14"    -> 15
    "a"     ->  0
    "!"     ->  0
    array() ->  0
    

    Side Note:

    If the value is an array trim fails and you get an error

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟