好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

这篇文章介绍了在phpcms新注册用户需要在discuz激活问题的解决方法,需要的朋友可以参考下

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

PHP Code 复制内容到剪贴板

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新注册用户需的详细内容...

  阅读:99次