session_set_cookie_params($ lifetime)有什么作用?

时间:2018-07-02 04:22:43

标签: php

我很难理解PHP中的会话概念。我已经阅读了我所关注的文字 和在线多个教程。到目前为止,我对会话的了解是:

会话持续到关闭浏览器或在浏览器上设置超时为止。启动会话时,PHP将检查传入的会话ID(客户端上的cookie),然后可以获取/设置会话变量,该变量存储在服务器上该会话ID的文件中。

我对函数的困惑是:session_set_cookie_params($ lifetime)。这是否在客户端上为$ lifetime设置了会话ID cookie,从而更改了在浏览器关闭时结束的会话的默认行为?

我尝试过类似的事情:

<?php
$lifetime=strtotime('+1 year');
echo $lifetime;                                                 
session_set_cookie_params($lifetime);
session_start();
$_SESSION['name']='John';

?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <h1>Hello World </h1>
    </body>
</html>

当我刷新页面时,SessionId cookie的过期日期似乎没有改变,并且正在生成一个新的session id cookie。我还看到了一段视频,上面写着“与cookie会话没有过期时间不同。当您关闭浏览器时结束。”这似乎很公平,因为会话应该是关于。所以我的问题是session_set_cookie_params($ lifetime);真的吗?您可以使会话cookie持久吗?

1 个答案:

答案 0 :(得分:1)

  

session_set_cookie_params —设置会话cookie参数

设置在php.ini文件中定义的cookie参数。此功能的效果仅在脚本期间持续。因此,您需要在每次调用session_start()之前,为每个请求都调用session_set_cookie_params()。

此函数更新相应的PHP ini配置键的运行时ini值,这些值可通过ini_get()检索。

参考:-{http://php.net/manual/en/function.session-set-cookie-params.php