Session 函数 业 ,精于勤 荒于嬉.
- 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_cache_expire 返回当前缓存的到期时间
-
发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数
-
示例1
01
<?php
02
/* 设置缓存限制为 “private” */
03
session_cache_limiter(
'private'
);
04
$cache_limiter
= session_cache_limiter();
05
/* 设置缓存过期时间为 30 分钟 */
06
session_cache_expire(30);
07
$cache_expire
= session_cache_expire();
08
/* 开始会话 */
09
session_start();
10
echo
"The cache limiter is now set to $cache_limiter<br />"
;
11
echo
"The cached session pages expire after $cache_expire minutes"
;
12
?>
- Session 函数 session_cache_limiter 读取/设置缓存限制器
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
1
<?php
2
/* 设置缓存限制器为 'private' */
3
session_cache_limiter(
'private'
);
4
$cache_limiter
= session_cache_limiter();
5
echo
"The cache limiter is now set to $cache_limiter<br />"
;
6
?>
- Session 函数 session_commit session_write_close() 的别名
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
说明
此函数是该函数的别名:session_write_close()。
- Session 函数 session_create_id Create new session id
-
发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数
-
示例1
01
<?php
02
// My session start function support timestamp managementfunction my_session_start() {
03
session_start();
04
// Do not allow to use too old session ID if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
05
session_destroy();
06
session_start();
07
}
08
}
09
// My session regenerate id functionfunction my_session_regenerate_id() {
10
// Call session_create_id() while session is active to // make sure collision free. if (session_status() != PHP_SESSION_ACTIVE) {
11
session_start();
12
}
13
// WARNING: Never use confidential strings for prefix! $newid = session_create_id('myprefix-');
14
// Set deleted timestamp. Session data must not be deleted immediately for reasons. $_SESSION['deleted_time'] = time();
15
// Finish session session_commit();
16
// 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);
17
// Set new custom session ID session_id($newid);
18
// Start with custom session ID session_start();
19
}
20
// Make sure use_strict_mode is enabled.// use_strict_mode is mandatory for security reasons.ini_set('session.use_strict_mode', 1);
21
my_session_start();
22
// Session ID must be regenerated when// - User logged in// - User logged out// - Certain period has passedmy_session_regenerate_id();
23
// Write useful codes?>
- Session 函数 session_decode 解码会话数据
-
发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数
-
session_decode
(PHP 4, PHP 5, PHP 7, PHP 8)
session_decode — 解码会话数据
说明
session_decode(string$data
): boolsession_decode() 对
$data
参数中的已经序列化的会话数据进行解码, 并且使用解码后的数据填充 $_SESSION 超级全局变量。请注意,这里的反序列化方法不同于 unserialize() 函数。 序列化方法是 PHP 内置的,并且可以通过 session.serialize_handler 配置项进行修改。
参数
-
data
-
编码后的数据
返回值
成功时返回
true
, 或者在失败时返回false
。 -
- Session 函数 session_destroy 销毁一个会话中的全部数据
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
1
<?php
2
// 初始化会话。// 如果要使用会话,别忘了现在就调用:session_start();
3
// 重置会话中的所有变量$_SESSION = array();
4
// 如果要清理的更彻底,那么同时删除会话 cookie// 注意:这样不但销毁了会话中的数据,还同时销毁了会话本身if (ini_get("session.use_cookies")) {
5
$params
= session_get_cookie_params();
6
setcookie(session_name(),
''
, time() - 42000,
$params
[
"path"
],
$params
[
"domain"
],
$params
[
"secure"
],
$params
[
"httponly"
] );
7
}
8
// 最后,销毁会话session_destroy();
9
?>
- 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_gc Perform session data garbage collection
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
1
<?php
2
// 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();
3
// Executes GC immediatelysession_gc();
4
// Clean up session ID created by session_gc()session_destroy();
5
?>
示例2
01
<?php
02
// 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';
03
$gc_period
= 1800;
04
session_start();
05
// Execute GC only when GC period elapsed. // i.e. Calling session_gc() every request is waste of resources. if (file_exists($gc_time)) {
06
if
(
filemtime
(
$gc_time
) < time() -
$gc_period
) {
07
session_gc();
08
touch(
$gc_time
);
09
}
10
}
11
else
{
12
touch(
$gc_time
);
13
}
14
?>
- Session 函数 session_get_cookie_params 获取会话 cookie 参数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
- 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_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_name 读取/设置会话名称
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
1
<?php
2
/* 设置会话名称为 WebsiteID */
3
$previous_name
= session_name(
"WebsiteID"
);
4
echo
"The previous session name was $previous_name<br />"
;
5
?>
- Session 函数 session_regenerate_id 使用新生成的会话 ID 更新现有会话 ID
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
01
<?php
02
// 注意:下列不是完整的代码,只是一个示例session_start();
03
// 检查会话被销毁的时间戳if (isset($_SESSION['destroyed']) && $_SESSION['destroyed'] < time() - 300) {
04
// 通常不会发生这种情况。如果发生,那么可能是由于不稳定的网络状况或者被攻击导致的 // 移除用户会话中的认证信息 remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
05
throw
(
new
DestroyedSessionAccessException);
06
}
07
$old_sessionid
= session_id();
08
// 设置会话销毁时间戳$_SESSION['destroyed'] = time();
09
// 从 PHP 7.0.0 开始, session_regenerate_id() 会自动保存会话数据// 如果直接调用 session_regenerate_id() 函数可能会导致会话丢失的情况,// 参见下面的例程session_regenerate_id();
10
// 新创建的会话不需要时间戳unset($_SESSION['destroyed']);
11
$new_sessionid
= session_id();
12
echo
"Old Session: $old_sessionid<br />"
;
13
echo
"New Session: $new_sessionid<br />"
;
14
print_r(
$_SESSION
);
15
?>
示例2
01
<?php
02
// 注意:下列不是完整的代码,只是一个示例// my_session_start() 和 my_session_regenerate_id()// 函数可以避免在网络不稳定的情况下导致会话丢失的问题。// 并且还可以避免用户会话被攻击者利用function my_session_start() {
03
session_start();
04
if
(isset(
$_SESSION
[
'destroyed'
])) {
05
if
(
$_SESSION
[
'destroyed'
] < time()-300) {
06
// 通常不会发生这种情况。如果发生,那么可能是由于不稳定的网络状况或者被攻击导致的 // 移除用户会话中的认证信息 remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
07
throw
(
new
DestroyedSessionAccessException);
08
}
09
if
(isset(
$_SESSION
[
'new_session_id'
])) {
10
// 尚未完全过期,可能是由于网络不稳定引起的。 // 尝试再次设置正确的会话 ID cookie。 // 注意:如果你需要移除认证标记,那么不要尝试再次设置会话 ID。 session_commit();
11
session_id(
$_SESSION
[
'new_session_id'
]);
12
// 现在有了新的会话 ID 了。 session_start();
13
return
;
14
}
15
}
16
}
17
function
my_session_regenerate_id() {
18
// 如果由于不稳定的网络导致没有创建会话 ID, // 那么就创建一个 $new_session_id = session_create_id();
19
$_SESSION
[
'new_session_id'
] =
$new_session_id
;
20
// 设置销毁时间戳 $_SESSION['destroyed'] = time();
21
// 保存并关闭会话 session_commit();
22
// 使用新的会话 ID 开始会话 session_id($new_session_id);
23
ini_set
(
'session.use_strict_mode'
, 0);
24
session_start();
25
ini_set
(
'session.use_strict_mode'
, 1);
26
// 新的会话不需要这 2 个数据了 unset($_SESSION['destroyed']);
27
unset(
$_SESSION
[
'new_session_id'
]);
28
}
29
?>
- 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_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_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_set_cookie_params 设置会话 cookie 参数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
- Session 函数 session_set_save_handler 设置用户自定义会话存储函数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
1
<?php
2
class
MySessionHandler
implements
SessionHandlerInterface{
3
// 在这里实现接口}
4
$handler
=
new
MySessionHandler();
5
session_set_save_handler(
$handler
, true);
6
session_start();
7
// 现在可以使用 $_SESSION 保存以及获取数据了
- Session 函数 session_start 启动新会话或者重用现有会话
-
发表日期:2021-07-01 08:56:52 | 来源: | 分类:Session 函数
-
示例1
1
<?php
2
// page1.phpsession_start();
3
echo
'Welcome to page #1'
;
4
$_SESSION
[
'favcolor'
] =
'green'
;
5
$_SESSION
[
'animal'
] =
'cat'
;
6
$_SESSION
[
'time'
] = time();
7
// 如果使用 cookie 方式传送会话 IDecho '<br /><a href="page2.php">page 2</a>';
8
// 如果不是使用 cookie 方式传送会话 ID,则使用 URL 改写的方式传送会话 IDecho '<br /><a href="page2.php?' . SID . '">page 2</a>';
9
?>
示例2
1
<?php
2
// page2.phpsession_start();
3
echo
'Welcome to page #2<br />'
;
4
echo
$_SESSION
[
'favcolor'
];
5
// greenecho $_SESSION['animal'];
6
// catecho date('Y m d H:i:s', $_SESSION['time']);
7
// 类似 page1.php 中的代码,你可能需要在这里处理使用 SID 的场景echo '<br /><a href="page1.php">page 1</a>';
8
?>
示例3
1
<?php
2
// 设置 cookie 的有效时间为 1 天session_start([ 'cookie_lifetime' => 86400,]);
3
?>
示例4
1
<?php
2
// 如果确定不修改会话中的数据,// 我们可以在会话文件读取完毕之后立即关闭它// 来避免由于给会话文件加锁导致其他页面阻塞session_start([ 'cookie_lifetime' => 86400, 'read_and_close' => true,]);
- 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)