如何使用PHP在表单上设置提交限制

时间:2019-05-15 07:57:01

标签: php html forms

我正在尝试创建一个.php页面,其中包含具有提交限制的表单。我正在按顺序查找这些步骤:

  1. 用户到达表格
  2. 用户看到该表单仍处于打开状态
  3. 用户提交表单信息
  4. 表单向txt文件添加+1,每次提交表单时+1,直到txt文件达到数字10为止。
  5. 如果txt文件等于10的预设值,我希望表格消失并且不再允许提交。

我尝试使用fopen,并使用$ limit = fopen(“ count.txt”,“ r”)使它工作,但是我对于首先需要做什么感到困惑。我使用的代码是我在网上编写并找到的其他php代码的片段。通常我可以弄清楚这样的事情,因为我知道它很可能很简单。

<?php 
$limit = fopen("count.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("count.txt"));

if ($limit = 10){
echo ("Cannot Submit Anymore");}
else{
echo ('<form>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
</form>');}

fclose($myfile);
$limit = fopen('count.txt', 'c+');
flock($limit, LOCK_EX);
$count = (int)fread($limit, filesize('count.txt'));
ftruncate($limit, 0);
fseek($limit, 0);
fwrite($limit, $count + 1);
flock($limit, LOCK_UN);
fclose($limit);
?>

我完全陷入困境,不确定一切工作的顺序。

1 个答案:

答案 0 :(得分:0)

弄清楚我需要做什么,尽管我不知道代码是否符合要求。无论如何,这是我的工作:

总共5页:

  • index.php [着陆页]
  • tally.php [用于更新不同txt文件的PHP代码]
  • count.txt [已购买多少个座位。在这种情况下,输入数字0]
  • left.txt [还剩几个席位。在这种情况下,输入了数字10]
  • max.txt [我卖了几个座位。在这种情况下,输入了数字10]

index.php [着陆页]:

<?php 
$max = file_get_contents('max.txt');
$limit = file_get_contents('count.txt');
$left = file_get_contents('left.txt');
$maxed = 'Sorry, All Seats Have Been Sold';
if ($limit >= $max){
echo $maxed;}
else{
echo '
<form action="tally.php"> // This form can be edited to your needs
First name:<br><input type="text"><br>
Last name:<br><input type="text">
<input type="submit" value="Submit">
</form>' . 'Seats Remaining:' . $left;}
?>

tally.php [用于更新不同txt文件的PHP代码]:

<?php 
$limit = fopen("count.txt", "c+");
flock($limit, LOCK_EX);
$count = (int)fread($limit, filesize("count.txt"));
ftruncate($limit, 0);
fseek($limit, 0);
fwrite($limit, $count + 1);
flock($limit, LOCK_UN);
fclose($limit);
$left = fopen("left.txt", "c+");
flock($left, LOCK_EX);
$remaining = (int)fread($left, filesize("left.txt"));
ftruncate($left, 0);
fseek($left, 0);
fwrite($left, $remaining - 1);
flock($left, LOCK_UN);
fclose($left);
header('Location: http://www.yoursite.com/'); // this links back to your submission form
exit;
?>

count.txt [购买了多少个座位]:

0

left.txt [剩下多少个座位]

10

max.txt [我卖了多少个座位]

10

希望这对以后的人有所帮助,该代码在服务器上运行时会抛出大量错误日志,我可以在后端看到它,但是它对我自己和我所需要的都有效。如果某人在这一天能有所进步,我和其他许多人将不胜感激。