Heim >Backend-Entwicklung >PHP-Tutorial >关于unserialize的问题_PHP教程

关于unserialize的问题_PHP教程

WBOY
WBOYOriginal
2016-07-13 17:36:33908Durchsuche

特的理念。’,
‘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。
第三,放弃用户体验吧:) ,不允许’/”出现在,有了就自动替换掉

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508223.htmlTechArticle特的理念。’, ‘uid’ = 1, ‘nickname’ = ‘土豆男’, ’site’ = ”, ’sitetype’ = 1, ’starttime’ = 1191074174, ‘lasttime’ = 1191629784, ‘totleviews’...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn