首页> 基础笔记 >PHP基础学习 >常用功能块 常用功能块

PHP会话控制之Session的应用

作者:小萝卜 2019-08-30 浏览 1096

简介Session和Cookie相似,都是用来储存使用者的相关资料。但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下。

Session概述

Session和Cookie相似,都是用来储存使用者的相关资料。但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下。

cookie和session在php中的使用区别:

cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别。

cookie存放在客户端浏览器中,

session保存在服务器上。

它们之间的联系是session ID 一般保存在cookie中,或者放在URL上。

禁用cookie的方法:

点击IE中的“工具”—“Internet选项”,在弹出的对话框里点击“安全”—“自定义级别”项,将“允许每个对话COOKIE”设为禁用.

配置Session

php.ini文件和Session有关的几个常用配置选项

session.auto_start = 0 ; 在请求启动时初始化session 

session.cache_expire = 180 ; 设置缓存中的会话文档在 n 分钟后过时

session.cookie_lifetime = 0 ; 设置按秒记的cookie的保存时间, 相当于设置Session的过期时间,为0时表示直到浏览器被重启 

session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。但启用该选项也有一些限制,如果确实启用了 session.auto_start,则不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象。

session.cookie_path = / ; cookie的有效路径 

session.cookie_domain = ; cookie的有效域

session.name = PHPSESSID;  用在cookie里的session的名字 

session.save_handler = files ; 用于保存/取回数据的控制方式 

session.save_path = /tmp ; 在 save_handler 设为文件时传给控制器的参数, 这是数据文件将保存的路径. 

session.use_cookies = 1 ; 是否使用cookies 

Session的声明与使用

Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。

session_start()函数的语法格式如下

Bool session_start(void)

注意:session_start()函数之前不能有任何输出

Session以数组的形式使用

如:$_SESSION[‘session名’]

session_start(); //启动Session 的初始化 
$_SESSION["username"] = "skygao"; //注册Session 变量,赋值为一用户名称
$_SESSION["uid"] = 1; //注册Session 变量,赋值为一个用户的ID 

注册一个会话变量和读取Session

在PHP中使用Session变量,除了要启动之外,还要经过注册的过程。注册和读取Session变量,都要通过访问$_SESSION数组完成。

在$_SESSION关联数组中的键名具有和PHP中普通变量相同的命名规则。

Session变量会被保存在服务器端的某个文件中,该文件的位置是通过php.ini文件,在session.save_path属性指定的目录下。

注销变量与销毁Session

1.bool session_destroy(void)

删除服务器端保留session信息的文件

2.unset($_SESSION[‘键名’])

删除内存中由Session数组保存的变量

清除所有变量可以使用 $_SESSION=array()

3.如果session是基于Cookie的,那么我们还需要删除客户端保留的cookie文件

Session的自动回收机制

php.ini中相关的配置

session.cookie_lifetime=0; 关闭浏览器相应的cookie文件即被删除

session.gc_maxlifetime;设置过期session时间,默认1440秒(24分钟)

session.gc_probability/session.gc_divisor;启动垃圾回收机制的概率(建议值为1/1000~5000)

传递 Session ID

1.通过Cookie传递Session ID

相当于 setCookie(session_name(),session_id,0,’/’)

2.通过URL 传递Session ID

A、手动在页面中添加 session_name()和session_id()

B、自动获取Session ID的方法

1.Linux方式

2.Windows方式

很赞哦! (0)

文章评论

    高端网站建设