`
tw5566
  • 浏览: 448642 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

php中session的处理机制 (转)

    博客分类:
  • php
阅读更多

1。
      PHP服务端默认的session存储是文件存放方式,在Windows上PHP默认的Session服务端文件存放在C:\WINDOWS\Temp下,可用session_save_path ('./t/');指定具体存放目录。

2。
      SESSION 的实现中采用COOKIE技术,SESSION会在客户端保存一个包含session_id(SESSION编号)的COOKIE;在服务器端保存其他 session变量,比如session_name等等。当用户请求服务器时也把session_id一起发送到服务器,通过session_id提取所保存在服务器端的变量,就能识别用户是谁了。同时也不难理解为什么SESSION有时会失效了。
     当客户端禁用COOKIE时(点击IE中的“工具”—“Internet选项”,在弹出的对话框里点击“安全”—“自定义级别”项,将“允许每个对话 COOKIE”设为禁用),session_id将无法传递,此时SESSION失效。不过php5在linux/unix平台可以自动检查cookie 状态,如果客户端设置了禁用,则系统自动把session_id附加到url上传递。windows主机则无此功能

3。
Session_start() :开始一个会话或者返回已经存在的会话。
在使用Session_start()之前浏览器不能有任何输出,否则会发生以下错误。
你可以在php.ini里启动session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。

4。
如果在session.auto_start=1,会让session_save_path ('./t/');变的无效。因为后一条语句须放前面。

5。
保存在服务器上的session文件,没有遇到session_destroy();,不会被删除。
即使客户端浏览器已关闭。
不过服务器端每次产生的session文件都能保证session文件名的随机性和唯一性。

6。http://www.toplee.com/blog/300.html

增加PHP的Session存储和处理能力

可能很多PHPer都用到了PHP提供的Session功能,可以方便的进行会话功能处理,PHP服务端默认的session存储是文件存放方式,在Windows上PHP默认的Session服务端文件存放在C:\WINDOWS\Temp下,*NIX下默认存放在/tmp下,如果说并发访问很大或者session建立太多,在这两个目录下就会存在大量类似sess_xxxxxx的session文件,同一个目录下文件数过多会导致性能下降,并且可能导致受到攻击最终出现文件系统错误。针对这样的情况,PHP本身体提供了比较好的解决办法。
  不少朋友可能都没有注意到php.ini里面Session设置部分中有这样一项:
;     session.save_path = "N;MODE;/path"


  这项设置提供给我们可以给session存放目录进行多级散列,其中“N”表示要设置的目录级数,“MODE”表示目录的权限属性,默认为600,在 WINDOWS上基本是不用设置的,*NIX上也可以不用设置,后面的“/path”表示session文件存放的根目录路径,比如我们设置为下面的格式
session.save_path = "2;/tmp/phpsession"

  上面的设置表示我们把/tmp/phpsession目录作为php的session文件存放根目录,在该目录下进行两级目录散列,每一级目录分别是0-9和a-z共36个字母数字为目录名,这样存放session的目录可以达到36*36个,相信作为单台服务器来说,这是完全够用了,如果说您的系统架构设计为多台服务器共享session数据,可以把目录级增加到3级或者更多。
  需要注意的是,php自己并不会自动创建子目录,需要您自己动手去创建,网上找到这样的自动创建目录的代码,大家可以做个参考。下面的代码自动创建3级子目录,可以自己动手根据需要进行修改。
<?php
set_time_limit(0);
$string = '0123456789abcdefghijklmnopqrstuvwxyz';
$length = strlen($string);
function makeDir($param)
{
    if(!file_exists($param)) {
        makeDir(dirname($param));
        mkdir($param);
    }
}
for($i = 0; $i < $length; $i++) {
    for($j = 0; $j < $length; $j++) {
        for($k = 0; $k < $length; $k++) {
            makeDir($string[$i].'/'.$string[$j].'/'.$string[$k]);
        }
    }
}
?>

  大家可能注意到前面的文字中提到了有关多服务器共享php的SESSION,这是很多应用都会遇到的问题,网上也有不少相关的资源,大家可以去google一下,Michael这里只提一下大概的思路。
  一般来说我们用到最多的方法有两种:
  1、NFS或者Samba共享的方法,让各个服务器上存放session文件的磁盘共享,这种方法简单可行。
  2、集中存储到数据库中,这是比较多的实现方法,通过php提供的session_set_save_handler()函数来重定义session函数,推荐使用这种方法。

转自:http://www.phpweblog.net/fuyongjie/archive/2009/06/09/6687.html

分享到:
评论

相关推荐

    Laravel中的Sessionid处理机制详解

    本文主要给大家介绍了关于Laravel中Sessionid处理机制的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 在 Laravel 的配置文件 config/session.php 中可以设置 Session Cookie Name,...

    php中session垃圾回收机制

    这是PHP的GC垃圾处理机制,防止内存溢出。 GC的工作就是扫描所有的Session信息,用当前时间减去session最后修改的时间,同session.gc_maxlifetime参数进行比较,如果生存时间超过gc_maxlifetime(默认24分钟),就将该...

    PHP session 会话处理函数

    PHP Session 变量 当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。...Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在

    关于PHP常见面试题.pdf

    请说明在PHP中的错误处理机制。 5. 什么是PHP中的超全局变量(Superglobals)?请列举几个常用的PHP超全局变量。 6. PHP中的面向对象编程(Object-Oriented Programming)是怎样实现的?请简要介绍在PHP中的面向对象...

    php官方中文帮助手册

    ■垃圾回收机制 ■函数参考■影响 PHP 行为的扩展 ■音频格式操作 ■身份认证服务 ■日历和事件相关扩展 ■命令行特有的扩展 ■压缩与归档扩展 ■信用卡处理 ■加密扩展 ■数据库扩展 ■文件系统相关扩展 ■国际化...

    最新PHP中文手册7月1号php_manual_zh.part3.rar

    ■垃圾回收机制 ■函数参考 ■影响 PHP 行为的扩展 ■音频格式操作 ■身份认证服务 ■日历和事件相关扩展 ■命令行特有的扩展 ■压缩与归档扩展 ■信用卡处理 ■加密扩展 ■数据库扩展 ■文件系统相关扩展 ■国际化...

    PHP官方正版中文帮助手册

     垃圾回收机制  函数参考 影响 PHP 行为的扩展  音频格式操作  身份认证服务  日历和事件相关扩展  命令行特有的扩展  压缩与归档扩展  信用卡处理  加密扩展  数据库扩展  文件系统相关扩展  国际化...

    php中文手册

    垃圾回收机制 函数参考 影响 PHP 行为的扩展 音频格式操作 身份认证服务 日历和事件相关扩展 命令行特有的扩展 压缩与归档扩展 信用卡处理 加密扩展 数据库扩展 文件系统相关扩展 国际化与字符编码支持 图像生成和...

    php5.5.10中文手册下载[官方版][2014-02-20最后编译]

    ◦垃圾回收机制 ◦DTrace Dynamic Tracing •函数参考◦影响 PHP 行为的扩展 ◦音频格式操作 ◦身份认证服务 ◦针对命令行的扩展 ◦压缩与归档扩展 ◦信用卡处理 ◦加密扩展 ◦数据库扩展 ◦日期与时间相关扩展 ◦...

    PHP+MySQL动态网站开发

    理论部分包括PHP技术概述和基本语法、字符串和正则表达式、数组和函数、文件和目录操作、PHP的异常处理机制、XML文件操作、Session和Cookie会话管理、Smarty模板引擎、Ajax技术和MySQL数据库。实战部分包括在线投票...

    PHP 5.4.40 Released 中文手册

    •垃圾回收机制 •DTrace 动态跟踪 •函数参考•影响 PHP 行为的扩展 •音频格式操作 •身份认证服务 •针对命令行的扩展 •压缩与归档扩展 •信用卡处理 •加密扩展 •数据库扩展 •日期与时间相关扩展 •文件系统...

    php5中文手册20111124

    垃圾回收机制 函数参考 影响 PHP 行为的扩展 音频格式操作 身份认证服务 日历和事件相关扩展 命令行特有的扩展 压缩与归档扩展 信用卡处理 加密扩展 数据库扩展 文件系统相关扩展 国际化与字符编码支持 图像生成和...

    PHP5完全攻略

    PHP输出控制灵活,可以在HTML中嵌入PHP代码,也可以由PHP输出HTML语言,或者在命令行下执行,将结果输出到其他设备。 PHP支持模板,实现程序逻辑与用户界面分离 跨平台 与多个服务器兼容,包括Apache MicroSoft ...

    PHP5最新中文手册CHM(2013年10月更新)

    ■垃圾回收机制 ■DTrace Dynamic Tracing ■函数参考 ■影响 PHP 行为的扩展 ■音频格式操作 ■身份认证服务 ■针对命令行的扩展 ■压缩与归档扩展 ■信用卡处理 ■加密扩展 ■数据库扩展 ■日期与时间相关扩展 ■...

    最新PHP中文手册7月1号php_manual_zh.part1.rar

    ■垃圾回收机制 ■函数参考 ■影响 PHP 行为的扩展 ■音频格式操作 ■身份认证服务 ■日历和事件相关扩展 ■命令行特有的扩展 ■压缩与归档扩展 ■信用卡处理 ■加密扩展 ■数据库扩展 ■文件系统相关扩展 ■国际化...

    最新PHP中文手册7月1号php_manual_zh.part4.rar

    ■垃圾回收机制 ■函数参考 ■影响 PHP 行为的扩展 ■音频格式操作 ■身份认证服务 ■日历和事件相关扩展 ■命令行特有的扩展 ■压缩与归档扩展 ■信用卡处理 ■加密扩展 ■数据库扩展 ■文件系统相关扩展 ■国际化...

    php5手册.chm

    垃圾回收机制 函数参考 影响 PHP 行为的扩展 音频格式操作 身份认证服务 日期与时间相关扩展 针对命令行的扩展 压缩与归档扩展 信用卡处理 加密扩展 数据库扩展 文件系统相关扩展 国际化与字符编码支持 图像生成和...

    php_manual_zh.chm

    ■垃圾回收机制 ■函数参考 ■影响 PHP 行为的扩展 ■音频格式操作 ■身份认证服务 ■日历和事件相关扩展 ■命令行特有的扩展 ■压缩与归档扩展 ■信用卡处理 ■加密扩展 ■数据库扩展 ■文件系统相关扩展 ■国际化...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-23 6.session⑤-session配置 session的gc机制 自定义session处理器 9-24 0.回顾 9-24 1.回顾2 9-24 2.php文件编程①-文件操作原理 如何获取文件信息 如何读文件 9-24 3.php文件编程②-如何写文件 拷贝文件 创建和...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    9-23 6.session⑤-session配置 session的gc机制 自定义session处理器 9-24 0.回顾 9-24 1.回顾2 9-24 2.php文件编程①-文件操作原理 如何获取文件信息 如何读文件 9-24 3.php文件编程②-如何写文件 拷贝文件 创建和...

Global site tag (gtag.js) - Google Analytics