快捷搜索:

关于unserialize的问题

特的理念。’,

‘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。

第三,放弃用户体验吧:) ,不容许’/”呈现在,有了就自动调换掉落

您可能还会对下面的文章感兴趣: