最新国产好看的视频,伊人天堂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)論

山阳县| 云霄县| 莒南县| 临漳县| 宜城市| 万山特区| 赤水市| 澄江县| 华安县| 安国市| 新营市| 南华县| 田林县| 太仆寺旗| 获嘉县| 怀柔区| 河东区| 馆陶县| 二连浩特市| 逊克县| 玉田县| 辽阳县| 安泽县| 涡阳县| 土默特左旗| 阳原县| 紫云| 扎鲁特旗| 阿坝县| 广水市| 竹山县| 海淀区| 衡阳县| 乌拉特前旗| 霸州市| 且末县| 昌都县| 鹤山市| 阳山县| 南靖县| 宁远县|