【问题标题】:Keep session after browser is closed关闭浏览器后保持会话
【发布时间】:2012-12-28 02:18:15
【问题描述】:

我希望能够保持 PHP 会话,即使在浏览器关闭后也是如此。我知道this 问题,他们建议使用 session_set_cookie_parameters() 参数,但我无法找到一个不会过期且适用于我域上所有目录的工作示例。如果有人能帮忙,那就太棒了。

【问题讨论】:

  • 我想避免使用cookie,因为它们是客户端,因此可以由客户端编辑或修改;从今以后,人们更容易获得对他人帐户的未经授权的访问。
  • 因此将会话 ID 存储在 cookie 中并在它们返回时重新创建
  • 这就是我最终所做的。谢谢。 :)

标签: php session session-variables session-cookies session-timeout


【解决方案1】:

在会话开始前使用带有非零值的session_set_cookie_parameters()

请参考here

【讨论】:

    【解决方案2】:

    Session 代表“直到浏览器关闭”。 会话是过期的东西。 如果您不希望它过期,那么您可能根本不想要会话。你最好也阅读cookie。我想这就是你需要的。

    但是您可以在开始会话之前使用session_set_cookie_parameters() 为会话cookie 赋予非零生命周期,或者将session.cookie_lifetime 设置为非零。

    记住session_set_cookie_params() 需要在 session_start() 之前为每个单独的页面请求调用。 Read more

    代码:

    <?php 
    
    session_set_cookie_params(30 * 60, "/");
    session_start();
    print_r(session_get_cookie_params());
    
    ?>
    

    输出:

    数组([生命周期] => 1800 [路径] => / [域] => [安全] =>)

    解释:

    将 cookie 设置为在 30 分钟后过期,并可在网站的任何位置使用。

    【讨论】:

    • 啊,好吧。那么使用 cookie 可能会更好?
    • 是的,这取决于您的要求。阅读链接,这将帮助您弄清楚您需要什么
    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2012-04-06
    • 1970-01-01
    相关资源
    最近更新 更多