如何测试某人的cookie是否无效? (PHP)

时间:2009-06-21 04:40:13

标签: php cookies

有人能告诉我一个简单的方法我可以测试某人的cookie是否未在php中启用?我想创建一个测试脚本来确定用户是否可以正确使用我的网站。如果不能,我会将它们重定向到几个屏幕截图,向他们展示要改变的内容。

我只使用$ _SESSION []变量,我相信cookie的唯一用途是,在我的设置中是会话ID变量。

理想情况下,我想在PHP中打开一个选项,让用户通过GET / POST来回传递会话ID,如果他们的cookie搞砸了。

任何Javascript都不适合我,因为他们可能没有启用javascript。

3 个答案:

答案 0 :(得分:3)

setcookie("cookies","yes",time() +"3600");

然后重定向,测试下一页是否设置了cookie。至少需要两页才能知道cookie是否已启用。

答案 1 :(得分:0)

使用SID
请参阅http://jp2.php.net/function.session-starthttp://jp2.php.net/manual/en/session.idpassing.php

如果cookie被接受,SID将为空,否则包含会话ID(实际上是PHPSESSID = session_id())。但这取决于编译标志,所以一定要检查参考。

您可以将其用作:

echo '<br /><a href="page2.php?' . SID . '">page 2</a>';

答案 2 :(得分:0)

这样做的标准方法是使用“证据在布丁中”编程。

有两种方法可以做到这一点:

  • 如果在没有Javascript的情况下测试cookie,请在重定向后发出cookie并通过PHP读取它。如果它在那里,很好。如果不是......你知道cookie没有启用。
  • 如果您可以使用Javascript,请通过PHP发布cookie并使用Javascript读取它(我认为cookie将在第一页加载时出现,因为如果浏览器获得setcookie标题,则会设置cookie)。