我想知道用户是否有可能破坏他们的会话变量。
例如,如果他们清除他们的cookies,会破坏他们的会话变量吗?我想制作一个系统来记录一个人做了多少次失败的尝试,而不是把数据插入SQL数据库中,而不是做一个会话变量。任何关于最有效的方法的建议都将是伟大的!
最佳答案
不,会话存储在服务器的tmp
文件夹中。用户只有会话id(通常存储在cookie中)。
因此,即使用户清除了cookies,会话也会在服务器上保持活动状态,直到phps垃圾收集生效。
但是,如果用户确实删除了会话id,服务器将为他们生成一个新的会话id。没有办法限制网站访问者可以做多少次登录尝试,但您可以对数据库中的用户帐户尝试登录的次数添加限制。
您可以这样做,但要更改数据库中的users
表。添加一个time_locked_out
字段,并将其设置为默认值null
,以及一个login_attempts
字段,默认值为0
。
如果帐户尝试登录超过3次,请将time_locked_out
字段设置为当前时间,并且在该时间(或其他时间)之后的30分钟内不要让它再次尝试登录。