最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ThinkPHP入庫出現(xiàn)兩次反斜線轉(zhuǎn)義及數(shù)據(jù)庫類轉(zhuǎn)義的解決方法

 更新時(shí)間:2014年11月04日 16:01:51   投稿:shichen2014  
這篇文章主要介紹了ThinkPHP入庫出現(xiàn)兩次反斜線轉(zhuǎn)義及數(shù)據(jù)庫類轉(zhuǎn)義的解決方法,主要通過針對(duì)magic_quotes_gpc開啟的情況下進(jìn)行檢查與判斷轉(zhuǎn)義來實(shí)現(xiàn),需要的朋友可以參考下

本文實(shí)例講述了ThinkPHP入庫出現(xiàn)兩次反斜線轉(zhuǎn)義及數(shù)據(jù)庫類轉(zhuǎn)義的解決方法。分享給大家供大家參考。具體方法如下:

這種情況是在 magic_quotes_gpc 開啟的情況下發(fā)生的。原因是thinkphp在入庫的時(shí)候沒有判斷 magic_quotes_gpc 是否開啟,不管三七二十一地進(jìn)行了轉(zhuǎn)義處理。
解決辦法是在入口文件增加如下代碼則可:

復(fù)制代碼 代碼如下:
if (!get_magic_quotes_gpc()) { 
    function addslashes_deep($value) {  
        $value = is_array($value) ? 
            array_map('addslashes_deep', $value) : 
            addslashes($value); 
        return $value; 
   } 
   $_POST = array_map('addslashes_deep', $_POST); 
   $_GET = array_map('addslashes_deep', $_GET); 
   $_COOKIE = array_map('addslashes_deep', $_COOKIE); 
   $_REQUEST = array_map('addslashes_deep', $_REQUEST); 
}

有人這樣修改DbMysql.class.php中的轉(zhuǎn)義函數(shù):

復(fù)制代碼 代碼如下:
public function escape_string($str) { 
if (get_magic_quotes_gpc()) { 
return $str; 

if($this->_linkID) { 
return mysql_real_escape_string($str,$this->_linkID);
}else{ 
return mysql_escape_string($str); 

}
 

其實(shí)這種方法并不可??!因?yàn)槿绻g(shù)函數(shù)on時(shí),而$str又不是post或get得來(比如讀取文本、數(shù)據(jù)庫),它還是沒加反斜線。
所以我不管$str是否已經(jīng)被轉(zhuǎn)義,一律先去除轉(zhuǎn)義,然后再加上轉(zhuǎn)義。這樣就避免了二次轉(zhuǎn)義,也避免了遺漏轉(zhuǎn)義。
下面是我的修改方法:

復(fù)制代碼 代碼如下:
public function escape_string($str) { 
$str = stripslashes($str); 
if($this->_linkID) { 
return mysql_real_escape_string($str,$this->_linkID); 
}else{ 
return mysql_escape_string($str); 

}

希望本文所述對(duì)大家的ThinkPHP框架程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

江阴市| 伽师县| 松潘县| 南汇区| 亳州市| 洮南市| 山阳县| 吉首市| 龙游县| 吉隆县| 周宁县| 德江县| 法库县| 湘阴县| 伊宁县| 谷城县| 革吉县| 古田县| 确山县| 西青区| 高唐县| 昆明市| 榆社县| 建宁县| 常德市| 铜梁县| 临夏市| 武川县| 宾阳县| 梓潼县| 防城港市| 康保县| 从化市| 视频| 湛江市| 张家港市| 金堂县| 玉山县| 陈巴尔虎旗| 吴忠市| 武乡县|