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问题解决
抱歉,评论功能暂时关闭!