易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP 实现多服务器共享 SESSION 数据

PHP 实现多服务器共享 SESSION 数据
PHP 实现多服务器共享 SESSION 数据
一、问题起源
稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站
,用户系统是统一的,即一套
用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接
口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全部通
行的问题,映射到技术上,其实就是各个服务器之间如何实现共享 SESSION 数据的问题。
二、PHP SESSION 的工作原理
在解决问题之前,先来了解一下 PHP SESSION 的工作原理。在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用
session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ID(此 ID 可通过函数session_id() 获取/设置)。
SESSION ID 可以通过两种方式保留在客户端,使得请求不同的页面时,PHP 程序可以获知客户端的
SESSION ID;一种是将 SESSION ID 自动加入到 GET 的 URL 中,或者 POST 的表单中,默认情况下,变量名为
PHPSESSID;另一种是通过 COOKIE,将 SESSION ID 保存在 COOKIE 中,默认情况下,这个 COOKIE 的名字为
PHPSESSID。这里我们主要以 COOKIE 方式进行说明,因为应用比较广泛。
那么 SESSION 的数据保存在哪里呢?当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中。默认情况下,php.ini 中设置的
SESSION 保存方式是 files(session.save_handler = files),即使用读写文件的方式保存 SESSION
数据,而 SESSION 文件保存的目录由 session.save_path 指定,文件名以 sess_ 为前缀,后跟 SESSION
ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据即是序列化之后的 SESSION
数据了。如果访问量大,可能产生的 SESSION 文件会比较多,这时可以设置分级目录进行 SESSION
文件的保存,效率会提高很多,设置方法为:session.save_path="N;/save_path",N 为分级的级数,save_path
为开始目录。当写入 SESSION 数据的时候,PHP 会获取到客户端的 SESSION_ID,然后根据这个 SESSION ID 到指定的
SESSION 文件保存目录中找到相应的 SESSION 文件,不存在则创建之,最后将数据序列化之后写入文件。读取


相关文档:

php生成验证码图片代码

文件check.php
<?php
//生成验证码图片
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用
session_start();//将随机数存入session中
$_SESSION['authnum']="";
$im = imagecreate(62,20); //制定图片背景大小
$black = ImageC ......

php interface implements multibus

<?php
/*
 * Created on 2009-10-28
 * 分子如梦o(╯□╰)o
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
 interface pusb{
    function verson();
    ......

php的数据操作ui

 <?php
 
error_reporting(0);//7all,0no
ini_set('display_errors', '0');
function myerror($errno, $errstr, $errfile, $errline)
{
    echo "<BR>error type: [$errno] $errstr<br />\n";
    echo "in line $errline of file $errfile<BR>";
} ......

php常用函数3


 
<?php
class useful{
 /*
  * 常用函数类
  * 作    者:多菜鸟
  * 联系邮箱:kingerq AT msn DOT com
  * 创建时间:2005-07-18
  * 来源:http://blog.csdn.net/kingerq
  */
 
 /*
  * 功能:格式化数字,以标准MONEY格式输出
......

PHP 配置 Editplus

 
打开Editplus,选择工具=》配置用户工具,就用当前的默认组好了。单击“添加工具”选择第一个子项“程序”,取个名字给它,“PhpDebug”吧。在命令中浏览到php.exe的位置,参数选择为“文件路径”,这时我的界面上两个输入框中分别为“D:\usr\php.exe”和&ldquo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号