您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
discuz UCenter对接常见问题解答
香巧2025-07-07Discuz教程已有人查阅
导读1、登录用户需激活问题 discuz/api/uc.php问题原因:与UCenter用户对接,网站用户首次登录论坛,需要先注册用户到UCenter,api写入数据至Ucenter用户表,数据没有立即发送到discuz用户表
1、登录用户需激活问题 discuz/api/uc.php
2、修改密码能及时同步问题
discuz修改密码后将修改密码和email的信息通过ucclient传递给ucenter,ucenter在收到消息后将消息存入cdb_uc_notelist表,而后从cdb_uc_notelist取出一条close为0的记录,逐一向各个应用发送修改密码的通知。当用户登录ucenter才会向应用发送指令,
解决方法:
uc_client\client.php文件中的
/***
* 激活功能
*/
function synlogin($get, $post) {
global $_G;
if(!API_SYNLOGIN) {
return API_RETURN_FORBIDDEN;
}
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$cookietime = 31536000;
$uid = intval($get['uid']);
$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");
if($member = DB::fetch($query)) {
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}else{
//用户不存在 从UC里取用户
$username = $get['username'];
$query = DB::query("SELECT uid,username,password,email FROM ".DB::table('ucenter_members')." WHERE username='$username'");
$member = DB::fetch($query);
$password = $member['password'];
$email = $member['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$userdata = array(
'uid' => $uid,
'username' => $username,
'password' => $password,
'email' => $email,
'adminid' => 0,
'groupid' => 10,
'regdate' => $time,
'credits' => 0,
'timeoffset' => 9999
);
DB::insert('common_member', $userdata);
$status_data = array(
'uid' => $uid,
'regip' => $ip,
'lastip' => $ip,
'lastvisit' => $time,
'lastactivity' => $time,
'lastpost' => 0,
'lastsendmail' => 0,
);
DB::insert('common_member_status', $status_data);
DB::insert('common_member_profile', array('uid' => $uid));
DB::insert('common_member_field_forum', array('uid' => $uid));
DB::insert('common_member_field_home', array('uid' => $uid));
DB::insert('common_member_count', array('uid' => $uid));
DB::query("UPDATE ".DB::table('common_setting')." SET svalue='$username' WHERE skey='lastmember'");
$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");
if($member = DB::fetch($query)) {
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}
}
}
问题原因:与UCenter用户对接,网站用户首次登录论坛,需要先注册用户到UCenter,api写入数据至Ucenter用户表,数据没有立即发送到discuz用户表,当请求discuz登录时,discuz会要求激话,而导致直接登录失败。解决方式:在用户请求登录时(synlogin),用户不在了,则请求ucenter用户表查询用户,再写入到discuz2、修改密码能及时同步问题
discuz修改密码后将修改密码和email的信息通过ucclient传递给ucenter,ucenter在收到消息后将消息存入cdb_uc_notelist表,而后从cdb_uc_notelist取出一条close为0的记录,逐一向各个应用发送修改密码的通知。当用户登录ucenter才会向应用发送指令,
解决方法:
uc_client\client.php文件中的
function uc_user_edit($username, $oldpw, $newpw, $email, $ignoreoldpw = 0, $questionid = '', $answer = '') {
return call_user_func(UC_API_FUNC, 'user', 'edit', array('username'=>$username, 'oldpw'=>$oldpw, 'newpw'=>$newpw, 'email'=>$email, 'ignoreoldpw'=>$ignoreoldpw, 'questionid'=>$questionid, 'answer'=>$answer));
}
//改为
function uc_user_edit($username, $oldpw, $newpw, $email, $ignoreoldpw = 0, $questionid = '', $answer = '') {
return call_user_func('uc_api_post', 'user', 'edit', array('username'=>$username, 'oldpw'=>$oldpw, 'newpw'=>$newpw, 'email'=>$email, 'ignoreoldpw'=>$ignoreoldpw, 'questionid'=>$questionid, 'answer'=>$answer));
}
uc_server\control\user.php文件中的 onedit()方法中的
01.$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');
//改为
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.urlencode($newpw).'&email='.urlencode($email));
uc_server\model\note.php文件中的send()方法中注释如下两行:
$closenote = FALSE;
break;
本文标签:
很赞哦! ()
相关教程
图文教程
Discuz!NT关于配置文件路径相关的处理方法
本篇主要涉及Discuz!NT中的关于配置文件路径相关的处理方法.Discuz!NT2.0的安装解压,现在 D:\Discuz\ 文件夹中有下图内容.这便是Discuz!NT2.0的源代码了.
Discuz 7.2版本SQL注入漏洞
实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!Discuz 7.2 版本SQL注入漏洞的利用
Discuz集成第三方统计工具如百度统计的方法
将Discuz与百度统计集成,意味着在你的论坛页面中嵌入百度统计的代码,从而能够跟踪用户的访问行为。这种集成可以帮助你了解用户如何使用你的论坛,哪些页面欢迎,以及用户的来源和路径。
Discuz中常用的编辑器代码整理
首先,后台帖子管理 discuz 代码 开启 可用然后,论坛管理论坛板块编辑帖子选项中允许使用 Discuz! 代码: 选择是1.[ b]文字:在文字的位置可以任意加入您需要的字符,显示为粗体效果。
相关源码
-
(自适应)摄像头安防电子设备pbootcms源码下载本模板基于PbootCMS系统开发,为安防电子设备企业设计,特别适合监控摄像头、安防系统等产品的展示。采用响应式技术,确保各类设备参数和功能在不同终端上都能清晰呈现。查看源码 -
(自适应)驾校培训学车活动免费pbootcms源码下载本模板基于PbootCMS内核开发,为驾校培训行业打造,具备完善的招生展示、课程预约、教练团队展示等功能模块。响应式设计适配各类移动终端,数据实时同步管理,助您高效开展线上业务。查看源码 -
自适应html5二极管LED灯具灯饰类企业网网站模板该PbootCMS内核开发的响应式模板专为LED照明、灯具制造类企业设计,通过HTML5技术实现手机与PC端自适应显示,确保跨设备访问体验一致。企业可快速替换图文内容适配其他工业领域查看源码 -
帝国cms7.5女性护肤搭配美妆潮流网站源码带数据4.5G本模板专为女性美容护肤行业设计,提供美容护肤、发型设计、女性健康、时尚化妆、娱乐新闻、服饰搭配等女性潮流资讯内容展示。采用帝国CMS7.5开发,同步生成电脑端和手机端,满足用户对美容时尚信息的获取需求。查看源码 -
帝国cms7.5文库范文/付费下载/复制付费/带支付源码免费下载本模板为文库、文档分享、知识付费类平台设计,提供完整的内容变现解决方案。系统支持多种内容展示与付费模式,满足不同场景下的内容价值转化需求,帮助平台实现内容资源的有效管理和商业化运营。查看源码 -
(PC+WAP)蓝色玻璃纤维制品环保设备营销型pbootcms模板源码下载这是一款针对玻璃纤维行业特点设计的网站模板,采用蓝色系配色方案,体现工业感和环保理念。模板包含产品中心、应用案例、技术支持和新闻动态等核心模块,能够全面展示玻璃纤维制品的技术参数和应用场景。查看源码
| 分享笔记 (共有 篇笔记) |