本文阐述了默认的自动逃避的解决方案时,ThinkPHP提交表单。分享给你供你参考。具体方法如下:

首先,问题:

当窗体插入数据的ThinkPHP,单引号、双引号会被自动转移,这将自动添加斜线,但我不想加单引号和反斜杠双引号。

插入数据提交表单时在ThinkPHP,单双引号会被自动转换,自动添加到反斜杠,但我不想成为单、双引号和反斜杠,将数据提交表单时在ThinkPHP,单双引号会自动逃跑,自动添加以反斜杠,但我不想成为单、双引号和反斜杠,如:HDS生长激素j'g'h会自动逃跑:HDS GH J 一 'h.

注意,需要取消这种逃避的功能是必要的,而不是使用stripslashes()函数来删除这些反斜杠,就是没有官方的自动逃生功能是必要的。

两。解决方案:

在因特网上搜索解决方案:

1。在ThinkPHP目录,依次打开ThinkPHP 自由驱动 DB目录下,并修改了escapestring功能在dbmysql.class.php文件:

复制代码代码如下:公共功能escapestring($str){

我把星期修改双重转义双引号

如果(!get_magic_quotes_gpc()){

如果(美元-> _linkid){

Return mysql_real_escape_string ($str, $this->_linkID);

其他{ }

返回mysql_escape_string($str);

}

{人}

返回$ STR;

}

}

原有的功能:

复制代码代码如下:公共功能escapestring($str){

我把星期修改双重转义双引号

如果(美元-> _linkid){

返回mysql_real_escape_string($str,美元-> _linkid);

其他{ }

返回mysql_escape_string($str);

}

}

2。参与公共文件:

将代码复制如下:阻止双重转义

如果(get_magic_quotes_gpc()){

功能stripslashes_deep(美元值){

价值= is_array(价值)

array_map('stripslashes_deep ',美元的价值):

Stripslashes(价值);

返回值;

}

_post美元= array_map('stripslashes_deep,_post美元);

_get美元= array_map('stripslashes_deep,_get美元);

_cookie美元= array_map('stripslashes_deep,_cookie美元);

}

注意:如果服务器转身,然后ThinkPHP是重新配置,和错误会产生程序中的双逃逸。

改版后,网站程序后台入口是不是我的问题,看来你以后如果有使用ThinkPHP时遇到的,请注意,如果服务器打开的单或双引号的过滤,可能会发生冲突,ThinkPHP,所以加一层判断,可以很好的解决这个问题。

希望这篇文章能帮助你在ThinkPHP框架程序设计。