二开教程 Development

提供PHPCMS常用模块的二次开发,改造,升级都修改过程代码

解决phpcms V9整合discuz! X3.0后 在phpcms新注册用户需

 admin  2023-06-20 22:57:17
这篇文章介绍了在phpcms新注册用户需要在discuz激活问题的解决方法,需要的朋友可以参考下

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

PHP Code复制内容到剪贴板
  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中就可以不用激活就自动登录了

本文《解决phpcms V9整合discuz! X3.0后 在phpcms新注册用户需》发布于PHPCMS管理系统文章,作者:admin,如若转载,请注明出处:https://www.phpcms.vip/help/doc/359.html,否则禁止转载,谢谢配合!