php过滤字符问题

JavaScript022

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、首先我们创建一个test的php文件。

2、在里面添加html需要的代码。

3、我们在里面添加js脚本,定义一个a变量100。

4、现在我们在底部添加php中代码,其中定义一个b变量默认为0,准备用它来接收js中的a的值。

5、接着我们在script里面使用writeln输出a,并赋值给php中的变量b,在最后echo输出查看b中的值。

6、在浏览器中打开这个php文件会直接echo出js中变量a的数值为100,到此php获得js中的变量完成。