[英]What does session_set_cookie_params($lifetime) do?
我很难理解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持久吗?
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.