发布于 2014-12-07 09:54:47 | 315 次阅读 | 评论: 0 | 来源: 网友投递
ThinkPHP开源PHP框架
ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP可以支持windows/Unix/Liunx等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库
本文为大家讲解的是ThinkPHP提交表单时默认自动转义的方法,可解决针对单引号和双引号的自动转移问题,提供了两种解决方法供大家对比选择,需要的朋友可以参考下
一、问题:
在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线.
在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线,在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线,如:hds"gh"j'g'h 会被自动转义为:hds"gh"j'g'h.
请注意需要的是取消这个转义的功能,而不是使用stripslashes() 函数删除这些反斜杠,即不需要官方的这个自动转义的功能.
二、解决方法:
1、在thinkphp目录下,依次打开 ThinkPHPLibDriverDb 目录,并在dbmysql.class.php 这个文件中把 escapeString 函数的函数修改成:
原函数:
2、在公共文件中加入:
注:如果服务器开了转义,那么就经过thinkphp再次转义后,就会在程序中产生双重转义的Bug
经过修改后,我的网站程序后台录入就没什么问题了,看来大家以后如果有碰到使用Thinkphp时,注意如果服务器开启了过滤单引号或双引号的,可能就会跟ThinkPHP起冲突的了,所以加一层判断,就可以很好的解决这个问题了.