Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使会话cookie持续一年?_Php_Session - Fatal编程技术网

Php 如何使会话cookie持续一年?

Php 如何使会话cookie持续一年?,php,session,Php,Session,如何使会话cookie持续更长时间 我在登录我的用户的文件中使用以下代码: <? session_regenerate_id(); session_set_cookie_params(3600*24*365); session_start(); $_SESSION['u']['id'] = xxxx; ?> 在站点的其余部分,我只使用session_start()以启动会话 客户端上的cookie PHPSESSID设置为365天后过期,但是如果我一天没有使用该站点并返回,我将

如何使会话cookie持续更长时间

我在登录我的用户的文件中使用以下代码:

<?
session_regenerate_id();
session_set_cookie_params(3600*24*365);
session_start();
$_SESSION['u']['id'] = xxxx;
?>

在站点的其余部分,我只使用
session_start()
以启动会话


客户端上的cookie PHPSESSID设置为365天后过期,但是如果我一天没有使用该站点并返回,我将注销。我是否必须执行其他操作才能使cookie更持久?

在普通cookie中,您可以在设置cookie时手动执行此操作:

setcookie($foo, $bar, time()+(3600*24*365));

但是,在浏览器关闭后,会话cookie会自动删除(除非您使用的浏览器专门保存跨运行的会话)。老实说,如果您希望会话的持续时间比会话的持续时间长,那么您应该使用某种数据持久性(如MySQL)序列化所述会话。

这也是php.init中的php session.gc_maxlife。两天前,我被告知会话cookie更安全,并将所有内容更改为会话。我得把所有的东西都换回来。怎么样?我登录并在表中创建一行,会话将cookie保存到客户端以供参考,然后呢?我是否必须在每次页面加载时检查表以获取用户id?会话cookie的安全性取决于您的连接。它们本身并不比常规HTTP cookie更安全或更不安全。实际上,PHP会话使用HTTP cookies。如果您启动Wireshark,您实际上可以看到cookies(会话和“常规”HTTP)在标头中传递。根据经验,我可以告诉你,虽然你可能认为在每次加载页面时都要做大量的工作,但请记住,计算机真的、真的、真的很快。因此,是的,您希望在每次加载页面时进行用户检查/登录。