phpcms phpsso不能同步退出怎么办-PHPCMS

资源魔 40 0

phpcms不克不及同步加入怎样办?phpcmsv9 phpsso无奈同步加入 ?

phpcmsv9自带了一个phpsso_server用于多站点同步登录,还能够整合ucenter。为了避免改动太多的代码,明天整合ECSHOP以及PHPCMS的时分仍是用了这个phpsso。

ECSHOP很不便,简略设置装备摆设了一下就能够以及ucenter通讯了。这个phpsso搞了半天不胜利以及ucenter通讯。通过几个小时的揣摩,终极仍是胜利让他们通讯了。

注册,登录,均可以同步,惟独正在phpcms中加入登录时ECSHOP不加入,反之确能够。

成绩呈现的缘由:

首页看到了PHPCMS的登出的代码外面有一句同步登出的语句:

$synlogoutstr = $this->client->ps_member_synlogout();

这个同步登出的代码是这样的

/** 
 * 同步加入 
 * @param string $uid 
 * @return string javascript用户同步加入js 
 */  
public function ps_member_synlogout() {  
    return $this->_ps_send("synlogout', array());  
}

留意这里_ps_send的第二个参数是一个空的数组

再看到phpsso_server中phpsso类的结构函数:

if(isset($_POST["data'])) {  
    parse_str(sys_auth($_POST['data'], 'DECODE', $this->applist[$this->appid]['authkey']), $this->data);  
              
    if(emptyempty($this->data) || !is_array($this->data)) {  
        exit('0');  
    }  
} else {  
    exit('0');  
}

这里对$this->data有一个判别,假如empty前往true就间接前往0没有会再执行上面的同步加入代码了。而下面一步能够看到挪用同步登出时传入的data参数恰好就是array(),empty当然会前往true。于是挪用同步加入就正在这里终止。

成绩的处理方法:

晓得了缘由要想处理就很容易了,次要有两种。

保险一点的办法是到ps_member_synlogout外面给阿谁空的数组随意添加一个元素。

第二种就是去掉empty($this->data)这个判别。

PHP中文网,年夜量的收费PHPCMS教程,欢送正在线学习!

以上就是phpcms phpsso不克不及同步加入怎样办的具体内容,更多请存眷资源魔其它相干文章!

标签: phpcms phpcms教程 phpcms技巧 php问题解决

抱歉,评论功能暂时关闭!