是有可能设置无限的时间,一个cookie的会话变量?(is it possible to set u

2019-06-28 03:58发布

如何设置无限的时间为一个会话饼干吗? 我曾尝试下面的下面,但我仍然得到了一天后,我的会话未定义指数告示:

setcookie('idcourse', 'CourseID', 9999999999);
setcookie('namecourse', 'CourseName', 9999999999);
setcookie('id', 'ID', 9999999999);

if (isset($_POST['idcourse'])) {

$_SESSION['idcourse'] = $_POST['idcourse'];

}

if (isset($_POST['namecourse'])) {

$_SESSION['namecourse'] = $_POST['namecourse'];

}

if (isset($_POST['id'])) {

$_SESSION['id'] = $_POST['id'];

}

Answer 1:

您必须添加一个到期日,或该cookie将被用作一个会话和过期当你离开该网站,

你在做什么是接近直角的,但你需要稍微改变它;

要设置到期9999999999(您需要指定一个UNIX TIMESTAMP将来),所以我使用以下命令:

$inTwoMonths = 60 * 60 * 24 * 60 + time();
setcookie('idcourse', 'CourseID', $inTwoMonths );
setcookie('namecourse', 'CourseName', $inTwoMonths );
setcookie('id', 'ID', $inTwoMonths );

将饼干2个月到期,可以相应地增加此。



Answer 2:

你不应该设置cookies来无限的时间。 如果你需要存储的东西一段较长的时间,使用localStorage的 。 他们不会过期。 他们不是真正的Cookie,但它也是在浏览器设置信息的一种方式。 你只需要使用JavaScript与此有关。

至于PHP,你可以做的是你可以依靠的,将永久保存您的信息数据库。 您可以在本地存储,您可以使用加载会话信息的事情。 但是,我的建议是只使用localStorage的。



文章来源: is it possible to set unlimited time for a cookie to a session variable?