如果数据是入库的,最好在服务器端在过滤一次,防止恶意字符进入数据库,形成注入,可以这样过滤
<?php
if (isset($_GET['price'])){
(is_numeric($_GET['price']) and is_int($_GET['price']+0))?$price=$_GET['price']:die('非int类型,请重新输入')
echo "价格为 $price"
}
?>
<form action="">
<input type="text" name="price">
<input type="submit" value="send">
</form>
不过int型范围是2147483647,超出后即使是整数,也被解释为float
string mysql_real_escape_string ( string unescaped_string [, resource link_identifier])
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
注: mysql_real_escape_string() 并不转义 % 和 _。
例子 1. mysql_real_escape_string() 例子
<?php
$item = "Zak's and Derick's Laptop"
$escaped_item = mysql_real_escape_string($item)
printf ("Escaped string: %s\n", $escaped_item)
?>
以上例子将产生如下输出:
Escaped string: Zak\'s and Derick\'s Laptop
你是想过滤掉还是想按照字面输出?算了,都告诉你吧
1.过滤掉 strip_tags($content) 这个是所有标签,都被去掉了
2.按照原样显示
htmlspecialchars($content)
感觉这个还是不错的,推荐用这个..