返回列表 发帖

[Discuz!相关] Ucenter用户自动激活Discuz论坛用户

  最近在做齐博CMS和Discuz论坛的整合,遇到一个问题,在CMS中用户注册以后,在论坛中,用户首次登陆会有一个“激活”的提示。我的想法是只要在CMS注册了,并登陆了,跳转到论坛的时候就自动登陆了,自动激活,如果在论坛登陆,再跳转到CMS,也是自动登陆的。现在的情况是,首次登陆会有用户激活的提示,并且,用户没有激活的情况下,用户在CMS登陆后,跳转到论坛,默认并不是自动登陆的状态。
  造成需要激活才能登陆的原因是:论坛用户数据没有刚刚在用户中心注册的用户数据,所以需要点击“激活”把用户中心的数据写入论坛的用户数据表中。
  知道原因就好解决了:在登录成功后,判断该用户的数据是否存在论坛用户数据表中,不存在就把该用户的数据写入论坛的用户数据表中,这样就不会出现激活页面了,直接登陆成功。

方法:
在class_member.php中的(约在91行):
  1. $result['ucresult']['uid'];
复制代码
后面添加如下代码:
  1. //begin 2011-10-13

  2. //判断是否登陆成功(登陆成功会返回:用户id、用户名、密码等信息):

  3. $user_t=uc_user_login($result["ucresult"]["username"],

  4. $result["ucresult"]["password"]);

  5. //查询论坛中是否存在该账号

  6. $user_inf = DB::fetch_first(“SELECT *

  7. FROM ”.DB::table(‘common_member’).” WHERE uid=”.$uid);

  8. //如果该账号不存在论坛用户表中且登陆成功,则将该用户的信息写入论坛

  9. 用户数据中(即实现不用点击激活才能使用的缺陷)。

  10. if(!$user_inf["uid"] AND $user_t[0]>0){

  11. DB::insert(‘common_member’, array(

  12. ‘uid’ => $uid,

  13. ‘username’ => $result['ucresult']['username'],

  14. ‘password’ => md5(random(10)),

  15. ‘email’ => $result['ucresult']['email'],

  16. ‘adminid’ => 0,

  17. ‘groupid’ => $this->setting['regverify'] ? 8 :

  18. $this->setting['newusergroupid'],

  19. ‘regdate’ => TIMESTAMP,

  20. ‘credits’ => $init_arr[0],

  21. ‘timeoffset’ => 9999

  22. ));

  23. DB::insert(‘common_member_status’, array(

  24. ‘uid’ => $uid,

  25. ‘regip’ => $_G['clientip'],

  26. ‘lastip’ => $_G['clientip'],

  27. ‘lastvisit’ => TIMESTAMP,

  28. ‘lastactivity’ => TIMESTAMP,

  29. ‘lastpost’ => 0,

  30. ‘lastsendmail’ => 0

  31. ));

  32. DB::insert(‘common_member_profile’, array(‘uid’ => $uid));

  33. DB::insert(‘common_member_field_forum’, array(‘uid’ => $uid));

  34. DB::insert(‘common_member_field_home’, array(‘uid’ => $uid));

  35. DB::insert(‘common_member_count’, array(

  36. ‘uid’ => $uid,

  37. ‘extcredits1′ => $init_arr[1],

  38. ‘extcredits2′ => $init_arr[2],

  39. ‘extcredits3′ => $init_arr[3],

  40. ‘extcredits4′ => $init_arr[4],

  41. ‘extcredits5′ => $init_arr[5],

  42. ‘extcredits6′ => $init_arr[6],

  43. ‘extcredits7′ => $init_arr[7],

  44. ‘extcredits8′ => $init_arr[8]

  45. ));

  46. manyoulog(‘user’, $uid, ’add’);

  47. $result['member'] = DB::fetch_first(“SELECT *

  48. FROM ”.DB::table(‘common_member’).” WHERE uid=’$uid’”);

  49. $result['status'] = 1;

  50. }

  51. //end
复制代码
欢迎光临:逐梦论坛

我又回复了











bjcars.net

TOP

还没有机会尝试一下 帮顶











bjcars.net

TOP

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 鲁公网安备 37120302000001号