入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

ucenter及discuz整合,双向同步注册及登录注意事项2016年9月13

创建时间:2016-09-13 投稿人: 浏览次数:2999

如果遇到接口调试问题,可以参考我的其它教程.

http://blog.csdn.net/viqecel/article/details/52492081

http://blog.csdn.net/viqecel/article/details/52485774


后台修改方法


注意


 所有涉及文件修改的,不管什么结尾的,只要是文本类的文件,都需要用专业的编程软件打开.比如notepad++ 工具.
 否则,会导致网站错位,乱码等,因为会产生bom头问题.具体可以搜索下






一,先进论坛后台,站长,ucenter设置,选择允许直接激活
二,进ucenter ,应用管理,新建立应用.类型选其它,名称填book,主url填你的网站主页网址.比如http://123.com
通信密钥随便填一个密码,最下面同步登录填是.其它不用填,保存.


三,修改要整合的第三方应用网站的数据库配置.方便从第三方网站上,同步插入会员数据到ucenter中.
有些可能需要在后台配置,或直接修改文件,要具体分析.
这个文件里面的内容.其实就是ucenter后台,book应用,编辑后,拉到最下面,看到配置信息,把他全部复制后,填在uc.php中的对应位置,保存,上传,替换原文件即可..


四,去论坛的安装目录中,找uc_client/data/cache/apps.php 打开,里面有你uc后台的所有应用,如果没有.说明不正常.把里面所有内容.复制,填到book网站对应的uc_clientdatacacheapps.php中,保存上传
这两个文件要一致,才能同步.




五,实现论坛上注册会员后,直接在所有应用中自动登录,而不必登录,再登录一次才同步.
方法
修改论坛目录中对应的,uc_clientmodeluser.php 中的function add_user 函数


把大约131行的


$salt = substr(uniqid(rand()), -6);




整体替换为


$salt = substr(uniqid(rand()), -6);
$password2 = md5($password);

然后,在return $uid;
 
 
 的上面增加下面这段代码
 
 
 
$time2=date("Y-m-d H:i:s",$this->base->time);
$this->db->query("INSERT INTO admin_book.hbdx_users  SET uc_id="$uid",user_mail="$email",user_name="$username",user_group="同步注册会员",user_displayname="$username",registerdate="$time2",user_pass="$password2",user_integration="10"");






/////注意,其中,admin_book 表示book网站对应的数据库名,hbdx_users 表示表名,可以相应修改为正在使用的.


六,同时,修改论坛目录中的.
sourceclassclass_member.php


找到大约926行的








   $extra = array(
        "showid" => "succeedmessage",
        "extrajs" => "<script type="text/javascript">".
    "setTimeout("window.location.href ="".$href."";", 3000);".
    "$("succeedmessage_href").href = "".$href."";".
    "$("main_message").style.display = "none";".
    "$("main_succeed").style.display = "";".
    "$("succeedlocation").innerHTML = "".lang("message", $locationmessage)."";".
        "</script>",
        "striptags" => false,
);










整体替换为






$ucsynlogin = "";
                        if($_G["setting"]["allowsynlogin"]) {
                                loaducenter();
                                $ucsynlogin = uc_user_synlogin($_G["uid"]);
                        }
$extra = array(
"showid" => "succeedmessage",
"extrajs" => "<script type="text/javascript">".
"setTimeout("window.location.href ="".$href."";", ".$refreshtime.");".
"$("succeedmessage_href").href = "".$href."";".
"$("main_message").style.display = "none";".
"$("main_succeed").style.display = "";".
"$("succeedlocation").innerHTML = "".lang("message", $locationmessage)."";".
"</script>".$ucsynlogin,
"striptags" => false,
);



//其实主要是在后面增加了这一句
//.$ucsynlogin ,从而实现论坛上初次注册的会员,就可以直接同步到另一站,不需要退出再登录一次.





七,如果论坛中已经存在以前注册的用户,如果他论坛上登录后,想同步注册到本站,则还需要在论坛目录中,增加个email参数.这样,本应用的api/uc.php中就能得到这个参数.
具体为
uc_servercontroluser.php,要修改本文件的onsynlogin()

下面这个函数直接替换原来的就行.里面增加了email








function onsynlogin() {
$this->init_input();
$uid = $this->input("uid");
if($this->app["synlogin"]) {
if($this->user = $_ENV["user"]->get_user_by_uid($uid)) {
$synstr = "";
foreach($this->cache["apps"] as $appid => $app) {
if($app["synlogin"]) {
if($app["appid"] != $this->app["appid"]) {
$synstr .= "<script type="text/javascript" src="".$app["url"]."/api/".$app["apifilename"]."?time=".$this->time."&code=".urlencode($this->authcode("action=synlogin&username=".$this->user["username"]."&uid=".$this->user["uid"]."&email=".$this->user["email"] ."&password=".$this->user["password"]."&time=".$this->time,"ENCODE", $app["authkey"]))."" reload="1"></script>";
}
if(is_array($app["extra"]["extraurl"])) foreach($app["extra"]["extraurl"] as $extraurl) {
$synstr .= "<script type="text/javascript" src="".$extraurl."/api/".$app["apifilename"]."?time=".$this->time."&code=".urlencode($this->authcode("action=synlogin&username=".$this->user["username"]."&uid=".$this->user["uid"]."&email=".$this->user["email"]."&password=".$this->user["password"]."&time=".$this->time,"ENCODE", $app["authkey"]))."" reload="1"></script>";
}
}
}
return $synstr;
}
}
return "";
}






//函数结束



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。