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作的文本留言本的例子(五)
Oct 09 PHP
php中Smarty模板初体验
Aug 08 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php查找字符串出现次数的方法
Dec 01 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
PHP中递归的实现实例详解
Nov 14 PHP
php之header的不同用法总结(实例讲解)
Nov 28 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
PHP基于ip2long实现IP转换整形
Dec 11 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
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
js实现时间日期校验
2020/05/26 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
Python中存取文件的4种不同操作
2018/07/02 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python实现淘宝购物系统
2019/10/25 Python
python 有效的括号的实现代码示例
2019/11/11 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
python温度转换华氏温度实现代码
2020/12/06 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
经理秘书岗位职责
2013/11/14 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
《学会待客》教学反思
2014/02/22 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
小区推广策划方案
2014/06/06 职场文书
公司员工活动策划方案
2014/08/20 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
企业法人任命书
2015/09/21 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js