另类方法整合ucenter(uc)示例简版

浏览:2254 最后更新:2016-04-03 12:20 分类:示例
前言:找过很多整合uc的方法,几乎都存在问题,uc通讯也不一定稳定,所以改变方法,说白点,uc就是存放用户数据的地方,主要是存储用户名、密码、邮箱和头像,只要想办法合二为一,两个系统的会员数据一样,就不用使用所谓的uc接口了。不过一定要对比两个系统用户的id,名称和密码,做到统一,都是数据操作,下面给的示例已经很明白的说明这点了,可以同时操作两个数据库、两个表、多个字段!
当然只是简单的抛砖引玉,主要是自己需要,其实我研究的方法很简单很直接,根本不需要ucenter的接口。我们都知道TP可以联表查询、多次查询,知道这点就好办了,原理TP在注册的时候,顺便把用户也注册到ucenter,同理,用户登录的时候,也从ucenter表中读取,这样的话,就不存在接口不接口了,等于混为一体了!下面分享示例!
我只给出注册示例哈,其他的依样画葫芦操作即可!
首先在控制器新建文件UserController.class.php(示例,已有的不用新建,这文件是用户操作文件),我们开始写注册代码,如下
public function insert(){
//用户的插入操作,post数据到这一步即可操作这段代码
$user = M('user'); //TP系统用户表
$member = M('members');//UC系统用户表(我已把UC用户表前缀改成和TP系统的一致)

//创建数据
//获取数据源POST数组,过滤不合法的字段(TP系统需要的)
$data['user_username'] = $_POST['username'];//TP系统用户名
$data['user_password'] = md5($_POST['password']);//TP系统密码
$data['user_email'] = $_POST['email'];//TP系统邮箱
$user = $user ->add($data);//以上$data();里面的表示TP系统的用户字段
//获取数据源POST数组,过滤不合法的字段(UC系统需要的)
$ser['regdate'] = date();//(生成UC用户注册时间)
$salt = substr(uniqid(rand()), -6);//(生成UC用户表salt字段,当然也可以其他生成方式,如当前时间字串截取6位,或随机6为数字英文混合等,salt是一个很重要的字段,谨记)
$ser['password'] = md5(md5($password).$salt);//(生成UC用户表密码,请看清楚,是先生成字段得到salt,然后md5加密输入的密码+salt字段,再一次MD5加密得到密码,这段解密的时候可以在用户登录时使用)
$ser['username'] = $_POST['username'];//(POST过来的UC用户名)
$ser['email'] = $_POST['email'];//(POST过来的UC用户邮箱)
$ser['salt'] = $salt;//(生成的salt字段,并存入数据库中,UC用户系统中很重要的一个字段,用户密码都靠他加密解密)

$member = $member->add($ser);
if($user && $member){
$this->success('注册成功',U('Home/Index/index'));
}else{
$this->error('注册失败',U('Home/User/add'));
}

}

主要是只要注册一个用户到UC系统的话,那整合uc的其他系统也可以登录了(当然,用户信息修改也得注意同步操作过去)
以上就是注册段代码,其他代码,如修改用户信息、同步登录等自己编写,都是同理!
评论( 相关
后面还有条评论,点击查看>>