我在Internet Explorer 3.0中设置会话Cookie时遇到问题。有谁知道是否需要做一些特别的事情?
我正在使用PHP,例如: setcookie('test', '1');
我没有使用路径或到期时间,这有必要吗?
也许有人有一些旧的经验,还是周围有1997-1998年的Web开发书?
万一有人想知道为什么我要为此烦恼,因为没有人再使用IE3,很难,这是一个艺术项目。
编辑:只是为了澄清,我还没有尝试通过JS设置cookie,这是通过HTTP完成的。
因此,我已经深入到此问题的深处,有三个原因引起我的困惑:
首先,如果您没有为cookie设置path =参数,则IE3将假定该cookie 仅用于此确切路径。这意味着它将在/test.php
再次访问时发送回相同的cookie ,但在网站上其他任何地方都不会发送。
解决方案是在设置cookie时包含path = /。
其次,IE3无法识别没有Expires参数的cookie。解决方案是在Set-Cookie标头中以“标准” cookie格式包含Expires =。
第三个是由新的Max-Age参数引起的,由于某些原因,PHP有用地添加了该参数,IE3无法识别该参数。相反,它假设cookie名称直到Max-Age为止,包括Max-Age。
解决方案是改为使用PHP的header()
函数设置cookie ,如下所示:
header('Set-Cookie: test2=hi; expires=Tue, 02-Feb-2021 04:20:00 GMT; path=/');
(在这种情况下,test2是cookie的名称,hi是其中的内容,它从2月2日起从今天开始大约一年后过期。)