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 木马攻击防御技巧
Jun 13 PHP
PHP 编写大型网站问题集
May 07 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
php车辆违章查询数据示例
Oct 14 PHP
详解PHP5.6.30与Apache2.4.x配置
Jun 02 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
php反射学习之依赖注入示例
Jun 14 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
openPNE常用方法分享
2011/11/29 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
js实现缓动动画
2020/11/25 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
初步讲解Python中的元组概念
2015/05/21 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
浅析Django中关于session的使用
2019/12/30 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
使用npy转image图像并保存的实例
2020/07/01 Python
python3.5的包存放的具体路径
2020/08/16 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
上课随便讲话检讨书
2014/09/12 职场文书
三严三实心得体会范文
2014/10/13 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android