这里下载站-软件教程

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

作者:本站作者 人气:

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

function synlogin($get, $post) {             global $_G;                 if(!API_SYNLOGIN) {                 return API_RETURN_FORBIDDEN;             }                 header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');                 $cookietime = 31536000;             $uid = intval($get['uid']);             $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");             if ($member = DB::fetch($query))             {                 dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);             }else            {                 $username = $get['username'];                 $query = DB::query("SELECT uid, username, password, email FROM ".DB::table('ucenter_members')." WHERE username='$username'");                 $member = DB::fetch($query);                 $password = $member['password'];                 $email = $member['email'];                 $ip = $_SERVER['REMOTE_ADDR'];                 $time = time();                 $userdata = array(                     'uid'=>$uid,                     'username'=>$username,                     'password'=>$password,                     'email'=>$email,                     'adminid'=>0,                     'groupid'=>10,                     'regdate'=>$time,                     'credits'=>0,                     'timeoffset'=>9999                 );                 DB::insert('common_member', $userdata);                     $status_data = array(                     'uid' => $uid,                     'regip' => $ip,                     'lastip' => $ip,                     'lastvisit' => $time,                     'lastactivity' => $time,                     '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')." SET svalue='$username' WHERE skey='lastmember'");                 $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");                 if ($member = DB::fetch($query))                 {                     dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);                 }             }         }   

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

加载全部内容

相关教程
猜你喜欢
用户评论
暂停评论