欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHPwind整合最土系统用户同步登录实现方法

程序员文章站 2023-11-10 16:53:28
上次成功升级了最土商业版,接下来就是整合公司的社区网站,先说明一下我现在工作的地方是个地方社区网站,用的基础程序是phpwind,我的任务就是让phpwind和最土登录同步...
上次成功升级了最土商业版,接下来就是整合公司的社区网站,先说明一下我现在工作的地方是个地方社区网站,用的基础程序是phpwind,我的任务就是让phpwind和最土登录同步,领导也知道我的技术能力有限,不怎么高要求,所以让我先实现,再考虑其他。赶鸭子上架,开工了。
在我未成熟的程序思考能力下,我首先否定了重写程序这个方法,再次否定了将phpwind的验证方法引入到最土的方法,最后想出一个折中的办法,将两张表的唯一id相同:将phpwind用户表设为主表,最土用户表为外接表,让最土用户id和phpwind用户表uid一一对应,通过用户id来完成接下来的同步工作。
多话不说,上步骤。
第一步:用户同步
新建phpwind用户,最土同步相应用户,最土id对应phpwind用户id。
register.php
复制代码 代码如下:

$db->update("insert into tg_user (id,email,username,password,city_id,create_time,enable,realname) values ('".$winduid."','".addslashes($regemail)."','".addslashes($regname)."','".$windpwd."','1','".time()."','y','".addslashes($regname)."')");

第二步:修改最土登录模式使用cookie方式
去掉密码,将验证用户名改成用户id。
zuser.class.php
复制代码 代码如下:

$field = strpos($email, '@') ? 'email' : 'id';//username
$zuituuser = db::gettablerow('tg_user', array(
$field => $email,
//'password' => $password,

index.php
复制代码 代码如下:

$login_user = zuser::getlogin($_cookie['cookieid'], $_post['password']);
session::set('user_id', $login_user['id']);
zlogin::remember($login_user);
zuser::synlogin($_post['email'], $_post['password']);

第三步:登录phpwind将用户id写入cookie值,退出phpwind将用户id从cookie值里清除
login.php/register.php
写入cookie
setcookie("cookieid", $winduid);
清除cookie
setcookie("cookieid", "", time() - 3600);
第四步:修改最土页面连接
header.html
复制代码 代码如下:

<ul class="links">
<li class="username">欢迎您,{$login_user['username']}!</li>
<li class="account"><a href="/order/index.php" id="myaccount" class="account">我的{$ini['system']['abbreviation']}</a></li>
<li class="logout"><a href="http://www.cnblogs.com/../login.php?action=quit&verify={$_cookie['setout']}">退出</a></li>
</ul>
<!--{else}-->
<ul class="links">
<li class="login"><a href="/../login.php">登录</a></li>
<li class="signup"><a href="/../register.php">注册</a></li>
</ul>

同步登录成功,所有的登录和退出全部在phpwind内进行,而最土只负责接受传递是否是空值来确认是否登录。