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程序设计有所帮助。

(0)

相关推荐

  • PHP获取windows登录用户名的方法

    前几天在问答区提了一下这个问题,所有回答问题的朋友都说不可能通过PHP实现,碰巧我的实习负责人帮我找到了一个方法,貌似是通过NTLM来实现的,我是新手,对具体原理也知之不详,只是自己测试了一下,很好用. 所以赶快拿出来与大家分享.这是一个法国人写的,所以编码中的注释都是法语,如果有朋友很想了解某行的注释含义,请回帖说明,我可以试着翻译一下. <?php /***********************************************************************

  • php的sso单点登录实现方法

    本文实例讲述了php的sso单点登录实现方法.分享给大家供大家参考.具体分析如下: 这里详细讲到了几点: 1.点击登录跳转到SSO登录页面并带上当前应用的callback地址 2.登录成功后生成COOKIE并将COOKIE传给callback地址 3.callback地址接收SSO的COOKIE并设置在当前域下再跳回到应用1即完成登录 4.再在应用程序需要登录的地方嵌入一个iframe用来实时检测登录状态,代码如下: index.php 应用程序页面: 复制代码 代码如下: <?php  hea

  • php判断当前用户已在别处登录的方法

    本文实例讲述了php判断当前用户已在别处登录的方法.分享给大家供大家参考.具体分析如下: 主要思路如下: 1.登录时,将用户的SessionID记录下来 2.验证登录时,将记录的该用户SessionID与当前SessionID匹配 3.如果不相同,说明在别处登录 完整实例代码点击此处本站下载. 首先,进入http://localhost/login_single/index.php可查看登录状态. index.php页面代码如下: 复制代码 代码如下: <?php //开启Session ses

  • phpMyAdmin自动登录和取消自动登录的配置方法

    一.如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直接修改该文件即可).打开config.inc.php 找到 $cfg['Servers'][$i]['auth_type'],将 复制代码 代码如下: $cfg['Servers'][$i]['auth_type'] = 'cookie'; 改成 复制代码 代码如下: $cfg['Servers

  • php采用curl模仿登录人人网发布动态的方法

    本文实例讲述了php采用curl模仿登录人人网发布动态的方法.分享给大家供大家参考.具体实现方法如下: 说到php中模仿登录很多人第一时间会想到curl函数系列了,这个没错本例子也是使用curl模仿登录之后再进行动态发布,原理也简单我们只要抓取人人网的登录信息,然后再由curl post登录数据上去就可以了. 具体代码如下: 复制代码 代码如下: $rconfig = pdo_fetch("SELECT * FROM ".tablename("eduTwo_renren&qu

  • ThinkPHP登录功能的实现方法

    登陆功能是PHP程序设计中常见的功能.本文ThinkPHP实例主要完成注册成功后进入首页,并告诉你是登录用户的功能.具体实现步骤如下: 第一步:在config.php文件中加上: 'USER_AUTH_KEY'=>'authId' 示例如下: <?php if(!defined('THINK_PATH')) exit(); return array( // 定义数据库连接信息 'DB_TYPE'=> 'mysql',// 指定数据库是mysql 'DB_HOST'=> 'local

  • PHP读取CURL模拟登录时生成Cookie文件的方法

    本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 复制代码 代码如下: $login_url = 'XXX';    $post_fields['email'] = 'XXXX';  $post_fields['password'] = 'XXXX';  $post_fields['origURL'] = 'XXX';  $post_fields['doma

  • PHP登录环节防止sql注入的方法浅析

    在防止sql注入这些细节出现问题的一般是那些大意的程序员或者是新手程序员,他们由于没有对用户提交过来的数据进行一些必要的过滤,从而导致了给大家测试的时候一下就攻破了你的数据库,下面我们来简单的介绍一个用户登录未进行安全配置可能出现的sql注入方法,下面一起来看看吧. 比如以下一段登录的代码: if($l = @mysql_connect('localhost', 'root', '123')) or die('数据库连接失败'); mysql_select_db('test'); mysql_s

  • php利用cookie实现自动登录的方法

    本文实例讲述了php利用cookie实现自动登录的方法.分享给大家供大家参考.具体实现方法如下: html前端页面代码如下: 复制代码 代码如下: <html>   <head>   <title>enter password</title>   </head>   <body>   <form name="forml" method="post" action="cookieb

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

    本文实例讲述了php出现web系统多域名登录失败的解决方法,分享给大家供大家参考.具体分析如下: 下面只是简单的逻辑结构,对于正式的系统需要做具体的处理. 这里需要注意的是:加解密一定需要做安全验证.但是这个方法也不够完美,两个站点必须有相同一级域名:另外这种完全基于cookie的方式,安全性不够高 function login() { $info = callloginserver(); //访问登录服务器 if(!empty($info)) //登录成功了 } //用户没有登录,则在本系统中

  • linux系统重装导致免密码key登录失败的解决方法

    在一台linux机器上ssh远程另外一台linux服务器时候出现: [root@server .ssh]# ssh 192.0.50.80 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  • SQL Server 2008 R2登录失败的解决方法

    为大家分享SQL Server 2008 R2登录失败的解决方法 1.启动SQL Server 2008 Management Studio,会看到 2.里面有一个 身份验证.这个 身份验证 的下拉列表里面有两个选项: Windows 身份验证 和 SQL Server 身份验证. 它们有什么区别: Windows 身份验证是指:你可以使用你电脑Windows系统的用户名和密码进行登入.如果你的电脑没有设置密码,那么就不需要输入用户名和密码,直接点击连接就可以登入. 我们一般使用第二种身份验证:

  • 关于C#连接SQL Server时提示用户登录失败的解决方法

    在用C#开发windows端程序并连接SQL Server时有可能会遇到数据库登录失败的问题,报错现象如下图所示: 报错信息如下: System.Data.SqlClient.SqlException: '用户 '' 登录失败.' This exception was originally thrown at this call stack:     [External Code]     MyQQ.DataOperator.ExecSQL(string) in DataOperator.cs

  • 用户IIS APPPOOL\DefaultAppPool登录失败的解决方法

    本文为大家分享了解决IIS APPPOOL\DefaultAppPool登录失败的问题,供大家参考,具体内容如下 添加ASP.NET网站时,选择添加"添加应用程序"连接sql server 2005(2008)可能会报始下的错误: (说明:2005必报错,2008选报错) "无法打开登录所请求的数据库 "databaname".登录失败. 用户 'IISAPPPOOL\DefaultAppPool' 登录失败." 遇到这个问题时,可以参考下如下的

  • sql server 2008 用户 NT AUTHORITY\IUSR 登录失败的解决方法

    用户 'NT AUTHORITY\IUSR' 登录失败. 其实这样的情况,要不就是用户名密码不正确,要不就是用户无法登录sql server 2008.一步一步分析. 1.首先asp连接sql server 2008数据库应该没有问题. 之前我用了多种方法,链接数据库,其实链接2000与2005.2008的无区别 需要注意的是: DataServer = "127.0.0.1" DataServer = "(local)" 都是可以使用的 ConnStr="

  • IIS APPPOOL\DefaultAppPool 登录失败的解决方法

    用户 'IIS APPPOOL\DefaultAppPool' 登录失败. 我在windows8中安装了iis 之后添加了我做的网站 打开之后提示用户 'IIS APPPOOL\DefaultAppPool' 登录失败. 我再vs2010中能正常运行 最佳答案 这是设置iis应用程序池的设置问题. 我就遇到了这样的问题. 比如我的网站取名myweb,就会默认给你建立一个myweb应用程序池 一开始报http 404.17错误 解决方案: 1. 右键myweb应用程序池,基本设置,选择.net f

  • 基于Spring Web Jackson对RequestBody反序列化失败的解决

    最近在用Spring Web做一些Restful API的实现试验,碰到了@RequestBody 的JSON无法被正常反序列化的问题.服务端的代码大致如下: @RequestMapping(value = "/aquas", method = RequestMethod.POST) public Aqua createAqua(@RequestBody Aqua aqua) { return aqua; } 研究后发现,由于Aqua这个实体类缺少了默认的无参构造函数(如果自行添加了有

  • php中mail函数发送邮件失败的解决方法

    本文实例讲述了php中mail函数发送邮件失败的解决方法.分享给大家供大家参考.具体分析如下: php中mail函数是一个自带的发邮件的函数,但是如果你真的要使用mail函数来发邮件那必须是要给你系统安装sendmail组件才可以,下面我就碰到mail发送不了邮件的问题,下面一起来看看解决办法吧. 之前的那台服务器转移过来后,发现网站用mail()发送邮件发不了,但是发现sendmail明明已经安装,如果没有安装sendmail可以执行,代码如下: 复制代码 代码如下: yum install

  • Win7安装Visual Studio 2015失败的解决方法

    具备WP/iOS/Android全平台开发能力的Visual Studio 2015开发工具的推出,Visual Studio 2015的变动,也许不仅仅会让开发者和程序员们感到惊讶.特别是其对WP/iOS/Android平台的全兼容能力,尤其引人瞩目. 安装之前先要看看自己的系统支不支持,具体的可以看:https://www.visualstudio.com/en-us/visual-studio-2015-system-requirements-vs.aspx,整个的安装过程和Visual

随机推荐