gpt4 book ai didi

mysql - 登录过程(可能在 MySQL/PHP 中)

转载 作者:行者123 更新时间:2023-11-29 09:01:40 25 4
gpt4 key购买 nike


我有一个似乎无法解决的问题:我正在为应用程序创建登录过程;每当用户尝试登录但失败时,都会插入/更新最多 5 次尝试记录。第 5 次尝试后,该帐户将被锁定。
我有两个用于该过程的表,保存用户信息的“用户”表和“尝试”表。
首先,我不想使用 session 或 cookie 变量来计算尝试次数(可以删除 cookie,并且 session 变量可能会变得太多,因为它是一个高流量站点);我计划使用更新语句将数字增加 1。
这就是困惑开始的地方:
首先,我不确定是否应该更新尝试表中的行,或者只是为每次尝试插入一个新行(我的偏好是在第一次尝试时插入,并在剩余 4 次尝试时更新该行)。
其次,我需要一种方式来表明今天所做的尝试与昨天完全不同。例如,如果用户昨天尝试登录,并在第三次尝试后成功,然后今天再次尝试登录,我不希望该尝试增加昨天的尝试。因此,在某种程度上,在每次成功登录后,我需要一种方法来确保成功登录后的任何尝试都会自行启动新的登录过程。
我不确定我的问题是否清楚。如果需要,请要求更多说明。
我绞尽脑汁想了两天也没有解决这个过程。


谢谢

P.S:我在大部分处理中使用存储过程,以消除处理过程中的来回移动。

最佳答案

无需使用单独的表来进行登录尝试,只需在用户表上添加一个计数器作为新的整数列即可。每次尝试失败时,都会增加该记录的该列。每次成功登录后,将该记录的该列重置为 0。

如果您需要对所有尝试进行持续审核,那么这是一个单独的问题。审核不是登录过程的一部分。出于这个考虑,您会将失败的尝试写入某种审核日志。该日志可以是数据库中的表,但不应以任何方式链接到事务表。它可以是用于所有类型的应用程序事件的通用日志系统,而不仅仅是用于失败的登录。 (再次,完全是另一个问题。)

关于mysql - 登录过程(可能在 MySQL/PHP 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com