分析其主要原因是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中就可以不用激活就自动登录了
查看更多关于解决phpcms V9整合discuz! X3.0后 在phpcms新注册用户需要在discuz激活的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did188602