| 導購 | 订阅 | 在线投稿
分享
 
 
 

關于unserialize的問題

來源:互聯網  2008-12-22 08:10:23  評論

特的理念。』,

『uid』 => 1,

『nickname』 => 『土豆男』,

』site』 => 」,

』sitetype』 => 1,

』starttime』 => 1191074174,

『lasttime』 => 1191629784,

『totleviews』 => 14,

『totleblogs』 => 3

);

由于程序自動判斷了magic_quotes_gpc並將所有POST,GET的數據自動轉義(addslashes下),所以上面數組中的$message['sitename']在入庫之前就變成了土人\』部落,當進入mysql數據庫的保存的時候,保存的內容依然是 土人』部落(不要問我\』怎麽入mysql庫以後就變成了』 這是mysql的轉義特性,絕大多數數據庫也都是靠\來轉義的),這時候是沒有問題的。

當從數據庫中查出這個字段,然後unserialize的時候問題就來了,由于從數據庫中查出來的是沒有轉義的 土人』部落 這個值,于是在unserialize的時候就會失敗。

想了幾種解決方式:

第一,將此數組不再存在一個字段內,每個key獨立存在一個字段內,此種被排除,系統已經跑起來了,改起來麻煩的說。

第二,將數據在存入mysql之前對serialize的數組再addslashes下,這時候存入mysql的就是 土人\』部落 了,但是數據庫查出來unserialize之後的數據還是 土人\』部落 所以需要再次對此數組逐一stripslashes。

第三,放棄用戶體驗吧:) ,不允許』/」出現在,有了就自動替換掉

特的理念。』, 『uid』 => 1, 『nickname』 => 『土豆男』, 』site』 => 」, 』sitetype』 => 1, 』starttime』 => 1191074174, 『lasttime』 => 1191629784, 『totleviews』 => 14, 『totleblogs』 => 3 ); 由于程序自動判斷了magic_quotes_gpc並將所有POST,GET的數據自動轉義(addslashes下),所以上面數組中的$message['sitename']在入庫之前就變成了土人\』部落,當進入mysql數據庫的保存的時候,保存的內容依然是 土人』部落(不要問我\』怎麽入mysql庫以後就變成了』 這是mysql的轉義特性,絕大多數數據庫也都是靠\來轉義的),這時候是沒有問題的。 當從數據庫中查出這個字段,然後unserialize的時候問題就來了,由于從數據庫中查出來的是沒有轉義的 土人』部落 這個值,于是在unserialize的時候就會失敗。 想了幾種解決方式: 第一,將此數組不再存在一個字段內,每個key獨立存在一個字段內,此種被排除,系統已經跑起來了,改起來麻煩的說。 第二,將數據在存入mysql之前對serialize的數組再addslashes下,這時候存入mysql的就是 土人\』部落 了,但是數據庫查出來unserialize之後的數據還是 土人\』部落 所以需要再次對此數組逐一stripslashes。 第三,放棄用戶體驗吧:) ,不允許』/」出現在,有了就自動替換掉
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有