在处理过滤数字字段时,我们经常使用intval(num),(int)num 强制转换数字类型的方式防止注入
但是当处理的数据大于2147483647 时,数据会强制使用边界替代原数据。
1.强制转换类型,intval(num),(int)num(mum小于等于2147483647),
2.num=num+0 这样php也会自动给你转换
$n="n";
$a=2147483648.05555;
echo intval($a).$n; //result -2147483648
echo (int) $a,$n;//result -2147483648
echo floatval($a).$n;//result 2147483648.0556
echo floor(floatval($a)).$n;//result 2147483648
其他防注入方法
php自带函数去除html标记
strip_tags
去掉 HTML 及 PHP 的标记。
语法: string strip_tags(string str);
传回值: 字串
函式种类: 资料处理
内容说明
本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串。若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误。而本函式和 fgetss() 有着相同的功能。
htmlspecialchars
将特殊字元转成 HTML 格式。
语法: string htmlspecialchars(string string);
传回值: 字串
函式种类: 资料处理
本函式将特殊字元转成 HTML 的字串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。
& (和) 转成 &
" (双引号) 转成 "
< (小于) 转成 <
> (大于) 转成 >
此函式只转换上面的特殊字元,并不会全部转换成 HTML 所定的 ASCII 转换。
使用范例
$new = htmlspecialchars("Test", ENT_QUOTES);
echo $new;
?>

php 处理数字超出10位数据库内容变成2147483647处理方法标题图片