最近在做uchome二次开发的时候遇到一个小问题:强制登录。
什么是强制登录,即,我们在任何 时候,只要点击登录,就显示登录框,同时清除原来所有的登录状态信息。为什么呢,是因为担心在同步登录的时候,如果有某个频道没有同步成功,在点击登录的时候,会显示当前用户已登录,而不会触发登录了。所以必须强制清除登录状态。
于是根据这个需求,简单的在do_login里进行了cleancookie处理。然后而是加了一句:unset($_SGLOBAL['supe_uid']);
结果,几个FORM框里生成的formhash()值都不一样了。导致直接在提交的时候说来路不正常。
检查了很久(不过这次不是我解决的),发现居然是那个unset($_SGLOBAL['supe_uid']);导致的,但是看了formhash这个函数,里面是针对$_SGLOBAL['formhash']变量,没有和supe_uid有关。。。
所以感觉有点妖异。包括把$_SGLOBAL['supe_uid']设为0,设为null都没有关系,只是unset后就出错了。。。
又是一个没有时间解决的问题,先知道解决方法就成了。。。。记录一下。