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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
理解PHP中的stdClass类
Apr 18 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
ucenter通信原理分析
Jan 09 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
php实现支付宝当面付(扫码支付)功能
May 30 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 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
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
php实现映射操作实例详解
2019/10/02 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
js实现搜索提示框效果
2020/09/05 Javascript
python实现每次处理一个字符的三种方法
2014/10/09 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
python绘制多个曲线的折线图
2020/03/23 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
python中pdb模块实例用法
2021/01/15 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
幼儿园小班评语大全
2014/04/17 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
委托书的格式
2014/08/01 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript