未检索或存储隐藏的表单值

Hidden form value not retrieved or stored

我有一个简单的表单,可以通过 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);
}

只需使用$_POST数组。出于安全原因,也为了避免错误,最好确定您是想从 GET 还是 POST 读取。当然,您总是需要检查表单的操作是否指向正确的脚本。最后,你的代码可以直接缩短 and/or 优化:

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 和其他