PHP cookie和时间问题

时间:2011-11-05 21:01:27

标签: php cookies

昨晚我发布了一个问题,但不幸的是,我对自己所处的情况并不具体。我已经完成了一项家庭作业,我们将为博客创建一个“评论”部分。但是,要让用户发表评论,他们必须输入验证码。我们的任务是使用cookie来跟踪登录尝试。

我在原始问题中未能正确解释的是:

我们必须使用cookies。这是一项专门针对cookie实施的练习。这不是最好的做法,因为它很脆弱。我们的导师解释了为什么我们不应该在“现实世界”的情况下这样做,但他希望我们理解并演示使用cookies。

昨晚我发布了一个问题,但不幸的是,我对自己所处的情况并不具体。我已经完成了一项家庭作业,我们将为博客创建一个“评论”部分。但是,要让用户发表评论,他们必须输入验证码。我们的任务是使用cookie来跟踪登录尝试。

我在原始问题中未能正确解释的是:

我们必须使用cookies。这是一项专门针对cookie实施的练习。这不是最好的做法,因为它很脆弱。我们的导师解释了为什么我们不应该在“现实世界”的情况下这样做,但他希望我们理解并演示使用cookies。

我们需要为用户提供他们希望登录的机会。但是,如果他们在30秒的窗口内尝试五次,则会被锁定三分钟。

大多数人提到我应该使用会话,这是有道理的。但是,这是不允许的。

在高级别,您需要做的就是存储时间戳而不是“计数”。然后,在每个请求中,您可以丢弃超过30秒的时间戳并计算其余时间。

我们需要为用户提供他们希望登录的机会。但是,如果他们在30秒的窗口内尝试五次,则会被锁定三分钟。

大多数人提到我应该使用会话,这是有道理的。但是,这是不允许的。一位用户提到我需要做的就是存储时间戳而不是“计数”,然后丢弃超过30秒的时间戳并计算其余时间。这是有道理的,但你如何实现这一目标呢?

这是一个功课问题,我当然不希望代码。我只是想要了解整个'cookie'的清晰度。我应该在数组中存储时间戳吗?如果是这样,你怎么做?如果时间超过30秒,我该如何将它们从阵列中删除?

我认为我一般都缺乏对cookie的理解。任何澄清将不胜感激。我希望我能够简洁地浪费任何宝贵的时间。谢谢。

1 个答案:

答案 0 :(得分:1)

我的建议是,如果你必须使用cookie,你可以简单地设置单个cookie作为失败尝试的标志,过期时间为30秒,如果所有4个失败的尝试标志都存在并且它们再次失败,则设置另一个标志cookie在3分钟后到期,并且在设置该标志时不允许任何尝试。