關於unserialize的問題_PHP教程

來源:互聯網
上載者:User

特的理念。’,
‘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。
第三,放棄使用者體驗吧:) ,不允許’/”出現在,有了就自動替換掉

http://www.bkjia.com/PHPjc/508223.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508223.htmlTechArticle特的理念。’, ‘uid’ = 1, ‘nickname’ = ‘馬鈴薯男’, ’site’ = ”, ’sitetype’ = 1, ’starttime’ = 1191074174, ‘lasttime’ = 1191629784, ‘totleviews’...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.