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

首頁 > 開發 > ThinkPHP > 正文

在ThinkPHP中提交表單插入數據的時候,默認自動轉義問題

2024-09-09 15:19:34
字體:
來源:轉載
供稿:網友

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

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

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

所以在網上搜索到解決方法:

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

  1. public function escapeString($str) { 
  2. //修改 周蠻子 放雙引號雙重轉義 
  3. if (!get_magic_quotes_gpc()){ 
  4. if($this->_linkID) { 
  5. return mysql_real_escape_string($str,$this->_linkID); 
  6. }else
  7. return mysql_escape_string($str); 
  8. else { 
  9. return $str

原函數:

  1. public function escapeString($str) { 
  2. //修改 周蠻子 放雙引號雙重轉義 
  3. if($this->_linkID) { 
  4. return mysql_real_escape_string($str,$this->_linkID); 
  5. }else
  6. return mysql_escape_string($str); 

2,在公共文件中加入:

  1. //防止雙重轉義 
  2. /*if (get_magic_quotes_gpc()) { 
  3. function stripslashes_deep($value){ 
  4. $value = is_array($value) ? 
  5. array_map('stripslashes_deep', $value) : 
  6. stripslashes($value); 
  7. return $value; 
  8. } 
  9. $_POST = array_map('stripslashes_deep', $_POST); 
  10. $_GET = array_map('stripslashes_deep', $_GET); 
  11. $_COOKIE = array_map('stripslashes_deep', $_COOKIE); 
  12. }*/ 

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 淳安县| 长治市| 观塘区| 迁西县| 师宗县| 梅河口市| 香格里拉县| 沈丘县| 当阳市| 府谷县| 荔浦县| 方山县| 明星| 唐河县| 营口市| 遂昌县| 岚皋县| 宁强县| 德惠市| 琼结县| 色达县| 浦东新区| 五莲县| 江阴市| 务川| 诸暨市| 土默特右旗| 吉木萨尔县| 中方县| 双辽市| 丰原市| 射阳县| 当阳市| 福清市| 湖北省| 淮滨县| 万年县| 香河县| 宁明县| 商都县| 浪卡子县|