未检索或存储隐藏的表单值
Posted
技术标签:
【中文标题】未检索或存储隐藏的表单值【英文标题】:Hidden form value not retrieved or stored 【发布时间】:2021-08-19 18:43:20 【问题描述】:我有一个简单的表单,可以通过 php 存储日期和电子邮件,但不是特定的隐藏值。
目标:将隐藏值“clubo”存储到 f.txt 中。可以帮忙吗?
<form method="post" action="test.php">
<input type="hidden" name="clubo" value="clubo"/>
<input type="hidden" name="date" value="date-through-echo"/>
<input required type="email" name="email" placeholder="join!">
<input type="submit" name="submitclub" value="Join">
</form>
PHP
if (isset($_POST['submitclub']))
$clubo = $_POST['clubo'];
$date = $_POST['date'];
$email = $_POST['email'];
$file = fopen("f.txt", "a");
fwrite($file, $clubo);
fwrite($file, $date);
fwrite($file, $email);
fclose($file);
【问题讨论】:
你成功了。这就是问题所在。这不是 test.php。我纠正了这个问题,它应该可以正常工作。谢谢@biesior! 【参考方案1】:只需使用$_POST
数组。出于安全原因和避免错误,始终最好确定您是否要阅读GET
或POST
。当然,您总是需要检查表单的操作是否指向正确的脚本。最后,您的代码可以缩短和/或优化:
form.html
<form method="post" action="test.php">
<input type="hidden" name="clubo" value="clubo"/>
<input type="hidden" name="date" value="date-through-echo" /> <!-- no need for readonly for hidden fields -->
<input required type="email" name="email" placeholder="join!" /> <!-- no need for `multiple` attr for text fields -->
<input type="submit" name="submitclub" value="Join">
</form>
test.php
if (isset($_POST['submitclub']))
file_put_contents('g.txt',
'Club: '.$_POST['clubo'] . PHP_EOL .
'Date: '.$_POST['date'] . PHP_EOL .
'E-mail: '.$_POST['email']
);
或test.php,如果你想在附加模式下使用它:
if (isset($_POST['submitclub']))
file_put_contents('g.txt',
'Club: ' . $_POST['clubo'] . PHP_EOL .
'Date: ' . $_POST['date'] . PHP_EOL .
'E-mail: ' . $_POST['email'] . PHP_EOL,
FILE_APPEND
);
最后的想法:
虽然我不需要您的要求,但我认为使用某些数据库引擎可能会更好地存储数据,从 SQLITE 到一些更高级的引擎,如 mysql、Mongo 等。
【讨论】:
不客气,请删除多余的 cmets ;)以上是关于未检索或存储隐藏的表单值的主要内容,如果未能解决你的问题,请参考以下文章