织梦5.7-utf8 + DZX3.1-utf8 + UCenter1.6整合实现网站和论坛会员互通

织梦5.7-utf8 + DZX3.1-utf8 + UCenter1.6整合实现网站和论坛会员互通,并且双向同步登陆关键点:


1、实现通讯成功比较简单,UC服务端地址,IP等配置正确就一般都可以了。


2、实现会员登陆、注销双向同步
   
   通讯成功后还不能实现双向同步,必须进行以下操作
   1、进入Ucenter管理中心,应用管理,然后编辑任意一个应用。比如DZ,复制“通信密钥”,返回,粘贴到应用DEDE
      的通信密钥里面,保存
   2、打开DZ安装目录下的CONFIG目录中的config_ucenter_default.php,修改第22行
      define('UC_KEY', '把你刚才复制的通信密钥粘帖到这里'); 保存。
   3、打开DEDE目录中include/common.inc.php,找到底部的UC配置,同样修改通信密钥为刚才复制的密钥


   以上三步主要目的是保证DEDE,DZ使用相同的密钥,以实现同步通信。


   完成以上三步以后一般情况下都可以正常登陆了。但是我这里出了一个问题,会员从DEDE登陆后可以成功进入BBS,
   也能同步退出,但从BBS登陆就不能进入DEDE,只实现了单向。
   
   解决过程:
   网上找了一检测代码,此代码直接模拟登陆完成后登陆程序通知UC进行同步登陆的过程,正常情况下应输出一个到
   UC_Server的调用URL。
   <?php
    error_reporting('E_ALL');
    include_once "config/config_global.php";
    include_once "config/config_ucenter.php";
    include_once "uc_client/client.php";
    print_r($_COOKIE);
    echo '_AAA_<br/>';
    echo uc_user_synlogin(1);
   ?>
   复制保存为test.php到BBS根目录,浏览器访问,发现并没有输出。
   进入DZ的uc_client/client.php,找到uc_user_synlogin函数,
   函数内有一段代码
   if(@include UC_ROOT.'./data/cache/apps.php') {
if(count($_CACHE['apps']) > 1) {
$return = uc_api_post('user', 'synlogin', array('uid'=>$uid));
} else {
$return = '';
}
}
   发现count($_CACHE['apps']) > 1才会有输出,于是打开uc_client下的data/cache/apps.php,发现应用列表
   只有一个DZ,并没有DEDE,所以输出为空,当然DEDE就不能实现同步登陆。不知道这个缓存文件应该怎么更新。
   最后解决办法:
   复制uc_server/data/cache/apps.php 文件到 DZ的 uc_client/data/cache/apps.php
   至此,DZ与DEDE的会员双向同步登陆退出完美解决。
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值