Ucenter Home 1.5安装及单点登录集成方案
整理一下安装Ucenter Home1.5版本及Discuz BBS的过程及与公司自己的门户社区整合过程中的注意事项作为备忘。
下面以在服务器192.168.1.202上安装配置说明一下整合过程。
操作系统:Redhat AS 4
Mysql : 5.0
1、下载UCenter、UCenter Home、Discuz! 集成安装包
http://download.comsenz.com/UC_UCH_DZ/UC_UCH_DZ_SC_GBK.zip
2、下载ucenter home 1.5
http://www.jz123.cn/soft/download.asp?softid=12538&downid=62&id=12427
目前ucenter home 1.5版本为beta版本,官方尚未正式发布,由于功能相对全,因此采用此版本。
3、下载ucenter头像升级页面
http://u.discuz.net/download/avatar.zip
4、数据库安装,以utf8创建数据库并创建sns的用户
create database sns default character set utf8;
grant all privilege on *.* to sns@’localhost’ identified by ’sns’;
flush privileges;
5、apache及php安装配置
使用Redhat AS 4自带的httpd及php,修改/etc/httpd/conf/httpd.conf
port 80
DocumentRoot "/var/www/html/sns"
6、安装UCenter、UCenter Home、Discuz! 集成安装包
mkdir /var/www/html/sns
unzip UC_UCH_DZ_SC_GBK.zip
mv upload/* /var/www/html/sns/
7、访问http://192.168.1.202,开始安装过程
UCenter的访问网址:
DISCUZ!的访问网址:
管理员访问网址:
http://192.168.1.202/bbs/admincp.php
UCenter Home的访问网址:
http://192.168.1.202/home
管理员访问网址:
http://192.168.1.202/home/admincp.php
8、将ucenter home从1.0版本升级ucenter home 1.5版本
将UCenter_Home_1[1].5RC1_SC_GBK.rar中的upload目录下的文件upload/ 目录中,除 config.new.php 文件、install/ 目录以外的其他所有文件全部上传到home/目录下并覆盖当前程序,特别注意的是,最新数据库结构 ./data/install.sql 文件不要忘记上传将程序包UCenter_Home_1[1].5RC1_SC_GBK.rar update目录中的update.php文件上传到home/目录目录,并在浏览器运行。
http://192.168.1.202/home/update.php
升级成功完成安装后:
删除home/update.php文件
删除 home/data/tpl_cache目录中的所有模板缓存文件
上传avatar.zip中的avatar.php到ucenter/下并覆盖原来的文件
9、为整合门户社区需要进行的修改问题汇总
9.1、ucenter home注册及登录页面校验逻辑修改
注释掉sns安装目录下home/source/function_common.php下的对formhash认证的函数,修改如下:
//判断提交是否正确
function submitcheck($var) {
if(!empty($_POST[$var]) && $_SERVER[’REQUEST_METHOD’] == ‘POST’) {
if((empty($_SERVER[’HTTP_REFERER’]) || preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER[’HTTP_REFERER’]) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER[’HTTP_HOST’])) ) {
//删除 && $_POST[’formhash’] == formhash()
// if((empty($_SERVER[’HTTP_REFERER’]) || preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER[’HTTP_REFERER’]) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER[’HTTP_HOST’])) && $_POST[’formhash’] == formhash()) {
return true;
} else {
showmessage(’submit_invalid’);
}
} else {
return false;
}
}
9.2、门户集成ucenter home注册页面实例
一个典型的注册页面
<form id="registerform" name="registerform" action="do.php?ac=register&&ref" method="post" class="c_form">
<table>
<tr><th>Username</th><td><input type="text" id="username" name="username" value="" /></td></tr>
<tr><th>Pass</th><td><input type="password" name="password" id="password" value="" /></td></tr>
<tr><th>Pass2</th><td><input type="password" name="password2" id="password2" value="" /></td></tr>
<tr><th>mail</th><td><input type="text" id="email" name="email" value="@" /></td></tr>
<tr><td><input type="submit" id="registersubmit" name="registersubmit" value="register" /></td></tr>
</table>
<input type="hidden" name="refer" value="space.php?do=home" />
</form>
注意上述提交按钮<input type="submit" id="registersubmit" name="registersubmit" value="register" />必须以此种形式提交,因为是ucenter程序验证了submit的name或id,在程序提交时候不要忘记了此参数。
9.3、注册码问题:
由于用户一般情况下并不需要登录UCHOME的注册页面,因此此处可以先注释掉注册码验证逻辑,只验证用户名称及密码。
注释方法,修改home/source/do_register.php,注释掉
/*
if($_SCONFIG[’seccode_register’]) {
include_once(S_ROOT.’./source/function_cp.php’);
if(!ckseccode($_POST[’seccode’])) {
showmessage(’incorrect_code’);
}
}
*/
9.4、注册时候需要验证邮箱的问题
由于我们目前注册时候并不需要用户输入邮箱(号码管家也不要求用户使用邮箱注册),而sns注册时候需要用于邮箱,而此部分代码在ucenter中控制,此部分代码加密了的,没有办法修改,目前为简单起见,如果用户在注册时候填写了邮箱,则在门户提交给sns的注册页面参数中以用户填入为准,如果没有,则以用户手机号+”@”+mobile-soft.cn为用户邮箱。
9.5、自动激活问题
UCHOME、BBS通过UCENTER整合到一起后,在UCHOME注册后,在使用BBS时候首先必须进行激活操作,这对于用户体验并不是很好。
因此注册时候,同时完成用户在BBS的激活操作。
注册时候自动激活用户BBS帐号:
在手软门户登录注册时候同时在cdb_members、cdb_memberfields中插入相应的数据,其中在cdb_members中的password字段可以任意填写
INSERT INTO `cdb_members` VALUES (’21′, ‘liang6′, ‘liang6′, ”, ‘0′, ‘0′, ‘10′, ‘0′, ”, ‘192.168.1.7′, ‘1220466585′, ‘192.168.1.7′, ‘1220466638′, ‘1220466672′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘liangchuan@mobile-soft.cn’, ‘0000-00-00′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘0′, ‘1′, ‘1′, ‘1′, ‘0′, ‘9999′, ‘0′, ‘0′, ‘2′, ‘26′, ‘0′, ‘0′);
INSERT INTO `cdb_memberfields` VALUES (’21′, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ‘0′, ‘0′, ”, ”, ”, ”, ”, ”, ‘0′, ‘0′);
以上插入记录的用户的id号可以从uc_members表中获得
9.6、门户集成ucenter home登录实例
<form id="loginform" name="loginform" action="do.php?ac=login&&ref" method="post" class="c_form">
<table class="formtable" cellpadding="0" cellspacing="0">
<tr><th width="100"><label for="username">Username</label></th><td><input name="username" id="username" value="" type="text"></td></tr>
<tr><th><label for="password">Password</label></th><td><input name="password" id="password" value="" type="password">
</td></tr>
<tr><td><input id="loginsubmit" name="loginsubmit" value="Login" class="submit" tabindex="5" type="submit">
</td></tr>
</table>
<input name="refer" value="space.php?do=home" type="hidden">
</form>
9.7、bbs登录注册问题
由于bbs的注册通过sns的注册已经解决了,因此不需要单独的注册页面,开发时候把bbs的注册页面修改为手软门户的注册页面。
要实现在登录门户时候同时自动登录bbs相对简单,一个典型的登录表单:
<form id="loginform" method="post" name="login" action="logging.php?action=login&loginsubmit=true">
<input name="username" value="" type="text"><br>
<input id="password" name="password" type="password"><br>
<button name="userlogin" type="submit" value="true">login</button>
</form>
站内标签:bbs,社区,discuz,sns,ucenter,uncenter home,单点登录
land dog car trust key minor
谢谢了。。。。。。。。
谢谢提供