2017-06-12 102 views
0

我有一个输入表单,人们可以通过网络将关于媒体的数据添加到SQL数据库。我的问题是 - 有没有办法确认所有添加的数据?通过php确认更改和添加到sql数据库?

例子:

未知用户填写表单垃圾邮件,并按下提交按钮,我得到了有关消息(或必须确认)的信息被发送到SQL数据库之前。

+2

这个东西可以通过一个临时表来实现,在这个临时表中,您可以为决策制定等数据进行处理。 –

回答

0

如果您正确构建SQL插入以防止SLQ注入等,并且您的目标是缓和内容,那么这与向您的表中添加名为“已确认”的列一样简单默认值为“0”。然后,您的查看功能将检查此值(如果$已确认)...),并且只有在设置了已确认的标志后才能查看输入。您可以在审核期间删除,甚至可以有一个垃圾收集器cron作业,删除比预设时间早的未确认条目。

如果您这样做是因为您担心数据进入数据库可能会破坏数据库(SQL注入和其他恶意问题),那么调节输入是非常耗时的解决方案。您应该阅读preparing queries以避免这些问题。

0

这里有三个基本选项,这取决于您的特定需求。

用条件标志插入到表中,需要通过“确认”条目来设置条件标志。这需要在一段宽限时间(通常是一天)之后定期清除未经确认的条目,以避免乱抛垃圾的数据。这可能会使搜索变得困难,因为您必须在所有索引中包含此标志才能保持性能并避免显示未经确认的数据。

第二种方法是获取所有参数,将它们打包为单个注入隐藏字段的JSON,或者将每个元素都呈现为与之前提交的相同名称的隐藏字段。然后确认过程将重新发布这些参数,并附加一个“确认”步骤。

第三种方法是使用JavaScript,jQuery或Angular或React等前端框架完成所有客户端操作。这样可以避免往返服务器,并且服务器不需要做任何额外的工作来验证事情得到确认。