首頁 >後端開發 >php教程 >yii2 和 php (反)序列化踩坑

yii2 和 php (反)序列化踩坑

WBOY
WBOY原創
2016-07-29 08:52:031338瀏覽

yii2 記錄角色的注意事項

今天寫yii2 的RBAC 應用,打算簡單修改原有關於角色的記錄,就能切換到新的權限,然後出現了這麼個錯誤:

  • unserialize(): Error at offset 36 of 127 bytes

排除了權限結構(權限名稱、角色名稱、使用的authManager 類型)問題之後,我想是記錄角色的資料改得出問題了。原來記錄的權限資料如下:


  • O:30:”consolerbacProfileAccessRule”:3:{s:4:”name”;s:14:”viewOwnProfile”;s:9:”createdAt”;i:1460293714; s:9:”updatedAt”;i:1460293714;}

既然是php 的序列化數組,那麼原始的數組中,不論下標或值,序列化後均以值(字串)的形式出現,它們的下標都是自己的長度(所以也解釋了O:30 指的是consolerbacProfileAccessRule 這幾個字共有30個字母,而以數字表示的不需標出其長度,如i:1460293714;)。解決方法就很簡單了,主要是序列化格式的問題。修改後的權限記錄如下:


  • O:28:”consolerbacAdminAccessRule”:3:{s:4:”name”;s:10:”visitAdmin”;s:9:”createdAt”;i:1460293714; s:9:”updatedAt”;i:1460293714;}

寫代碼這事,也就是搞清楚到底裡面是個啥,再從工作步驟上一個個推敲出來囖~希望這些細碎的問題不會困擾到我們,畢竟琢磨這麼久,如果不出錯,指不定已經寫出更創新的程式碼來了。

')​​.addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了yii2 和 php (反)序列化踩坑,包括了yii,php方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn