Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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_Codeigniter - Fatal编程技术网

在PHP中设置持久cookie

在PHP中设置持久cookie,php,codeigniter,Php,Codeigniter,我正在使用codeigniter框架。 这是我在浏览器中设置cookie的当前代码。如果有一个已知的IP地址,那么它不会要求您输入安全答案。o、 用户需要输入安全答案 一切正常,除了当我完全关闭broswer或重新启动电脑时,cookies被删除,它再次要求我输入该信息 代码 $ip_address = $_SERVER['REMOTE_ADDR']; $ip_cookie = array('name'=>'ip', 'value'=>$ip_a

我正在使用codeigniter框架。 这是我在浏览器中设置cookie的当前代码。如果有一个已知的IP地址,那么它不会要求您输入安全答案。o、 用户需要输入安全答案

一切正常,除了当我完全关闭broswer或重新启动电脑时,cookies被删除,它再次要求我输入该信息

代码

$ip_address = $_SERVER['REMOTE_ADDR'];
$ip_cookie = array('name'=>'ip',
                   'value'=>$ip_address,
                   'expire' => time() + (10 * 365 * 24 * 60 * 60)
                   );
set_cookie($ip_cookie);

正如您所看到的,我还为此设置了过期时间。

可能不是原因,但您将过期日期设置为54年左右。发件人:

过期时间以秒为单位设置,并将其添加到当前时间 时间不包括时间,只包括秒数 从现在起,您希望cookie有效。如果过期时间已过 设置为零,cookie将仅在浏览器打开时持续


也许浏览器对过期时间有一个上限。您还应该检查浏览器开发人员工具中收到的实际值。

查看CodeIgniter cookie帮助程序:我已经检查过了。我发现只有一件事需要指定过期时间。我已经在我的代码中提到过了。请确保您的浏览器没有配置为在关闭时删除cookie。那么,您想让我从expire中删除
time()
?因为手册上说您必须这样做才能获得有效的cookie,所以这是一个有趣的操作过程……只要涉及到时间,我就使用
time()+60*60*24*30
在常规密码cookie中。同样的事情也发生在这件事上。它再次要求输入密码。因此,您在两个地方执行了手册警告的操作,但都不起作用?我已从两个cookie中删除了
time()
。而且效果很好。您能解释一下,为什么
time()
会导致过期问题吗?