解决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,就可以快速登录,不需要提示。
评论列表(0条)