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 OPCode缓存 APC详细介绍
Oct 12 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
smarty获得当前url的方法分享
Feb 14 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
php运行时动态创建函数的方法
Mar 16 PHP
php类的扩展和继承用法实例
Jun 20 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
php实现支持中文的文件下载功能示例
Aug 30 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初学入门
2006/11/19 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
python with语句的原理与用法详解
2020/03/30 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
应届毕业生简历自我评价
2014/01/31 职场文书
社团招新策划书
2014/02/04 职场文书
秋季运动会活动方案
2014/02/05 职场文书
初中学校军训方案
2014/05/09 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书