您的位置:首页 > 编程语言 > PHP开发

ShopEx 4.8与PHPWind 6.3.2整合后无法同步登录问题

2008-09-07 02:18 393 查看
近几天在整合ShopEx 4.8与PHPWind 6.3.2时,发现整合好后,立刻注册帐号,能实现同步登录,但是如果使用一个小时以前注册的帐号去登录,便会出现错误,提示"数据检验失败,无效数据!expired_error".

为什么会出现此错误?想不通,于是去查看源代码...

PHPWind中passport_client.php

if($timestamp-$userdb['time']>3600){

Showmsg('数据检验失败,无效数据!expired_error');

}

其中$timestamp为全局变量,在global.php中定义为$timestamp = time();,是当前脚本运行的时间戳.

$userdb['time']为ShopEx中传过来的加密变量解码后的时间戳,

此条if语句,就是判断这两个时间戳是否大于3600秒,如果是,就提示错误.

再看ShopEx中PHPWind插件passport.phpwind.php

$aMember = $oMember->getFieldById($userId);

......

$member = array(

'username' => $username,

'password' => $aMember['password'],

'email' => $aMember['email'],

'time' => $aMember['regtime']

);

$aMember这里应该是一个存有对应$userId注册信息的数组,看到regtime大家应该知道问题所在了.

这里$member['time']终始等于$userId对应的注册时间,只要注册时间超过一个小时(3600秒)的用户,当然就不能登录了.

修改方法大家到此也应该明白了,把'time'=$aMember['regtime']改成'time'=time(),我想插件设计人员的初衷也应该是这样的.

在论坛上提交了BUG的报告,现在补丁已经发布了,论坛中可找到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: