php 有效时间问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:56:57
1.php

<?php
$my_cookie = "abcdefghijk";
setcookie("mycookie",$my_cookie,time()+5);
echo "cookie is set!~~~";
?>

2.php

<?php
if(isset( $_COOKIE['mycookie'] ))
{
echo "cookie is good!!~~~";
echo $_COOKIE['mycookie'];
}

else
echo "cookie is dead!~~~";
?>

1.php设置了cookie,然后2.php去读取,我把这2个页面放到服务器上
然后在浏览器中打开1.php,设置了cookie之后,然后用2.php去读取
我在1.php中设置了cookie的有效期,为什么没起作用呢,2.php一直能读取到那个值

请问一下,这个是为什么,我这样是有效的设置了cookie的值吗?
谢谢你的回答
那我想问一下,我现在要实现一个东西,在客户端设置一个标志
这个标志能保存5秒,5秒过后就失效,我在其他页面来检测这个标志,如果失效,那么不能进行操作
我自然就想到了cookie的有效期,现在看来这个有效期不能用了
请问下,要实现我的想法,要怎么做呢?谢谢

唉。。。还是缺少经验啊,你这个办法不错也。

最后再请问你一下,如果限定了cookie内容,不是时间,是其他的东西
有没办法控制页面有效期呢?谢谢,分太少了,不好意思啦

COOKIE的有效期,是指在磁盘文件上保存的有效期。

即使有效期设置为0(不存盘的内存COOKIE),在整个回话期间(浏览器重新关闭以前)都是有效的。

补充:
你可以同时保存一个COOKIE,为当前的时间值time(),另外的程序首先检测这个COOKIE,看是否过期,没有过期再使用。

js就能搞定cooke的问题,给你一段代码
<script language="JavaScript">
function getCookie(name)
{
var cname = name + "=";
var dc = document.cookie;
if (dc.length > 0)
{
begin = dc.indexOf(cname);
if (begin != -1)
{
begin += cname.length;
end = dc.indexOf(";", begin);
if (end == -1) end = dc.length;
return unescape(dc.substring(begin, end));
}
}
return null;
}function writeCookie(name, value)
{
var expire = "";
var hours = 365;
expire = new Date((new Date()).getTime() + hours * 3600000);
expire = ";path=/;expires=" + expire.toGMTString();
document.cookie = name + "=" + escape(value) + expire;
}