www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > bbs/passport_client.php

    <?php
require_once('global.php');
require_once(R_P.'require/checkpass.php');

InitGP(array('action','userdb','forward','verify'));
if(!$db_pptifopen || $db_ppttype!='client'){
	Showmsg('系统没有开启通行证功能!');
}
if(md5($action.$userdb.$forward.$db_pptkey) != $verify){
	Showmsg('安全检验失败,请检查通行证设置是否正确!');
}
$_db_hash=$db_hash;

$db_hash=$db_pptkey;
parse_str(StrCode($userdb,'DECODE'),$userdb);

if($action=='login'){
	foreach($userdb as $key=>$val){
		$userdb[$key] = Char_cv($val);
	}
	if(!$userdb['time'] || !$userdb['username'] || !$userdb['password']){
		Showmsg('数据检验失败,缺少参数!lack_data');
	}
	if($timestamp-$userdb['time']>3600){
		Showmsg('数据检验失败,无效数据!expired_error');
	}

	$member_field = array('username','password','email');
	$memberdata_field = array('rvrc','money','credit','currency');

	$sql='';
	foreach($member_field as $key=>$val){
		$sql .= ','.$val;
	}
	$rt=$db->get_one("SELECT uid $sql FROM pw_members WHERE username='$userdb[username]'");
	if($rt){
		$sql=$sql2='';
		foreach($userdb as $key=>$val){
			if(in_array($key,$member_field) && $rt[$key] != $val){
				$sql  .= $sql ? ",$key='$val'" : "$key='$val'";
			}elseif(in_array($key,$memberdata_field) && strpos(",$db_pptcredit,",",$key,")!==false){
				$sql2 .= $sql2 ? ",$key='$val'" : "$key='$val'";
			}
		}
		$sql  && $db->update("UPDATE pw_members SET $sql WHERE uid='$rt[uid]'");
		$sql2 && $db->update("UPDATE pw_memberdata SET $sql2 WHERE uid='$rt[uid]'");

		$winduid = $rt['uid'];
	} else{
		$sql1=$sql2=$sql3=$sql4='';
		foreach($userdb as $key=>$val){
			if(in_array($key,$member_field)){
				$sql1 .= $sql1 ? ','.$key  : $key;
				$sql2 .= $sql2 ? ",'$val'" : "'$val'";
			}elseif(in_array($key,$memberdata_field) && strpos(",$db_pptcredit,",",$key,")!==false){
				$val = (int)$val;
				$sql3 .= ",$key";
				$sql4 .= ",'$val'";
			}
		}
		$db->update("REPLACE INTO pw_members($sql1,groupid,memberid,gender,regdate,signchange) VALUES($sql2,'-1','8','0','$timestamp','1')");
		$winduid = $db->insert_id();
		$db->update("REPLACE INTO pw_memberdata (uid,postnum,lastvisit,thisvisit,onlineip $sql3) VALUES ('$winduid','0','$timestamp','$timestamp','$onlineip' $sql4)");

		$db->update("UPDATE pw_bbsinfo SET newmember='$userdb[username]',totalmember=totalmember+1 WHERE id='1'");
	}
	$db_hash=$_db_hash;
	$windpwd = PwdCode($userdb['password']);
	Cookie("winduser",StrCode($winduid."\t".$windpwd),$userdb['cktime']);
	Cookie('lastvisit','',0);
	Loginipwrite();
	ObHeader($forward ? $forward : $db_bbsurl);
} elseif($action=='quit'){
	$db_hash=$_db_hash;
	Loginout();
	ObHeader($forward ? $forward : $db_bbsurl);
}
?>