PHP通过session id 实现session共享和登录验证的代码

2015-01-24信息快讯网

PHP通过session id 实现session共享和登录验证的代码,需要的朋友可以参考下

先说说,这个机制的用途吧,到现在为止战地知道这个机制有两个方面的用途:

首先,多服务器共享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。
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
解析htaccess伪静态的规则
php empty()与isset()区别的详细介绍
Session服务器配置指南与使用经验的深入解析
解析php中session的实现原理以及大网站应用应注意的问题
php unset全局变量运用问题的深入解析
解析php curl_setopt 函数的相关应用及介绍
深入PHP magic quotes的详解
深入Memcache的Session数据的多服务器共享详解
使用session判断用户登录用户权限(超简单)
探讨如何把session存入数据库
$_GET['goods_id']+0 的使用详解
php 生成唯一id的几种解决方法
php中存储用户ID和密码到mysql数据库的方法
PDO版本问题 Invalid parameter number: no parameters were bound
PHP仿盗链代码
PHP中设置时区方法小结
php注销代码(session注销)
iis下php mail函数的sendmail配置方法(官方推荐)
php 的加密函数 md5,crypt,base64_encode 等使用介绍
PHP新手用的Insert和Update语句构造类
PHP中SESSION使用中的一点经验总结
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
php addslashes及其他清除空格的方法是不安全的
Uncaught exception com_exception with message Failed to create COM object
php读取mysql乱码,用set names XXX解决的原理分享
Session保存到数据库的php类分享
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
PHP session会话的安全性分析
php中设置多级目录session的问题
php设计模式 Bridge (桥接模式)
提高define性能的php扩展hidef的安装和使用
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
©2014-2024 dbsqp.com