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自动跳转中英文页面
Jul 29 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
PHP无限分类(树形类)
Sep 28 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
php实现数字补零的方法总结
Sep 12 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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php中创建和调用webservice接口示例
2014/07/25 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
详解vue axios中文文档
2017/09/12 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
js实现缓动动画
2020/11/25 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Python中logging实例讲解
2019/01/17 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python和c语言的主要区别总结
2019/07/07 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
应届行政管理专业个人自我评价
2013/12/28 职场文书
数学国培研修感言
2014/02/13 职场文书
新学期决心书
2014/03/11 职场文书
婚礼司仪主持词
2014/03/14 职场文书
爱国演讲稿500字
2014/05/04 职场文书
企业理念标语
2014/06/09 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫