【问题标题】:Hidden form value not retrieved or stored未检索或存储隐藏的表单值
【发布时间】:2021-08-19 18:43:20
【问题描述】:

我有一个简单的表单,可以通过 php 存储日期和电子邮件,但不是特定的隐藏值。

目标:将隐藏值“clubo”存储到 f.txt 中。可以帮忙吗?

HTML

<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!

标签: php html forms post store


【解决方案1】:

只需使用$_POST 数组。出于安全原因和避免错误,始终最好确定您是否要阅读GETPOST。当然,您总是需要检查表单的操作是否指向正确的脚本。最后,您的代码可以缩短和/或优化:

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 ;)
猜你喜欢
  • 2019-11-07
  • 1970-01-01
  • 2020-01-11
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多