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

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

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

详细介绍了刚注册phpcms的用户必须用discuz对话的问题的解决方法,有需要的朋友可以参考一下。

关键原因是phpsso和ucenter通信成功后,XXX_ucenter_member表中的用户已经成功了。但是XXX_common_member中没有这个用户,所以在xxx_common_member中插入这个用户就足够了。因此,将discuse/API/UC.PHP下的synlogin函数修改如下就足够了

PHPCode拷贝內容到剪贴板 函数synlogin($get,$post){
  • 全球$_G;
  • 如果(!API_SYNLOGIN){
  • 返回API_RETURN_FORBIDDEN
  • }
  • header('P3P:CP="CURaADMaDEVaPSAoPSDoOURBUSUNIPURINTDEMSTAPRECOMNAVOTCNOIDSPCOR"');
  • $cookietime=31536000
  • $uid=intval($get['uid']);
  • $query=DB::query("SELECTuid,username,passwordFROM"。DB::table('common_member')。"其中uid='$uid'";
  • if($member=DB::fetch($query))
  • {
  • dsetcookie('auth',authcode("$member[password]\t$member[uid]",'ENCODE'),$cookietime);
  • }否则
  • {
  • $username=$get['username'];
  • $query=DB::query("SELECTuid,用户名,密码,emailFROM"。DB::table('ucenter_members')。"其中用户名='$用户名'";
  • $member=DB::fetch($query);
  • $password=$member['password'];
  • $email=$member['email'];
  • $IP=$_SERVER['REMOTE_ADDR'];
  • $time=time();
  • $userdata=array(
  • uid'=>$uid,
  • 用户名'=>$用户名,
  • 密码'=>$password,
  • 电子邮件'=>$电子邮件,
  • adminid'=>0,
  • groupid'=>10,
  • regdate'=>$时间,
  • 'credits'=>0,
  • timeoffset'=>九千九百九十九
  • );
  • DB::insert('common_member',$userdata);
  • $status_data=array(
  • uid'=>$uid,
  • regip'=>$ip,
  • lastip'=>$ip,
  • 'lastvisit'=>$时间,
  • lastactivity'=>$时间,
  • lastpost'=>0,
  • lastsendmail'=>0
  • );
  • DB::insert('common_member_status',$status_data);
  • DB::insert('common_member_profile',array('uid'=>;$uid));
  • DB::insert('common_member_field_forum),array('uid'=>;$uid));
  • DB::insert('common_member_field_home),array('uid'=>;$uid));
  • DB::insert('common_member_count',array('uid'=>;$uid));
  • DB::query('UPDATE'。DB::table('common_setting')。"SETsvalue='$username'其中skey='lastmember'";
  • $query=DB::query("SELECTuid,username,passwordFROM"。DB::table('common_member')。"其中uid='$uid'";
  • if($member=DB::fetch($query))
  • {
  • dsetcookie('auth',authcode("$member[password]\t$member[uid]",'ENCODE'),$cookietime);
  • }
  • }
  • }


    然后在phpcms中申请注册,去discuz,就可以快速登录,不需要提示。

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/773025.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存