解决phpcms V9整合discuz! X3.0后 在phpcms新注册用户需要在discuz激活的问题

2025-05-29 0 40

分析其主要原因是phpsso与ucenter通信成功后,XXX_ucenter_member表中的用户已经同步成功但是在XXX_common_member中并没有此用户,所以只要在xxx_common_member中插入此用户就可以了,所以修改discuz/api/uc.php下的synlogin函数就可以了,修改为

  1. functionsynlogin($get,$post){
  2. global$_G;
  3. if(!API_SYNLOGIN){
  4. returnAPI_RETURN_FORBIDDEN;
  5. }
  6. header('P3P:CP="CURaADMaDEVaPSAoPSDoOURBUSUNIPURINTDEMSTAPRECOMNAVOTCNOIDSPCOR"');
  7. $cookietime=31536000;
  8. $uid=intval($get['uid']);
  9. $query=DB::query("SELECTuid,username,passwordFROM".DB::table('common_member')."WHEREuid='$uid'");
  10. if($member=DB::fetch($query))
  11. {
  12. dsetcookie('auth',authcode("$member[password]\\t$member[uid]",'ENCODE'),$cookietime);
  13. }else
  14. {
  15. $username=$get['username'];
  16. $query=DB::query("SELECTuid,username,password,emailFROM".DB::table('ucenter_members')."WHEREusername='$username'");
  17. $member=DB::fetch($query);
  18. $password=$member['password'];
  19. $email=$member['email'];
  20. $ip=$_SERVER['REMOTE_ADDR'];
  21. $time=time();
  22. $userdata=array(
  23. 'uid'=>$uid,
  24. 'username'=>$username,
  25. 'password'=>$password,
  26. 'email'=>$email,
  27. 'adminid'=>0,
  28. 'groupid'=>10,
  29. 'regdate'=>$time,
  30. 'credits'=>0,
  31. 'timeoffset'=>9999
  32. );
  33. DB::insert('common_member',$userdata);
  34. $status_data=array(
  35. 'uid'=>$uid,
  36. 'regip'=>$ip,
  37. 'lastip'=>$ip,
  38. 'lastvisit'=>$time,
  39. 'lastactivity'=>$time,
  40. 'lastpost'=>0,
  41. 'lastsendmail'=>0
  42. );
  43. DB::insert('common_member_status',$status_data);
  44. DB::insert('common_member_profile',array('uid'=>$uid));
  45. DB::insert('common_member_field_forum',array('uid'=>$uid));
  46. DB::insert('common_member_field_home',array('uid'=>$uid));
  47. DB::insert('common_member_count',array('uid'=>$uid));
  48. DB::query('UPDATE'.DB::table('common_setting')."SETsvalue='$username'WHEREskey='lastmember'");
  49. $query=DB::query("SELECTuid,username,passwordFROM".DB::table('common_member')."WHEREuid='$uid'");
  50. if($member=DB::fetch($query))
  51. {
  52. dsetcookie('auth',authcode("$member[password]\\t$member[uid]",'ENCODE'),$cookietime);
  53. }
  54. }
  55. }

这样在phpcms中注册后去discuz中就可以不用激活就自动登录了

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 解决phpcms V9整合discuz! X3.0后 在phpcms新注册用户需要在discuz激活的问题 https://www.kuaiidc.com/109077.html

相关文章

发表评论
暂无评论