在表单提交时覆盖变量


Overwriting variable on form submit

im 尝试使用表单覆盖 txt 文件上存储的变量,以下是表单代码:

 <form action="test.php" method="POST" NAME="action1">
            <input type="hidden" name="name" value="<?php echo $amount +10 ?>">
    <input type="button" value="increment" onclick="window.document.action1.submit()">

    </form>

这是测试.php文件:

<?php
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$amount = 0;
fwrite($fh, $amount);
fclose($fh);
?>

我知道我的代码有很多错误的地方,但如果有人告诉我表单代码有什么问题,那就太神奇了;谢谢你的时间。

您的变量名称非常混乱。您要在名为 name 的字段中放置一个值$amount + 10 ?而且在尝试输出之前,您永远不会定义$amount,因此这会给您带来错误。你期待那里会发生什么?

我认为您要保存的变量是 $_POST['name'] ,如下所示:

<?php
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $_POST['name']);
fclose($fh);
?>

但是你真的需要在使用它之前验证数据;否则,用户可以在你的txt文件中保存各种不好的东西。

编辑:根据注释,您希望从文件中读取,然后在用户提交表单时递增变量。一些想法:

  1. 您没有用于从文件中读取的代码。首先让该部分工作。
  2. 这很奇怪。这允许用户输入任何内容,而不仅仅是数字。这几乎肯定不是你想要做的。
  3. 您需要计划出您想要的内容并逐步实施。您当前的代码与您想要的代码没有太多相似之处。这部分是因为您没有考虑过数据的来源和去向。您可能会发现有关使用 PHP 进行表单处理的教程很有帮助。