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 相关文章推荐
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
php include和require的区别深入解析
Jun 17 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
php表单请求获得数据求和示例
May 15 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
php自定义函数转换html标签示例
Sep 29 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
PHP大文件切割上传功能实例分析
Jul 01 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php使用google地图应用实例
2014/12/31 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
python实现中文转换url编码的方法
2016/06/14 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
学校运动会开幕演讲稿
2014/01/04 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
行政复议决定书
2015/06/24 职场文书
八一建军节主持词
2015/07/01 职场文书
话题作文之生命的旋律
2019/12/17 职场文书