PHP通过session id 实现session共享和登录验证的代码


Posted in PHP onJune 03, 2012

先说说,这个机制的用途吧,到现在为止战地知道这个机制有两个方面的用途:

首先,多服务器共享session问题,这个大家应该都能够理解的,当一个网站的用户量过大,就会使用服务器集群,例如专门有一个登录用的服务器。用户通过登录服务器登录之后,登录服务器保存了用户的登录信息session,而其他受访问的服务器,例如电影服务器没有这个session,那么我们就要通过一个session的唯一标识来共享这个session了——具体session的共享超出了本文的范围,请自行查阅资料。

第二个用途就是,验证同一用户的不同会话,这个比较难理解。这样说吧,一个用户并非通过浏览器来请求连接,而是通过socket或者其它方式来请求数据的时候,我们首先要对他进行用户登录验证,验证成功之后,就下发一个sessionid给他,然后他每次请求的时候就携带这个sessionid,我们通过这个sessionid来判断session是否已经存在,如果存在我们就认定用户已经登录……

对于第一个问题,我们可以把sessionid保存在数据库中得以实现,这个方法比较安全而且应用广泛,但是不是我们讨论的范围哦

第二个问题,其实已经很简单了,看一下代码

首先验证的时候产生一个sessionid;

<?php 
Session_start(); 
$sessionId = session_id();//得到sessionid 
//将session下发给客户端 
......... 
?>

客户端携带sessionid这个变量来请求数据
<?php 
Session_id(‘$sessionid');//注意这个时候session_id()这个函数是带有参数的 
Session_start();//这个函数必须在session_id()之后 
?>

这个时候session已经是登录验证时候的session了。
注意:在sessionServer.php中如果使用thinkphp等其他自动启动session_start();函数的框架时,必须先调用session_destory()函数来清空session。
PHP 相关文章推荐
同一空间绑定多个域名而实现访问不同页面的PHP代码
Dec 06 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
php跨站攻击实例分析
Oct 28 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
PHP 8新特性简介
Aug 18 PHP
如何判断微信付款码和支付宝付款码
Apr 01 PHP
PHP中设置时区方法小结
Jun 03 #PHP
php 函数中使用static的说明
Jun 01 #PHP
PHP number_format() 函数定义和用法
Jun 01 #PHP
分享一个PHP数据流应用的简单例子
Jun 01 #PHP
检查php文件中是否含有bom的函数
May 31 #PHP
php注销代码(session注销)
May 31 #PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 #PHP
You might like
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
详解Python当中的字符串和编码
2015/04/25 Python
python简单判断序列是否为空的方法
2015/06/30 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
python 实现识别图片上的数字
2019/07/30 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
大学校园生活自我鉴定
2014/01/13 职场文书
主要负责人任命书
2014/06/06 职场文书
校庆标语集锦
2014/06/25 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
2015年司机工作总结
2015/04/23 职场文书