无需言 做自己 业 ,精于勤 荒于嬉.
- Session 函数 session_encode 将当前会话数据编码为一个字符串
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_encode
(PHP 4, PHP 5, PHP 7, PHP 8)
session_encode — 将当前会话数据编码为一个字符串
说明
session_encode(): stringsession_encode() 返回一个序列化后的字符串,包含被编码的、储存于 $_SESSION 超全局变量中的当前会话数据。
请注意,序列方法 和 serialize() 是不一样的。 该序列方法是内置于 PHP 的,能够通过设置 session.serialize_handler 来设置。
返回值
返回当前会话编码后的内容。
注释
警告在调用 session_decode() 之前必须先调用 session_start()。
- Session 函数 session_commit session_write_close() 的别名
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
说明
此函数是该函数的别名:session_write_close()。
- Session 函数 session_gc Perform session data garbage collection
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php // Note: This script should be executed by the same user of web server process.// Need active session to initialize session data storage access.session_start(); // Executes GC immediatelysession_gc(); // Clean up session ID created by session_gc()session_destroy(); ?>
示例2
<?php // Note: session_gc() is recommended to be used by task manager script, but// it may be used as follows.// Used for last GC time check$gc_time = '/tmp/php_session_last_gc'; $gc_period = 1800; session_start(); // Execute GC only when GC period elapsed. // i.e. Calling session_gc() every request is waste of resources. if (file_exists($gc_time)) { if (filemtime($gc_time) < time() - $gc_period) { session_gc(); touch($gc_time); } } else { touch($gc_time); } ?>
- Session 函数 session_id 获取/设置当前会话 ID
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_id
(PHP 4, PHP 5, PHP 7, PHP 8)
session_id — 获取/设置当前会话 ID
说明
session_id(string$id
= ?): stringsession_id() 可以用来获取/设置 当前会话 ID。
为了能够将会话 ID 很方便的附加到 URL 之后, 你可以使用常量
SID
获取以字符串格式表达的会话名称和 ID。 请参考 会话处理。参数
-
id
-
如果指定了
id
参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id() 函数。 不同的会话管理器对于会话 ID 中可以使用的字符有不同的限制。 例如文件会话管理器仅允许会话 ID 中使用以下字符:a-z A-Z 0-9 , (逗号)和 - (减号)
注意: 如果使用 cookie 方式传送会话 ID,并且指定了
id
参数, 在调用 session_start() 之后都会向客户端发送新的 cookie, 无论当前的会话 ID 和新指定的会话 ID 是否相同。
返回值
session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串(
""
)。参见
- session_regenerate_id() - 使用新生成的会话 ID 更新现有会话 ID
- session_start() - 启动新会话或者重用现有会话
- session_set_save_handler() - 设置用户自定义会话存储函数
- session.save_handler
-
- Session 函数 session_destroy 销毁一个会话中的全部数据
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php // 初始化会话。// 如果要使用会话,别忘了现在就调用:session_start(); // 重置会话中的所有变量$_SESSION = array(); // 如果要清理的更彻底,那么同时删除会话 cookie// 注意:这样不但销毁了会话中的数据,还同时销毁了会话本身if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // 最后,销毁会话session_destroy(); ?>
- Session 函数 session_module_name 获取/设置会话模块名称
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_module_name
(PHP 4, PHP 5, PHP 7, PHP 8)
session_module_name — 获取/设置会话模块名称
说明
session_module_name(string$module
= ?): stringsession_module_name() 获取或设置会话模块名称,也被称做:session.save_handler。
参数
-
module
-
如果指定
module
参数,则使用 指定值作为会话模块。 禁止传入"user"
作为此参数的值, 请使用 set_set_save_handler() 来设置用户自定义的会话处理器。
返回值
返回当前所用的会话模块名称。
更新日志
版本 说明 7.2.0 不允许设置模块名称为 "user"
。 在之前的版本中,如果设置为 "user",那么会被静默的忽略到。 -
- Session 函数 session_get_cookie_params 获取会话 cookie 参数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
- Session 函数 session_name 读取/设置会话名称
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php /* 设置会话名称为 WebsiteID */ $previous_name = session_name("WebsiteID"); echo "The previous session name was $previous_name<br />"; ?>
- Session 函数 session_register_shutdown 关闭会话
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_register_shutdown
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
session_register_shutdown — 关闭会话
参数
此函数没有参数。
返回值
没有返回值。
错误/异常
如果函数调用失败,触发
E_WARNING
级别的错误。
- Session 函数 session_regenerate_id 使用新生成的会话 ID 更新现有会话 ID
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php // 注意:下列不是完整的代码,只是一个示例session_start(); // 检查会话被销毁的时间戳if (isset($_SESSION['destroyed']) && $_SESSION['destroyed'] < time() - 300) { // 通常不会发生这种情况。如果发生,那么可能是由于不稳定的网络状况或者被攻击导致的 // 移除用户会话中的认证信息 remove_all_authentication_flag_from_active_sessions($_SESSION['userid']); throw(new DestroyedSessionAccessException); } $old_sessionid = session_id(); // 设置会话销毁时间戳$_SESSION['destroyed'] = time(); // 从 PHP 7.0.0 开始, session_regenerate_id() 会自动保存会话数据// 如果直接调用 session_regenerate_id() 函数可能会导致会话丢失的情况,// 参见下面的例程session_regenerate_id(); // 新创建的会话不需要时间戳unset($_SESSION['destroyed']); $new_sessionid = session_id(); echo "Old Session: $old_sessionid<br />"; echo "New Session: $new_sessionid<br />"; print_r($_SESSION); ?>
示例2
<?php // 注意:下列不是完整的代码,只是一个示例// my_session_start() 和 my_session_regenerate_id()// 函数可以避免在网络不稳定的情况下导致会话丢失的问题。// 并且还可以避免用户会话被攻击者利用function my_session_start() { session_start(); if (isset($_SESSION['destroyed'])) { if ($_SESSION['destroyed'] < time()-300) { // 通常不会发生这种情况。如果发生,那么可能是由于不稳定的网络状况或者被攻击导致的 // 移除用户会话中的认证信息 remove_all_authentication_flag_from_active_sessions($_SESSION['userid']); throw(new DestroyedSessionAccessException); } if (isset($_SESSION['new_session_id'])) { // 尚未完全过期,可能是由于网络不稳定引起的。 // 尝试再次设置正确的会话 ID cookie。 // 注意:如果你需要移除认证标记,那么不要尝试再次设置会话 ID。 session_commit(); session_id($_SESSION['new_session_id']); // 现在有了新的会话 ID 了。 session_start(); return; } } } function my_session_regenerate_id() { // 如果由于不稳定的网络导致没有创建会话 ID, // 那么就创建一个 $new_session_id = session_create_id(); $_SESSION['new_session_id'] = $new_session_id; // 设置销毁时间戳 $_SESSION['destroyed'] = time(); // 保存并关闭会话 session_commit(); // 使用新的会话 ID 开始会话 session_id($new_session_id); ini_set('session.use_strict_mode', 0); session_start(); ini_set('session.use_strict_mode', 1); // 新的会话不需要这 2 个数据了 unset($_SESSION['destroyed']); unset($_SESSION['new_session_id']); } ?>
- Session 函数 session_save_path 读取/设置当前会话的保存路径
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_save_path
(PHP 4, PHP 5, PHP 7, PHP 8)
session_save_path — 读取/设置当前会话的保存路径
说明
session_save_path(string$path
= ?): stringsession_save_path() 返回当前会话的保存路径。
参数
-
path
-
指定会话数据保存的路径。 必须在调用 session_start() 函数之前调用 session_save_path() 函数。
注意:
在某些操作系统上,建议使用可以高效处理 大量小尺寸文件的文件系统上的路径来保存会话数据。 例如,在 Linux 平台上,对于会话数据保存的工作而言,reiserfs 文件系统会比 ext2fs 文件系统能够提供更好的性能。
返回值
返回保存会话数据的路径。
-
- Session 函数 session_cache_limiter 读取/设置缓存限制器
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php /* 设置缓存限制器为 'private' */ session_cache_limiter('private'); $cache_limiter = session_cache_limiter(); echo "The cache limiter is now set to $cache_limiter<br />"; ?>
- Session 函数 session_reset Re-initialize session array with original values
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_reset
(PHP 5 >= 5.6.0, PHP 7, PHP 8)
session_reset — Re-initialize session array with original values
说明
session_reset(): boolsession_reset() reinitializes a session with original values stored in session storage. This function requires an active session and discards changes in $_SESSION.
参数
此函数没有参数。
返回值
成功时返回
true
, 或者在失败时返回false
。更新日志
版本 说明 7.2.0 The return type of this function is bool now. Formerly, it has been void. 参见
- $_SESSION
- The session.auto_start configuration directive
- session_start() - 启动新会话或者重用现有会话
- session_abort() - Discard session array changes and finish session
- session_commit() - session_write_close 的别名
- Session 函数 session_set_save_handler 设置用户自定义会话存储函数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php class MySessionHandler implements SessionHandlerInterface{ // 在这里实现接口} $handler = new MySessionHandler(); session_set_save_handler($handler, true); session_start(); // 现在可以使用 $_SESSION 保存以及获取数据了
- Session 函数 session_status 返回当前会话状态
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_status
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
session_status — 返回当前会话状态
说明
session_status(): intsession_status() 被用于返回当前会话状态。
返回值
-
PHP_SESSION_DISABLED
会话是被禁用的。 -
PHP_SESSION_NONE
会话是启用的,但不存在当前会话。 -
PHP_SESSION_ACTIVE
会话是启用的,而且存在当前会话。
参见
- session_start() - 启动新会话或者重用现有会话
-
- Session 函数 session_set_cookie_params 设置会话 cookie 参数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
- Session 函数 session_unset 释放所有的会话变量
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_unset
(PHP 4, PHP 5, PHP 7, PHP 8)
session_unset — 释放所有的会话变量
说明
session_unset(): voidsession_unset() 会释放当前会话注册的所有会话变量。
返回值
没有返回值。
- Session 函数 session_abort Discard session array changes and finish session
-
发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数
-
session_abort
(PHP 5 >= 5.6.0, PHP 7, PHP 8)
session_abort — Discard session array changes and finish session
说明
session_abort(): boolsession_abort() finishes session without saving data. Thus the original values in session data are kept.
参数
此函数没有参数。
返回值
成功时返回
true
, 或者在失败时返回false
。更新日志
版本 说明 7.2.0 The return type of this function is bool now. Formerly, it has been void. 参见
- $_SESSION
- The session.auto_start configuration directive
- session_start() - 启动新会话或者重用现有会话
- session_reset() - Re-initialize session array with original values
- session_commit() - session_write_close 的别名
- Session 函数 session_create_id Create new session id
-
发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数
-
示例1
<?php // My session start function support timestamp managementfunction my_session_start() { session_start(); // Do not allow to use too old session ID if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) { session_destroy(); session_start(); } } // My session regenerate id functionfunction my_session_regenerate_id() { // Call session_create_id() while session is active to // make sure collision free. if (session_status() != PHP_SESSION_ACTIVE) { session_start(); } // WARNING: Never use confidential strings for prefix! $newid = session_create_id('myprefix-'); // Set deleted timestamp. Session data must not be deleted immediately for reasons. $_SESSION['deleted_time'] = time(); // Finish session session_commit(); // Make sure to accept user defined session ID // NOTE: You must enable use_strict_mode for normal operations. ini_set('session.use_strict_mode', 0); // Set new custom session ID session_id($newid); // Start with custom session ID session_start(); } // Make sure use_strict_mode is enabled.// use_strict_mode is mandatory for security reasons.ini_set('session.use_strict_mode', 1); my_session_start(); // Session ID must be regenerated when// - User logged in// - User logged out// - Certain period has passedmy_session_regenerate_id(); // Write useful codes?>
- Session 函数 session_cache_expire 返回当前缓存的到期时间
-
发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数
-
示例1
<?php /* 设置缓存限制为 “private” */ session_cache_limiter('private'); $cache_limiter = session_cache_limiter(); /* 设置缓存过期时间为 30 分钟 */ session_cache_expire(30); $cache_expire = session_cache_expire(); /* 开始会话 */ session_start(); echo "The cache limiter is now set to $cache_limiter<br />"; echo "The cached session pages expire after $cache_expire minutes"; ?>
- 前端开发(1)
- 数据库(0)
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)
- JAVA(0)
- Android(0)
- Linux(0)
- 其他(0)