只有登录用户才能编辑表单

Posted

技术标签:

【中文标题】只有登录用户才能编辑表单【英文标题】:Only logged in user can edit a form 【发布时间】:2019-12-30 10:41:24 【问题描述】:

只有登录的用户可以编辑表单。如果其他用户登录并尝试编辑表单,则在第一个用户注销或关闭表单之前,他将无法编辑表单。

【问题讨论】:

在表格中添加列,该列将跟踪数据是否正在被编辑。每次有人打开表单进行编辑或完成后提交表单时,您都可以更新标志列。 【参考方案1】:

可能最简单的方法是在数据库中创建一个名为locked_time 或其他名称的列。

如果用户开始编辑,我们会检查时间戳,如果超过 X 分钟,则允许用户编辑并更新时间戳。

为了确保如果用户在同一页面上一段时间保持锁定,您可以使用 JS 每分钟向 php 发送一个请求,这将更新时间戳并保持记录锁定。一旦用户关闭浏览器,时间戳将不再更新,因此锁定将过期,另一个用户可以开始编辑。

希望这会有所帮助!

【讨论】:

【参考方案2】:

如果有多个表单需要在任何用户访问过的情况下被锁定,我建议创建一个以form_idupdated_atlocked 作为列的表(例如table_locks)。例如,当用户单击该表单的“编辑”链接/按钮时,您检查表单是否被锁定(锁定 == 1),如果它被锁定,则提示用户其他人正在编辑它。如果表单未锁定,则将锁定值设置为 1,直到用户发布新更改或使用时间戳添加时间/超时限制。

【讨论】:

以上是关于只有登录用户才能编辑表单的主要内容,如果未能解决你的问题,请参考以下文章

通过表单授权更改数据库

如何只允许一个用户在 php 中编辑表单?

Python全栈100天学习笔记Day44 Web表单介绍及使用

Python全栈100天学习笔记Day44 Web表单介绍及使用

用户登录时不显示表单,但用户注销时显示

CakePHP 2.4:不需要的预填充表单数据