【问题标题】:Do I have to explicitly close session before redirecting to another page?在重定向到另一个页面之前,我是否必须明确关闭会话?
【发布时间】:2011-01-27 18:30:46
【问题描述】:

在重定向到另一个页面之前我必须明确关闭会话吗?

session_start();
if (isset($_SESSION['login']))
    $login = $_SESSION['login'];
else {
    // is session_write_close() necessary here?
    header('Location: /login');
    exit();
}

有什么方法可以告诉 PHP 关闭会话,但也不必费心保存会话数据? (类似于session_discard_close()

【问题讨论】:

    标签: php session redirect


    【解决方案1】:

    这个问题比“不”更难回答了。

    但是,如果您阅读session_write_close 的 PHP 手册页,您会看到它指出:

    会话数据通常存储在 您的脚本在没有 需要调用 session_write_close(), 但由于会话数据被锁定到 防止并发写入只有一个 脚本可以在任何时间对会话进行操作 时间。一起使用框架集时 通过课程,您将体验到 由于这个原因,帧一一加载 锁定。你可以减少时间 需要加载所有帧 尽快结束会议 会话变量的更改已完成。

    因此,在某些极端情况下,答案是“不,但如果这样做可能会更快”。

    【讨论】:

      【解决方案2】:

      不,没有必要。会话将在请求结束时自动关闭。来自documentation

      会话数据通常存储在 您的脚本在没有 需要调用 session_write_close(), 但由于会话数据被锁定到 防止并发写入只有一个 脚本可以在任何时间对会话进行操作 时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 2013-07-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多