·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 网站与phpwind用户同步的方法

网站与phpwind用户同步的方法

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
网站与phpwind用户同步的方法

搭建了一个个人网站,希望使用phpwind来完成论坛功能.但很快就发现存在用户同步的问题,我的网站已经有了用户管理功能, phpwind论坛也有.因此用户同步注册,登陆和注销是必须要实现的. 网上说可以使用ucenter,但没有找到相关资料。倒是找到了一些手动实现同步登录的资料.

http://blog.csdn.net/zjzcl/article/details/5417231http://blog.sina.com.cn/s/blog_78ecbe330100zm1t.html.不过这些写的都不太全面,或者有些问题.我来总结一下好了.首先确认要同步的版本是phpwind8.7.这个phpwind目前支持下载的两大版本之一,还有一个是9,不过貌似变化比较大。8.7版本目前也是阿里云虚拟主机一键安装lamp缺省提供的论坛版本。首先是实现用户注册的同步:1)先把phpwind解压到http服务器某个目录下,我的是放到了网站的一个phpwind子目录下。启动install.php安装。2)在完成自身网站用户注册的代码后面,增加如下代码即可:require_once '../phpwind/global.php';require_once(R_P.'require/checkpass.php');$registerinfo->mail=email;$registerinfo->nickname=username;$registerinfo->uid=userid;$this->registeInphpWind($registerinfo);//-------------------------------------------------registeInphpWind函数的实现如下:PRotected function registeInphpWind(stdClass $registerinfo){$ret=new Ret();//pw = phpwind 的安装前缀//判断pw中是否有该会员数据$sql_valid = "select uid from phpwinddb.pw_members where username = '$registerinfo->nickname'";if (!$result=MySQL_query($sql_valid)){error_log(mysql_error());$ret->errorcode=Error_DB_Query;return $ret;}$row = mysql_fetch_object($result);mysql_free_result($result);if(!$row) {//插入该会员数据到phpwind的pw_members表$sql = "insert into phpwinddb.pw_members(uid,username,passWord,email,groupid,memberid,icon,gender,regdate,signature,introduce,location,bday,yz,aliww,banpm) values ($registerinfo->uid,'$registerinfo->nickname','$registerinfo->password','$registerinfo->mail',-1,8,'',0,'".time()."','','','','".date("Y-m-d",time())."',1,'','')";mysql_query($sql);//插入数据到phpwind的pw_memberdata表mysql_query("INSERT INTO phpwinddb.pw_memberdata (uid,postnum,rvrc,money,lastvisit,thisvisit,onlineip) VALUES ($registerinfo->uid, '0', '0', '0', '" . time() . "', '" . time() . "', '')");mysql_query("UPDATE phpwinddb.pw_bbsinfo SET newmember='$registerinfo->nickname',totalmember=totalmember+1 WHERE id='1'");}$plinfo=new stdClass();$plinfo->username=$registerinfo->nickname;$plinfo->password=$registerinfo->password;$this->loginPHPWind($plinfo);}以上最后一部分是实现用户登录,下面看看用户同步登录的实现phpwind用户同步登录:protected function loginPHPWind(stdClass $plinfo){//与phpwind登陆同步,原理:共用cookie$pwuser=$plinfo->username;$md5_pwpwd=$plinfo->password;$safecv=questcode('-1','1','1');$logininfo = checkpass($pwuser, $md5_pwpwd, $safecv, $lgt, true);list($winduid, $groupid, $windpwd, $showmsginfo) = $logininfo;$param2=StrCode($winduid."\t".$windpwd."\t".'');Cookie("winduser",$param2);Cookie("ck_info",$db_ckpath."\t".$db_ckdomain);Cookie('lastvisit','',0);//将$lastvist清空以将刚注册的会员加入今日到访会员中}具体原理可以参考之前的文章连接,我这里直接提供干货了。3)同步登出,退出登录这个超级简单,就一句话Loginout();这个函数在checkpass.php里面,所以把这个文件包含进来就可以调用了。下一步是修改phpwind,实现自身网站的同步注册,登录和登出,目前我只实现了同步注册,弄好其他的再一起再发上来。