原始出处:
http://9rel.com/bbs/thread/59/4432/
前段时间找了篇关于PW和Koobi整合的资料,昨晚试着搞了搞,未果。看来还需要加强学习。
总体思路:
1、使用Koobi的用户管理(以Koobi为主角)
2、整个整合工作包括:用户注册->登录、用户登录、用户注销、用户资料修改、用户资料删除。
3、要做的工作是在以上每个进程中,实现PW与Koobi的用户数据同步
以下是注册->登录的代码,在Koobi的注册文件中适当位置插入它们。
复制内容到剪贴板
代码:
//PW用户表中用户名检查
$pw_sql = $db->Query("SELECT email FROM pw_members WHERE username='".escs($_REQUEST['uname'])."'");
//PW用户表中同名邮箱检查
$pw_sql = $db->Query("SELECT email FROM pw_members WHERE email='".escs($email)."'");
//////////////////////////phpwind signup//////////////////////////////////////
if($_REQUEST[title]=='1'){$reg_sex='1';}
else{$reg_sex='0';}
$pw_q="INSERT INTO pw_members (
username,
password,
email,
publicmail,
groupid,
memberid,
icon,
gender,
regdate,
signature,
introduce,
oicq,
icq,
site,
location,
bday,
receivemail,
yz,
signchange
) VALUES (
'$_REQUEST[uname]',
'". md5($_REQUEST['pass']) ."',
'$_REQUEST[email]',
'1',
'-1',
'8',
'',
'$rg_sex',
'" . time() . "',
'',
'',
'',
'',
'',
'$_REQUEST[street]',
". $dbq . ",
'1',
'1',
'1'
)";
$db->Query($pw_q);//插入新用户
$winduid=mysql_insert_id();
$db->Query("INSERT INTO pw_memberdata (uid,postnum,rvrc,money,lastvisit,thisvisit,onlineip) VALUES ('$winduid', '0', '0', '0', '" . time() . "', '" . time() . "', '')");
$db->Query("UPDATE pw_bbsinfo SET newmember='$_REQUEST[uname]',totalmember=totalmember+1 WHERE id='1'");//更新“欢迎新用户”数据
//////////////////////////phpwind signup//////////////////////////////////////
//////////////////////////新注册用户自动登录//////////////////////////////////////
//BASEDIR是在其它系统中定义的网站根目录
include_once(BASEDIR."/support/data/bbscache/config.php");//for include 'db_hash' ''db_ckpath' 'db_ckdomain' value
$timestamp=time();
function StrCode($string,$action='ENCODE'){
$key = substr(md5($_SERVER["HTTP_USER_AGENT"].$GLOBALS['db_hash']),8,18);
$string = $action == 'ENCODE' ? $string : base64_decode($string);
$len = strlen($key);
$code = '';
for($i=0; $i<strlen($string); $i++){
$k = $i % $len;
$code .= $string[$i] ^ $key[$k];
}
$code = $action == 'DECODE' ? $code : base64_encode($code);
return $code;
}
function PwdCode($pwd){
return md5($_SERVER["HTTP_USER_AGENT"].$pwd.$GLOBALS['db_hash']);
}
$windpwd=$_REQUEST['pass'];
setCookie("winduser",StrCode($winduid."\t".PwdCode($windpwd)), $timestamp+31536000,$db_ckpath,$db_ckdomain);
setCookie("ck_info",$db_ckpath."\t".$db_ckdomain); //设置COOKIE有效目录$db_ckpath,COOKIE有效域名$db_ckdomain相关
setCookie('lastvisit','',0); //将$lastvist清空以将刚注册的会员加入今日到访会员中