国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

ThinkPHP提交表單時默認自動轉義的解決方法

2024-05-04 23:28:00
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了ThinkPHP提交表單時默認自動轉義的解決方法,可解決針對單引號和雙引號的自動轉移問題,提供了兩種解決方法供大家對比選擇,具有一定的實用價值,需要的朋友可以參考下
 
 

本文實例講述了ThinkPHP提交表單時默認自動轉義的解決方法。分享給大家供大家參考。具體方法如下:

一、問題:

在ThinkPHP中提交表單插入數據的時候,單引號和雙引號是會被自動轉義的,就是會自動的加上反斜線,但是我不想給單引號和雙引號加上反斜線.

在ThinkPHP中提交表單插入數據的時候,單引號和雙引號是會被自動轉義的,就是會自動的加上反斜線,但是我不想給單引號和雙引號加上反斜線,在ThinkPHP中提交表單插入數據的時候,單引號和雙引號是會被自動轉義的,就是會自動的加上反斜線,但是我不想給單引號和雙引號加上反斜線,如:hds"gh"j'g'h 會被自動轉義為:hds/"gh/"j/'g/'h.

請注意需要的是取消這個轉義的功能,而不是使用stripslashes() 函數刪除這些反斜杠,即不需要官方的這個自動轉義的功能.

二、解決方法:

在網上搜索到解決方法:

1、在thinkphp目錄下,依次打開 ThinkPHP/Lib/Driver/Db 目錄,并在dbmysql.class.php 這個文件中把 escapeString 函數的函數修改成:

復制代碼代碼如下:
public function escapeString($str) {  
//修改 周蠻子 放雙引號雙重轉義  
if (!get_magic_quotes_gpc()){  
if($this->_linkID) {  
return mysql_real_escape_string($str,$this->_linkID);  
}else{  
return mysql_escape_string($str);  
}  
} else {  
return $str;  
}  
}

原函數:
復制代碼代碼如下:
public function escapeString($str) {  
//修改 周蠻子 放雙引號雙重轉義  
if($this->_linkID) {  
return mysql_real_escape_string($str,$this->_linkID);  
}else{  
return mysql_escape_string($str);  
}  
}

2、在公共文件中加入:
復制代碼代碼如下:
//防止雙重轉義  
if (get_magic_quotes_gpc()) {  
function stripslashes_deep($value){  
$value = is_array($value) ?  
array_map('stripslashes_deep', $value) :  
stripslashes($value);  
return $value;  
}  
$_POST = array_map('stripslashes_deep', $_POST);  
$_GET = array_map('stripslashes_deep', $_GET);  
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);  
}

注:如果服務器開了轉義,那么就經過thinkphp再次轉義后,就會在程序中產生雙重轉義的Bug

 

經過修改后,我的網站程序后臺錄入就沒什么問題了,看來大家以后如果有碰到使用Thinkphp時,注意如果服務器開啟了過濾單引號或雙引號的,可能就會跟ThinkPHP起沖突的了,所以加一層判斷,就可以很好的解決這個問題了.

希望本文所述對大家的ThinkPHP框架程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜阳市| 冀州市| 华安县| 庆城县| 额济纳旗| 洱源县| 芜湖县| 千阳县| 佛教| 沿河| 台山市| 扬州市| 遂昌县| 新晃| 潼关县| 宁安市| 个旧市| 沽源县| 吉林省| 米泉市| 泰兴市| 乌鲁木齐市| 定安县| 宿迁市| 阳江市| 吉安市| 晋宁县| 红安县| 嘉峪关市| 特克斯县| 武山县| 温州市| 绩溪县| 澄迈县| 长寿区| 嘉鱼县| 黄大仙区| 纳雍县| 九江县| 修文县| 尼玛县|