在存储到数据库之前批准信息?

时间:2013-05-20 04:27:41

标签: php mysql database

我正在开发一个基于网络的iPhone应用程序,也可能是一个PC友好的网站版本。这里的目标是允许用户提交一个表单,其中特定的输入值将存储在数据库的表中。

请注意,此信息正在收集以供公开展示,并将发布到日历或列表中。

但是,为了避免任何拖钓或垃圾邮件,我希望在提交到表格之前必须批准提交。

创建表,连接数据库,将输入值存储到相应的表列中没有问题。唯一的问题是我如何设置审批系统?我可以通过电子邮件向表格添加信息吗?有没有办法批准cPanel中的录取?

这是我希望尽可能顺利完成的事情,我期待每天提交很多信息,并提供相当多的信息。

2 个答案:

答案 0 :(得分:3)

你可以有两种方法。

方法1

  • 拥有该表的两个副本(您要保存信息 成)。第一个应该命名为tableName_Input。第二个 应该是tableName_Final。

  • '_input'中的任何数据都被视为原始数据并需要批准。一旦批准,数据将被移动到'_final'。实时列表/日历始终从'_final'数据中读取。

方法2

  • 有一个名为'isApproved'的列,标志为0/1。如果1被批准,否则不是。仅显示已批准的数据。

现在,您如何获得批准的数据?

  • 您有一个像垃圾邮件过滤器这样的硬快速规则,可以告知某些帖子有效且默认情况下已获批准
  • 在每封帖子之后,您都会向用户发送一封电子邮件或一些通知(用户特有的通知),当回复时,应将其标记为已批准。

可选:您可以在批准时放置一个名为“批准意见”的列来填写内容。

流程图

  • 'FirstSubmitContent' - 存储用户提交信息的表 在批准之前。
  • 'FinalSubmitContent' - 存储最终信息的表

代码页

  • 内容页面 - >包含用户填写内容的表单
  • ContentActionPage - >调用控制器 - >调用模型
  • 控制器 - >根据页面操作调用模型
  • 型号 - >与数据库表交互

Flow Chart for the various steps in the process

我现在没有任何工具可以编写更详细的代码或流程图。我希望这会朝着正确的方向发展。

答案 1 :(得分:1)

在提交时验证表单并使用随机分配的激活码在您的数据库中的临时表中保存信息(您可以使用sha1)。然后向用户发送一封电子邮件,其中包含激活码和链接以验证它,即。 domain.com/activate.php?code=abcde12345

只需$_GET['code'],激活页面就非常简单。然后检查您是否在数据库中找到该代码的匹配项,最后使用您收集的所有信息准备查询,然后永久存储它。

然后你可以创建一个cron作业,每隔24-48小时删除该表中的所有记录,这样用户就必须在该时间范围内激活。