我很难理解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持久吗?
答案 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