问题如下:从浏览器端传来的参数中包含id这样的字段,问题是用户给id='12345dfg'
这样的值以后,php后端会执行intval('$id')给它转换为整数,然而php转换过程中id就被转换成了合法的输入id=12345
,如何把上述错误的输入校验出来呢?
问题补充:如果是$id = $request->getPost('id','int')
,这种情况下,我该如何校验用户输入是否合法啊?
问题如下:从浏览器端传来的参数中包含id这样的字段,问题是用户给id='12345dfg'
这样的值以后,php后端会执行intval('$id')给它转换为整数,然而php转换过程中id就被转换成了合法的输入id=12345
,如何把上述错误的输入校验出来呢?
问题补充:如果是$id = $request->getPost('id','int')
,这种情况下,我该如何校验用户输入是否合法啊?
function getPost($parameter,$type){
switch($type){
case 'int' : return (int)$_POST[$parameter];
case 'string': return (string)$_POST[$parameter];
case 'array': retrun is_array($_POST[$parameter])?$_POST[$parameter]:array();
……………………
}
}
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
798 阅读
649 阅读
用参数过滤函数,
filter_var($id, FILTER_VALIDATE_INT)
,正确的整数返回数字,错误的返回false。