UCenter是Comsenz旗下各个产品之间信息直接传递的一个桥梁,通过UCenter 站长可以无缝整合Comsenz系列产品,实现用户的一站式登录以及社区其他数据的交互,但很多站长在使用它时会碰到一些问题了,下文就ucenter整理tipask问答系统与discuz单项同步问题解决方法.
整合了一下论坛discuz+问答系统tipask,按照官方后台操作配置了ucenter,实现的会员数据同步的功能,后来测试发现,只有从tipask(登录、注册)可以同步到discuz.
从discuz登录确不能同步到tipask上面,于是在网上找了很多资料,也有很多网友出现了跟我一样的问题,都没有解决.
实在没办法了,只能一点点的解读代码,发现uc_client下的client.php文件有这样一段代码:
- function uc_user_synlogin($uid) {
- $uid = intval($uid);
- if(@include UC_ROOT.'./data/cache/apps.php') {
- if(count($_CACHE['apps']) > 1) {
- $return = uc_api_post('user', 'synlogin', array('uid'=>$uid));
- } else { //开源软件:Vevb.com
- $return = '';
- }
- }
- return $return;
- }
上面意思是只有应用数大于一才会执行其他同步操作,于是去找了一下/data/cache/apps.php这个文件发现了问题;
默认配置好tipask+discuz的时候,这个文件并没有增加应用数,以前默认只有一个,下面那个应用是我手动加上了,代码如下:
- <?php
- $_CACHE['apps'] = array (
- 1 =>
- array (
- 'appid' => '1',
- 'type' => 'DISCUZX',
- 'name' => 'Discuz! Board',
- 'url' => 'http://127.0.0.12',
- 'ip' => '',
- 'viewprourl' => '',
- 'apifilename' => 'uc.php',
- 'charset' => '',
- 'dbcharset' => '',
- 'synlogin' => '1',
- 'recvnote' => '1',
- 'extra' => false,
- 'tagtemplates' => '',
- 'allowips' => '',
- ),
- 2 =>
- array (
- 'appid' => '2',
- 'type' => 'OTHER',
- 'name' => 'ask',
- 'url' => 'http://127.0.0.12/ask',
- 'ip' => '',
- 'viewprourl' => '',
- 'apifilename' => 'uc.php',
- 'charset' => '',
- 'dbcharset' => '',
- 'synlogin' => '1',
- 'recvnote' => '1',
- 'extra' => false,
- 'tagtemplates' => '',
- 'allowips' => '',
- ),
- );
- ?>
上面的相关配置需要根据实际配置修改,这样问题就解决了.
新闻热点
疑难解答