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内进行,而最土只负责接受传递是否是空值来确认是否登录 。 |