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&amp;mysql(三)
Oct 09 PHP
针对初学PHP者的疑难问答(1)
Oct 09 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
php 函数中使用static的说明
Jun 01 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
php中AES加密解密的例子小结
Feb 18 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
php中str_pad()函数用法分析
Mar 28 PHP
PHP实现git部署的方法教程
Dec 19 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
服务器端解压缩zip的脚本
2006/12/22 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
python处理圆角图片、圆形图片的例子
2014/04/25 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python迭代器与生成器详解
2016/03/10 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
python3 简单实现组合设计模式
2020/07/02 Python
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
出纳试用期自我鉴定
2014/04/07 职场文书
婚前财产公证书
2014/04/10 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
群众路线剖析材料
2014/09/30 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
基于Python实现射击小游戏的制作
2022/04/06 Python