php过滤字符问题

JavaScript021

php过滤字符问题,第1张

用js过滤非法字符是不安全的,js是客户端技术,可以本地绕过

如果数据是入库的,最好在服务器端在过滤一次,防止恶意字符进入数据库,形成注入,可以这样过滤

<?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)

感觉这个还是不错的,推荐用这个..