|
在普通的PHP中,关于POST,自动转义get_magic_quotes_gpc()函数,手册是这样描述的
<?php
echo get_magic_quotes_gpc(); // 1
echo $_POST['lastname']; // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly
if (!get_magic_quotes_gpc()) {
$lastname = addslashes($_POST['lastname']);
} else {
$lastname = $_POST['lastname'];
}
echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>
当然和你的php.ini中配置有关,具体如下:
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
而在使用CI时,如果设置上边参数为ON的话,CI反而会将已转义的再进行一次反向操作
具体如下代码:
在CI的system/libraries/input.php页面中,
在第173行中,使用stripslashes()函数将转义全部去掉了,就是去掉了'\'符号
这样的话,就和我们平时用的正好相反了
假如我们在php.ini中设置magic_quotes_gpc为ON,在使用CI的时候,缺没有转义
就写到这,好久没发帖了,只是给新人一点点提示,注意一下就可以了
好久没发帖了,呵呵
[ 本帖最后由 gwpxjb 于 2008-12-31 16:57 编辑 ] |
|