Maison  >  Article  >  développement back-end  >  yii2 和 php (反)序列化踩坑

yii2 和 php (反)序列化踩坑

WBOY
WBOYoriginal
2016-07-29 08:52:031302parcourir

yii2 记录角色的注意事项

今天写 yii2 的 RBAC 应用,打算简单修改原有关于角色的记录,就能切换到新的权限,然后出现了这么个错误:

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

排除了权限结构(权限名称、角色名称、使用的 authManager 类型)问题之后,我想是记录角色的数据改得出问题了。原来记录的权限数据如下:


  • O:30:”console\rbac\ProfileAccessRule”:3:{s:4:”name”;s:14:”viewOwnProfile”;s:9:”createdAt”;i:1460293714;s:9:”updatedAt”;i:1460293714;}

既然是 php 的序列化数组,那么原始的数组中,不论下标或值,序列化后均以值(字符串)的形式出现,它们的下标都是自己的长度(所以也解释了O:30 指的是 console\rbac\ProfileAccessRule 这几个词共有30个字母,而以数字表示的不需标出其长度,如 i:1460293714;)。解决方法就很简单了,主要是序列化格式的问题。修改后的权限记录如下:


  • O:28:”console\rbac\AdminAccessRule”: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教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn