如何设置30天的电子邮件验证以便用户重新发送?

upc*_*per -4 javascript php mysql wordpress jquery

我想在我的网页上设置一个计时器,如果用户填写了联系我们页面.他无法在接下来的30天内重新发送电子邮件或填写管理员的联系页面.

之后,他可以填写联系我们页面.

可能是电子邮件可能是独一无二的.通过电子邮件验证,我们可以在接下来的30天内保留该特定用户.

请帮我.

Bad*_*olf 6

您可以创建一个如下所示的数据库表:

CREATE TABLE contact_flood
(
   `email_address` TEXT NOT NULL,
   `time` INT NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)

当用户提交联系表单时,他们的电子邮件地址以及使用如下查询将表单保存到此表的时间:

"INSERT INTO contact_flood (email_address, time) VALUES ('".$escapedEmailAddress."', '".time()."')"
Run Code Online (Sandbox Code Playgroud)

然后,您可以设置表单提交检查,以检查电子邮件是否在表格中:

"DELETE FROM contact_flood WHERE time < (".time()." - 2592000)"
"SELECT COUNT(*) as count FROM contact_flood WHERE email_address = '".$escapedEmailAddress
Run Code Online (Sandbox Code Playgroud)

第一个查询删除表中超过30天的所有条目,第二个查询返回指定了电子邮件地址的所有剩余行.如果count查询产生的变量非零,则不发送电子邮件并向用户提供适当的消息.如果为零则继续发送电子邮件,然后运行之前的插入查询.

另一种方法是每30天只允许一个表单按IP地址提交.在这种情况下,您只需用ip_address替换email_address即可.在这种情况下,您还可以在加载表单之前运行检查,如果表单返回非零count变量,则甚至不加载表单.