php出现web系统多域名登录失败的解决方法

 更新时间:2014年09月30日 10:13:05   投稿:shichen2014  
这篇文章主要介绍了php出现web系统多域名登录失败的解决方法,针对同一顶级域名下的各子站出现登录失败的情况非常有用,需要的朋友可以参考下

本文实例讲述了php出现web系统多域名登录失败的解决方法,分享给大家供大家参考。具体分析如下:

下面只是简单的逻辑结构,对于正式的系统需要做具体的处理。

这里需要注意的是:加解密一定需要做安全验证。但是这个方法也不够完美,两个站点必须有相同一级域名;另外这种完全基于cookie的方式,安全性不够高

function login()
{
  $info = callloginserver(); //访问登录服务器
  if(!empty($info))  //登录成功了
}
//用户没有登录,则在本系统中登录并调用登录服务器接口
function login()  //正常的登录
{
  .......//验证用户的合法性
  $_session['uid'] = $user_id;
  setcookie('sign', encrypt($pass9), '', '/', 'the.com');
}

先检查用户是否在登录系统中登录

funtion sign()
{
 $sign = $_cookie['sign'];
 if(!empty($sign))
 {
   $sign = decrypt($sign);
  ..........///登录成功
 }
}

用户没有登录,则在本系统中登录并调用登录服务器接口

function loging() //本系统登录
{ 
 .....//登录成功
 callseverlogin();//通知用户登录
}

所有的站点共享一个登录系统;当用户在其中的一个站点登录成功时, 该系统调用其他站点的登录接口,完成用户在其他站点的登录,同时设置相应的登录信息;或者在用户登录时,只在该系统保存用户登录信息,当用户在其他站点登录时,必须请求该系统接口,获取用户是否登录的信息。前一种方式的缺点是:不管用户有没有使用其他站点,那些站点都需要保存用户状态;后一种方式就把所有的压力都转移到登录系统上面来。而如果要实现用户退出的统一操作,就需要站点调用登录系统的退出接口,然后登录系统接口调用其他站点的退出接口;或者设置一个标记,如果这个标记不存在则标示用户退出,此时只要把该标示清空即可,其他站点发现该标示不存在就知道用户已经退出系统。

这种处理方式需要在登录系统和个站点之间规定登录接口,和注销接口。通过这些接口,各站点可以很方便的处理用户登录或退出。

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

  • 一文带你搞懂PHP对象注入

    一文带你搞懂PHP对象注入

    php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险。本文将通过示例带大家搞懂PHP对象注入,感兴趣的可以了解一下
    2022-09-09
  • PHP自定义函数实现格式化秒的方法

    PHP自定义函数实现格式化秒的方法

    这篇文章主要介绍了PHP自定义函数实现格式化秒的方法,涉及php数组及数值运算的操作技巧,需要的朋友可以参考下
    2016-09-09
  • PHP安装BCMath扩展的方法

    PHP安装BCMath扩展的方法

    今天小编就为大家分享一篇关于PHP安装BCMath扩展的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • php通过array_shift()函数移除数组第一个元素的方法

    php通过array_shift()函数移除数组第一个元素的方法

    这篇文章主要介绍了php通过array_shift()函数移除数组第一个元素的方法,涉及php中array_shift()函数操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP中auto_prepend_file与auto_append_file用法实例分析

    PHP中auto_prepend_file与auto_append_file用法实例分析

    这篇文章主要介绍了PHP中auto_prepend_file与auto_append_file用法,较为详细的讲述了配置信息的休息以及函数的用法和注意事项,需要的朋友可以参考下
    2014-09-09
  • 解析coreseek for sphinx的使用

    解析coreseek for sphinx的使用

    本篇文章是对coreseek for sphinx的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP中的闭包function() use() {}使用场景和技巧

    PHP中的闭包function() use() {}使用场景和技巧

    由于存在函数内部不能访问全局作用的,所以就需要一种可以引入上一级作用域的语法结构,可以通过use使用函数声明时所在作用域的变量的值。php的闭包可能不常用,但是在某些场合之下还是可以考虑用php的闭包来实现某些功能的。
    2022-12-12
  • Session保存到数据库的php类分享

    Session保存到数据库的php类分享

    Session保存到数据库的php类,需要的朋友可以参考下。
    2011-10-10
  • PHP得到mssql的存储过程的输出参数功能实现

    PHP得到mssql的存储过程的输出参数功能实现

    在开发过程中可能会遇到无法取得MSSQL存储过程的输出参数,很多朋友都不知道该怎么办,本文将详细介绍PHP得到mssql的存储过程的输出参数功能实现
    2012-11-11
  • PHP基于redis计数器类定义与用法示例

    PHP基于redis计数器类定义与用法示例

    这篇文章主要介绍了PHP基于redis计数器类定义与用法,结合实例形式较为详细的分析了php定义的redis计数器类及其相关使用技巧,需要的朋友可以参考下
    2018-02-02

最新评论