用于删除PHP中的cookie :
我在互联网上阅读,在课程幻灯片上, 如果我们将到期日期设置为“ time()-3600”,我们就无法确定客户端会删除Cookie,
因为客户端时间和服务器时间可能不同。
我同意上一条语句,但是如果“ time()”函数返回epoch值,为什么客户机不删除cookie? 这不是绝对价值吗?
我认为,如果我们设置time()-3600,则响应头set-cookie的有效期限为绝对值,并且cookie过期时浏览器可以解释该值以查找数据(作为客户端本地数据)
我做错了吗?
答案 0 :(得分:0)
客户的时钟可能与实际时间有明显偏差。在这种情况下,time()
是否为绝对值无关紧要,如果客户端计算机的时间错误,则可能会将绝对时间解释为错误,并认为到期时间仍在将来。 >
答案 1 :(得分:0)
time()
根据服务器的时钟返回自1970年1月1日UTC以来的秒数。 setcookie
然后将其格式化为the string format required by HTTP,该格式始终以GMT表示。因此,正确配置的服务器和客户端应同意time() - 3600
生成的值已过去,因此将删除cookie。
但是,有很多原因可能会导致错误:
time()
无法将本地时间正确地调整为UTC时间。值得注意的是,通常来说,您不能保证保证客户会做任何您想做的。如果出于安全原因要使会话无效,则必须在服务器上使其无效,并仅出于其他便利而删除cookie。