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

 更新时间:2010年12月08日 20:32:15   作者:  
我的任务就是让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内进行,而最土只负责接受传递是否是空值来确认是否登录。

相关文章

  • 编写PHP脚本使WordPress的主题支持Widget侧边栏

    编写PHP脚本使WordPress的主题支持Widget侧边栏

    这篇文章主要介绍了编写PHP脚本使WordPress的主题支持Widget侧边栏的方法,这里以一列两列的侧边栏为例可以以此类推更多列的写法,需要的朋友可以参考下
    2015-12-12
  • php下使用strpos需要注意 === 运算符

    php下使用strpos需要注意 === 运算符

    首先应该知道 strpos 函数可能返回布尔值 FALSE,但也可能返回一个与 FALSE 等值的非布尔值,例如 0 或者""。我们应使用 === 运算符来测试本函数的返回值。
    2010-07-07
  • PHP利用REFERER根居访问来地址进行页面跳转

    PHP利用REFERER根居访问来地址进行页面跳转

    这篇文章主要是根据referfer判断来源,然后跳转到制定页面,以防出现了无法访问页面,用户体验不好
    2013-09-09
  • PHP中的str_repeat函数在JavaScript中的实现

    PHP中的str_repeat函数在JavaScript中的实现

    PHP中有一个函数:String str_repeat($str, num);挺好用的,在 本文为大家介绍下次函数在js中的实现,感兴趣的朋友可以参考下
    2013-09-09
  • 如何从防护角度看Thinkphp历史漏洞

    如何从防护角度看Thinkphp历史漏洞

    19年初,网上公开了2个Thinkphp5的RCE漏洞,漏洞非常好用,导致有很多攻击者用扫描器进行全网扫描。我们通过ips设备持续观察到大量利用这几个漏洞进行批量getshell的攻击流量,本文主要从流量角度简要分析和利用thinkphp进行攻击的全网扫描和getshell流量痕迹。
    2021-05-05
  • PHP常用的缓存技术汇总

    PHP常用的缓存技术汇总

    这篇文章主要介绍了PHP常用的缓存技术汇总,下面所说的都是在项目中最常用的PHP缓存技术,新手同学收藏起来好好研究吧
    2014-05-05
  • PHP开发api接口安全验证操作实例详解

    PHP开发api接口安全验证操作实例详解

    这篇文章主要介绍了PHP开发api接口安全验证操作,结合实例形式详细分析了PHP开发api接口安全验证的原理、操作技巧与注意事项,需要的朋友可以参考下
    2020-03-03
  • php实现保存周期为1天的购物车类

    php实现保存周期为1天的购物车类

    这篇文章主要为大家详细介绍了php实现保存周期为1天的购物车类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • php实现的debug log日志操作类实例

    php实现的debug log日志操作类实例

    这篇文章主要介绍了php实现的debug log日志操作类,结合实例形式分析了php针对日志的相关操作技巧,包括php数组、字符串及文件的写操作等用法,需要的朋友可以参考下
    2016-07-07
  • php7 安装mysqli实例讲解

    php7 安装mysqli实例讲解

    在本篇文章里小编给大家整理的是一篇关于php7 安装mysqli实例讲解内容,有需的朋友们可以跟着学习参考下。
    2021-11-11

最新评论