7天入门php-session基础使用及预定义常量
来源:互联网 发布:阿里云os系统官网 编辑:程序博客网 时间:2024/06/06 03:34
一、session预定义常量
个人感觉PHP 最大的特点就是功能的实现都靠提供的函数扩展,函数扩展都是根据功能分大类的,session只是其中的一个扩展。
该扩展中定义了一些常量,可在PHP 编译或运行时动态载入时可用:
1、SID(string)
包含着会话名及会话ID 的常量,格式为"name=ID",如果会话ID 已经在恰当的会话cookie 中设定时则为空字符串。和session_id() 返回的是同一个ID。
2、PHP_SESSION_DISABLED(int)
自PHP 5.4.0起可用。如果会话已禁用,则返回session_status()的值。
3、PHP_SESSION_NONE(int)
自PHP 5.4.0起可用。在会话已启用,但还没有会话时返回session_status()的值。
4、PHP_SESSION_ACTIVE(int)
自PHP 5.4.0起可用。在会话已启用,并存在会话时返回session_status()的值。
注:会话在PHP中默认为激活(启用)。
session常量动态定义的,网友:
var_dump(defined('SID')); // bool(false) - Not defined...session_start();var_dump(defined('SID')); // bool(true) - Defined now!
自己测试了下,结果两个都是bool(true),应该是自己的问题。之后随后重新建一个php文档,执行:
<?phpecho SID; //提示使用了未定义常量session_start();echo SID; //显示"name=UID"样式字符串。说明确实是动态定义,因为没有会话就没有会话的UID.?>
二、基本用法
通过为每个独立用户分配唯一的会话 ID,可以实现针对不同用户分别存储数据的功能。 会话通常被用来在多个页面请求之间保存及共享信息。 一般来说,会话 ID 通过 cookie 的方式发送到浏览器,并且在服务器端也是通过会话 ID 来取回会话中的数据。 如果请求中不包含会话 ID 信息,那么 PHP 就会创建一个新的会话,并为新创建的会话分配新的 ID。
会话的工作流程很简单。当开始一个会话时,PHP 会尝试从请求中查找会话 ID (通常通过会话 cookie), 如果请求中不包含会话 ID 信息,PHP 就会创建一个新的会话。 会话开始之后,PHP 就会将会话中的数据设置到 $_SESSION 变量中。 当 PHP 停止的时候,它会自动读取 $_SESSION 中的内容,并将其进行序列化, 然后发送给会话保存管理器器来进行保存。
默认情况下,PHP 使用内置的文件会话保存管理器(files
)来完成会话的保存。 也可以通过配置项session.save_handler 来修改所要采用的会话保存管理器。 对于文件会话保存管理器,会将会话数据保存到配置项session.save_path 所指定的位置。
可以通过调用函数 session_start() 来手动开始一个会话。 如果配置项 session.auto_start 设置为1
, 那么请求开始的时候,会话会自动开始。
PHP 脚本执行完毕之后,会话会自动关闭。 同时,也可以通过调用函数 session_write_close() 来手动关闭会话。
Example #1 在 $_SESSION 中注册变量。
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>
Example #2 从 $_SESSION 中反注册变量。
<?php
session_start();
unset($_SESSION['count']);
?>
终结session:
1、session_destroy():常用方法。
2、unset($_SESSION):终结必杀,使用后无法继续使用$_SESSION 注册会话变量,所以一般不能用,算不上真正的方法。
网上的另一种方法,思路和删除cookie一样,没有具体实践,不知可行否:
3、setcookie(session_name(),session_id(),time() -8000000,..);
原网页:http://php.net/manual/zh/session.examples.basic.php
- 7天入门php-session基础使用及预定义常量
- php常量,预定义常量,魔术常量及基本数据类型
- 一:PHP语言基础_PHP常量_预定义常量
- 一:PHP语言基础_PHP常量_预定义常量
- php预定义常量
- PHP预定义常量
- PHP魔术常量常量(预定义常量)
- PHP的预定义常量
- php---预定义常量DIRECTORY_SEPARATOR
- php---预定义常量PHP_EOL
- PHP预定义常量__FILE__
- PHP 预定义常量 $_SERVER
- php的预定义常量
- PHP预定义常量__FILE__
- php预定义常量运用
- PHP-常量和预定义常量
- php session预定义数组
- PHP内置的预定义常量大全
- 网易2017秋招编程题2
- java.lang.Instrument 动态修改替换类代码
- 陶陶摘苹果v
- Matlab基础之单元数组和结构数组
- java中StringTokenizer类的用法
- 7天入门php-session基础使用及预定义常量
- 【设计模式系列】--抽象工厂
- mxnet window10 cpu 模式的安装
- C++标准库获取时间、简单的文件操作
- ps
- (Java)LeetCode-53. Maximum Subarray
- python 学习笔记(3) 各种数据类型常用的函数
- 线段树求区间最大值
- shell详解二