2

我使用 phprunner 开发了一个数据捕获表单,数据在 mysql 数据库上更新。

由于输入时的拼写错误,我只允许用户编辑自己的数据,并进一步将其限制为一个字段(自由文本和容易出错的字段)。

是否可以在给定时间段(例如 1 天)后锁定记录。
这里的目标是为用户“编辑”能力设置一种到期时间,因此从存储记录中提取的历史报告总是相同的。

如果是这样,如何实现?

谢谢

4

4 回答 4

0

简单的方法是首先检查记录是否可以编辑。例如,当您构建编辑表单时,检查该记录是多久之前创建的。如果大于 1 天,则输出“抱歉,已禁用编辑”而不是表单。

如果您有相对聪明的用户可以伪造表单并提交数据,那么您还可以在 sqlupdate级别进行过滤以禁止更改:

UPDATE yourtable
SET ...
WHERE (id = $id) AND ((record_created + interval 1 day) > now())
于 2012-11-05T21:46:17.723 回答
0

您可以在表中设置一个日期输入列(使用 NOW() 表示当前时间)并在用户尝试更新他们的帖子时检查它。使用date_add() 或 date_sub()计算时间差。

于 2012-11-05T21:40:17.637 回答
0

创建一个日期创建列,然后检查该日期与今天日期之间的日期差异。如果它大于一,那么您可以使用 php 或其他方式锁定它:

if ($timeDiff greater than a day){
    disable edit button
else
    enable edit button
}
于 2012-11-05T21:43:07.030 回答
0

这只会阻止数据库被更新,但不会隐藏用户“更新/提交”按钮

 UPDATE table
    SET  ...
 where last_update < date_sub(now(), interval 1 day)
      And id = $id

要向用户隐藏按钮,您可以(在前端)

SELECT 
    id, 
    IF(last_update < date_sub(now(), interval 1 day), 1, 0) as show_update_button
    .....
于 2012-11-05T21:57:25.940 回答