0

我目前正在通过编写一个简单的登录脚本来练习我的编码,该脚本包含一个计数器会话变量,每次登录尝试失败时都会增加 1。一旦有 3 次登录失败,登录页面将自动将用户引导到“错误”页面,并有一个计时器倒计时到他可以再次尝试登录。一旦计时器达到 0,计数器会话变量将被清除(重置到 0) 并且用户可以尝试再次登录。

我已经用会话变量编写了登录页面,但我目前卡在错误页面上,因为我不知道如何编写计时器。我在使用 PHP(使用 TIMESTAMP)或 Javascript/JQuery 之间纠结。

问题:

1.PHP和/或Javascript/JQuery的优缺点是什么

2.我目前没有在我的数据库中跟踪登录尝试,我应该这样做吗?

谢谢!PS:我目前正在使用统一服务器,MYSQL

4

2 回答 2

0

在您的php中,您可以执行以下操作(伪代码)

# clear old counters
if last_login_attempt_time > 5_mins_ago
    $_SESSION['count'] = 0
# redirect if counter high
if $_SESSION['count'] >= 3
    send_client_to(error_page)
    die() # ensure code proceeds no further
# getting here means that attempting a log in is okay for this session
# attempt login
if login_unsuccessful
    $_SESSION['count'] += 1
    reload_this_page()
else
    continue_as_normal()

在您的error_page(still php) 中,如果您想指出他们需要等待多长时间

remain = 5_minutes + last_login_attempt_time - time_now
if remain > 0
    # tell client to wait for remain time
else
    # tell client they don't have to wait

如果你想让倒计时动画化,你可以将 的值传递remain给一些JavaScripterror_page让它做一个视觉倒计时JavaScript。这只是为了视觉效果,与用户何时可以实际登录无关。

于 2013-08-20T17:23:49.613 回答
0
  1. 对于时钟,我会使用 javascript,但使用 php 后端。PHP 将用于存储实际时间,而 javascript 可用于在不刷新页面的情况下对计时器进行倒计时,然后在它达到零时重定向。

为此,您需要将时间添加到数据库中。无论如何添加它们并没有什么坏处,并且可以帮助调试或稍后帮助历史记录。

于 2013-08-19T13:25:21.000 回答