本帖最后由 cui_feng89 于 2014-5-15 15:11 编辑
我是个菜鸟,刚接触discuz,已经有一个门户网站,有独立的mysql用户数据库,不能修改,只能通过接口访问,php我还不知道怎么访问接口。。。里面的字段名跟discuz用户表肯定是不同的,现在想把已经有的数据库跟discuz整合,在discuz上能正常登录。 网上说的方法是,先在那个已经有的数据库里,验证用户是否合法,如果合法,查询ucenter中是否有此用户,如果有该用户,更新该用户的密码,如果没有,插入该用户的信息。我想问的是,这种思路应该没有问题吧,如果可以的话,下边的代码,填写接口那里,能不能举个例子说一下应该是长什么样的。。。或者还有没有别的方法实现,需要改那些文件呢。。。具体方法代码如下:
- 修改source/class/class_memeber.php文件中on_login() 函数:
- 在
- $result = userlogin($_GET['username'], $_GET['password'], $_GET['questionid'], $_GET['answer'], $this->setting['autoidselect'] ? 'auto' : $_GET['loginfield'], $_G['clientip']);
- 之前添加
- sys_login($_GET['username'],$_GET['password']);
- 将sys_login()函数添加到source/function/function_core.php中,sys_login()函数的代码具体如下:
- function sys_login($username,$password){
- //判断登录用户是否在主库中存在
- $ch = curl_init();
- $curl_url = "";//填写你要访问的接口,你要验证数据的接口,将$username,$password传过去验证
- curl_setopt($ch, CURLOPT_URL, $curl_url);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
- $curl_result = curl_exec($ch);
- $result = $curl_result;
- curl_close($ch);
- $result_arr = ( json_decode($result, true));
- //如果主库存在,判断返回的uid在ucenter_member中是否存在,如果ucenter中存在,按照uid将username,password更新
- if($result_arr['result'] == 1){//如果访问接口返回值为1,则表明主库中存在此用户
- $query = DB::query("SELECT * FROM pre_ucenter_members where username='".$username."'");
- $salt = rand(100000, 999999);
- $pwd = md5(md5($password).$salt);
- if(DB::num_rows($query) == 0){
- $email = "";//填写从接口返回的邮箱信息,如果接口没有提供返回此数据的信息,可以留空
- DB::query("insert into pre_ucenter_members(username,password,email,salt) values('".$username."','".$pwd."','".$email."','".$salt."') ");
- $uid = mysql_insert_id();
- DB::query("INSERT INTO pre_ucenter_memberfields(uid) values('$uid')");
-
- }else{
- //如果在ucenter中找到了该用户的信息,为了防止用户已经修改了密码,所以在查找到用户信息的时候,对其用户信息进行更新,主要是更新密码
- DB::query("update pre_ucenter_members set password='".$pwd."',salt='".$salt."' where username='".$username."'");
- }
- //print_r($query);exit;
- }else{
- return;
- }
- }
复制代码
补充,刚又查了一下以前的帖子,说是整合UC?具体应该怎么弄呢,不是用的现成的织梦、帝国那些。。。
|