只有登录用户才能编辑表单
Posted
技术标签:
【中文标题】只有登录用户才能编辑表单【英文标题】:Only logged in user can edit a form 【发布时间】:2019-12-30 10:41:24 【问题描述】:只有登录的用户可以编辑表单。如果其他用户登录并尝试编辑表单,则在第一个用户注销或关闭表单之前,他将无法编辑表单。
【问题讨论】:
在表格中添加列,该列将跟踪数据是否正在被编辑。每次有人打开表单进行编辑或完成后提交表单时,您都可以更新标志列。 【参考方案1】:可能最简单的方法是在数据库中创建一个名为locked_time
或其他名称的列。
如果用户开始编辑,我们会检查时间戳,如果超过 X 分钟,则允许用户编辑并更新时间戳。
为了确保如果用户在同一页面上一段时间保持锁定,您可以使用 JS 每分钟向 php 发送一个请求,这将更新时间戳并保持记录锁定。一旦用户关闭浏览器,时间戳将不再更新,因此锁定将过期,另一个用户可以开始编辑。
希望这会有所帮助!
【讨论】:
【参考方案2】:如果有多个表单需要在任何用户访问过的情况下被锁定,我建议创建一个以form_id
updated_at
locked
作为列的表(例如table_locks
)。例如,当用户单击该表单的“编辑”链接/按钮时,您检查表单是否被锁定(锁定 == 1),如果它被锁定,则提示用户其他人正在编辑它。如果表单未锁定,则将锁定值设置为 1,直到用户发布新更改或使用时间戳添加时间/超时限制。
【讨论】:
以上是关于只有登录用户才能编辑表单的主要内容,如果未能解决你的问题,请参考以下文章
Python全栈100天学习笔记Day44 Web表单介绍及使用