A-A+
PHP程序在引号前自动加反斜杠的原因与处理办法
php程序加反斜杠的原因就是要进行特殊字符的转义,我们知道,有一些特殊的字符,比如反斜框“/”,单引号“’”,双斜杠“//”,分号“;”等等这些特殊的符号,如果不进行转义,是没有办法直接进入到数据库的,而会直接产生错误,比如在直接 SQL 插入语句 插入双斜杠,而双斜杠在没有转义时,是 php 的注释符号,直接放到 SQL 中,还没插入,后面的语句都已经被注释掉了,还能不产生错误么。
如果我们自己要进行对特殊字符的操作还并不会产生太大的问题,如果有人对数据库进行恶意插入,那么就不仅仅是转义的问题了,数据库将会受到直接攻击。
所以我们在插入数据库之前一定要进行对数据的校验以及特殊字符的转义操作,也就是对其身份的验证,如果有问题就进行转义,这样即保证了特殊字符可以进行到数据库,还可以保证数据库的安全,那么下面来看一下 php 程序在引号前自动加反斜杠的处理办法,对其它特殊字符是一样的。
默认PHP 指令 magic_quotes_gpc是on的,这时候就可以用stripslashes() 函数删除自动添加的反斜杠。
用法就是:stripslashes($str),输出的结果就是去掉反斜杠的。
php实例代码如下:
$str=$_POST["str"];//读取str的内容赋值给$str变量
if( get_magic_quotes_gpc() ) //如果get_magic_quotes_gpc()是打开的
{
$str=stripslashes($str);//将字符串进行处理
}
回贴是种美德,支持下!