服务器端用 mysql

xiaoxiao2026-08-28  57

服务器端用 mysql_real_escape_string 清洁客户端数据 在服务器端清洁客户端数据是每个程序员经常要做的工作,虽然我们通常会在客户端添加 Javascript 验证,但是,恶意用户很容易自己构造 FORM 提交数据以绕过客户端验证,另外,在客户端禁用 Javascript 时验证同样不能起到作用。因此,服务器端清洁数据必不可少,本文介绍的是用 mysql_real_escape_string 清洁数据的方法,经过清洁的数据可以直接插入到数据库中。 由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。 PHP: 1 <?php 2 // 说明:用 array_map() 调用 mysql_real_escape_string 清理数组 3 // 整理:http://www.codebit.cn 4 function mysqlClean($data) 5 { 6 return (is_array($data))?array_map('mysqlClean', $data):mysql_real_escape_string($data); 7 } 8 ?> 调用方法 PHP: 1 <?php 2 $conn = mysql_connect('localhost', 'user', 'pass'); 3 4 5 $_POST = mysqlClean($_POST); 6 ?> 经过清洁的数据可以直接插入数据库。 注意!mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是: mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑。 由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。 在知道数据类型为字符串时,我们可以在清洁数据的同时限制字符串长度。此方法来自 David Lane, Hugh E. Williams《Web Database Application with PHP and MySQL 》(O'Reilly, May 2004) PHP: 1 <?php 2 // 说明:用 mysql_real_escape_string 清洁并限制字符长度 3 // 整理:http://www.codebit.cn 4 function mysqlClean($array, $index, $maxlength) 5 { 6 if (isset($array[$index])) 7 { 8 $input = substr($array["{$index}"], 0, $maxlength); 9 $input = mysql_real_escape_string($input); 10 return ($input); 11 } 12 return NULL; 13 } 14 ?> 调用方法: PHP: 1 <?php 2 $conn = mysql_connect('localhost', 'user', 'pass'); 3 4 if(isset($_POST['username'])) 5 { 6 $_POST['username'] = mysqlClean($_POST, 'username', 20); 7 echo $_POST['username']; 8 } 9 ?> 将 $_POST 数组中的 'username' 清洁并截取前20位字符。 摘自:http://www.cnblogs.com/labs
转载请注明原文地址: https://www.6miu.com/read-5051976.html

最新回复(0)