将相同的表单提交限制为每天一个?

时间:2018-03-07 17:09:44

标签: php html forms

我试图在HTML和PHP中编写一个非常简单的表单。这不是我真正知道该怎么做的事情,我试着去学习,很抱歉这个问题可能非常基本和愚蠢。

我运行一个网站,用户可以在某些目录上投票支持我们的网站,这有助于网站的发展。为了激励他们这样做,我需要记录人们的投票。我们已经通过让他们提交带有用户名的表单来做到这一点,但是由于我们使用的表单服务的更改,我现在不想尝试从头开始。

有什么方法可以限制人们每24小时才能提交一次用户名?这是他们投票支持网站的频率,人们一直在抱怨他们经常忘记他们是否已经投票。如果他们已经在某一天投票就拒绝他们的进入,那将是很好的。

我不知道这是否可能,试图研究如何做到这一点只能让我如何限制表格在关机之前可以接受的提交总数,这不是我想要的。

这是我到目前为止的代码:

    <HTML><HEADER><h1>Voting Validation - Top Site List</h1></HEADER><BODY>
<br>
<p>Input your username and click the button to vote!</p> 
<br>
<FORM ACTION="send-mail1.php" METHOD="POST">
<label for="Username">Username:</label>
<INPUT TYPE="TEXT" ID="Username" NAME="Uaername" SIZE=20></FORM>
<br>
<form action="http://www.top-site-list.com/roleplaying/vote/462074" target="_blank">
    <input type="submit" value="Vote!" />
</form></BODY></HTML>


<?php
    $mail_to = 'me@fake-email.com'; // specify your email here

    // Assigning data from the $_POST array to variables
    $Username = $_POST['Username'];

 //E-mail subject

 $Subject = 'Vote Log 1';

 //E-mail body

 $body_message = $Username "\r\n";

 <?php
    }
?>

1 个答案:

答案 0 :(得分:0)

您的网站需要以某种方式了解特定用户是否在过去24小时内投票。因此,它需要在某处存储该信息,最好是在数据库中。

这很简单,您只需要了解一些基本的SQL命令(INSERTUPDATESELECT)并学习如何在PHP中使用它(在线有很多教程)。

您可以使用列votesusername创建一个表last_vote(后者将存储用户名的最后一次投票的时间戳)。那是SQL的一部分。

现在,每当有人发布表单时,您需要检查指定的用户名是否在该表中,如果有,则检查其最后一次投票是否超过24小时。最后,您需要使用当前时间更新last_vote(或者如果以前没有用户名在数据库中,则将全新行插入表中。)

上面的示例是针对独立脚本(为简单起见),但当然您可以将类似的内容直接集成到CMS(很可能已经有表users),可以用来存储其他数据(这是评论中建议的内容。

编辑顺便说一下。你有拼写错误NAME="Uaername"