表单提交时覆盖变量

Posted

技术标签:

【中文标题】表单提交时覆盖变量【英文标题】:Overwriting variable on form submit 【发布时间】:2015-03-24 21:59:30 【问题描述】:

我正在尝试使用表单覆盖存储在 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>

这里是 test.php 文件:

<?php

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

我知道我的代码有很多错误,但如果有人告诉我表单代码有什么问题,那就太棒了;感谢您的宝贵时间。

【问题讨论】:

你没有在两个 PHP 程序中定义$amount 【参考方案1】:

您的变量名称非常混乱。您将值 $amount + 10 放在名为 name 的字段中?而且您在尝试输出之前永远不会定义$amount,所以这会给您带来错误。您希望那里发生什么?

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

<?php

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

但是您真的需要在使用数据之前对其进行验证;否则,用户可能会在你的 txt 文件中保存各种不好的东西。

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

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

【讨论】:

我想要做的是当用户点击提交按钮时,txt 文件中的变量 $amount 变为 $amount+10(抱歉我的英语不好) 您想在提交后添加 10 个?还是在它之前?这一切都非常不清楚。 好吧,那就看看我的回答。您还必须在某些时候从文件中读取;您的问题中没有代码。

以上是关于表单提交时覆盖变量的主要内容,如果未能解决你的问题,请参考以下文章

form表单提交时,同一个名字的input类型的两个同时提交会覆盖吗

SHOWMODALDIALOG表单提交时禁止打开新窗口

提交表单时,会话变量会更改值。

jQuery提交表单而无需重新加载页面

表单提交时,更新的操作

使用 JavaScript 提交表单时,如何从用户那里获取数量变量?