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_abortDiscard session array changes and finish session

说明

session_abort(): bool

session_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 函数 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";
?>

阅读全文 »

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_commit session_write_close() 的别名

发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数

session_commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7, PHP 8)

session_commitsession_write_close() 的别名

说明

此函数是该函数的别名: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_decode 解码会话数据

发表日期:2021-07-01 08:56:50 | 来源: | 分类:Session 函数

session_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

session_decode解码会话数据

说明

session_decode(string $data): bool

session_decode()$data 参数中的已经序列化的会话数据进行解码, 并且使用解码后的数据填充 $_SESSION 超级全局变量。

请注意,这里的反序列化方法不同于 unserialize() 函数。 序列化方法是 PHP 内置的,并且可以通过 session.serialize_handler 配置项进行修改。

参数

data

编码后的数据

返回值

成功时返回 true, 或者在失败时返回 false

参见

阅读全文 »

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_encode 将当前会话数据编码为一个字符串

发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数

session_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

session_encode将当前会话数据编码为一个字符串

说明

session_encode(): string

session_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
<?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_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 = ?): string

session_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 函数 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 = ?): string

session_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
<?php 
/* 设置会话名称为 WebsiteID */
$previous_name = session_name("WebsiteID");
echo "The previous session name was $previous_name<br />";
?>

阅读全文 »

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_register_shutdown 关闭会话

发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数

session_register_shutdown

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_register_shutdown关闭会话

说明

session_register_shutdown(): void

session_write_close() 函数注册为关闭会话的函数。

参数

此函数没有参数。

返回值

没有返回值。

错误/异常

如果函数调用失败,触发 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_resetRe-initialize session array with original values

说明

session_reset(): bool

session_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 函数 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 = ?): string

session_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
<?php 
class MySessionHandler implements SessionHandlerInterface{
    // 在这里实现接口}
$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();
// 现在可以使用 $_SESSION 保存以及获取数据了

阅读全文 »

Session 函数 session_start 启动新会话或者重用现有会话

发表日期:2021-07-01 08:56:52 | 来源: | 分类:Session 函数

      示例1
<?php 
// page1.phpsession_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();
// 如果使用 cookie 方式传送会话 IDecho '<br /><a href="page2.php">page 2</a>';
// 如果不是使用 cookie 方式传送会话 ID,则使用 URL 改写的方式传送会话 IDecho '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

      示例2
<?php 
// page2.phpsession_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor'];
 // greenecho $_SESSION['animal'];
   // catecho date('Y m d H:i:s', $_SESSION['time']);
// 类似 page1.php 中的代码,你可能需要在这里处理使用 SID 的场景echo '<br /><a href="page1.php">page 1</a>';
?>

      示例3
<?php 
// 设置 cookie 的有效时间为 1 天session_start([    'cookie_lifetime' => 86400,]);
?>

      示例4
<?php 
// 如果确定不修改会话中的数据,// 我们可以在会话文件读取完毕之后立即关闭它// 来避免由于给会话文件加锁导致其他页面阻塞session_start([    'cookie_lifetime' => 86400,    'read_and_close'  => true,]);


阅读全文 »

全部博文(1580)
集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。