如何在表单中缓存用户输入

时间:2013-04-12 03:06:36

标签: php html caching input

我正在尝试在表单中缓存用户输入。我的代码是:

    echo '
<form method="POST">
    Name:<br /><input class="contact_name" type="text" name="contact_name" maxlength="32" placeholder="Enter Name" /><br />
    Email:<br /><input class="contact_email" type="text" name="contact_email" maxlength="50" placeholder="Email Address" /><br />
    Subject:<br /><input class="contact_subject" type="text" name="contact_subject" maxlength="50" placeholder="Subject Line" /><br />
    Message:<br /><textarea class="message_area" name="contact_message" rows="10" cols="50" maxlength="1000" placeholder="Message ..." /></textarea><br />
    <input class="submit_button" name="submit_button" type="submit" value="Send" />
</form>
';

我试着寻找答案,我发现的唯一一件事是添加:

<?php if(isset($contact_name)) { echo $contact_name; } ?>

然而,这对我不起作用,因为我的表单在PHP回声中并且我正在尝试制作一个基本的wordpress插件。每当我将表格带到回声之外时,风格就会混乱,形式风格本身就会破裂。所以我想知道我是否可以将我的表单保留在我的回声中以及占位符并且能够缓存用户输入,因此当显示错误导致他们没有填满其中一个点时,它不会删除所有内容。

谢谢。

1 个答案:

答案 0 :(得分:1)

然后,只需删除echo并切换到HTML模式:

?>
<form method="post">
Name:<br /><input ... value="<?php echo (isset($contact_name) ? htmlspecialchars($contact_name, ENT_QUOTES, 'UTF-8') : ''; ?>" />
...
<?php

如果您需要将其作为字符串,则可以使用输出缓冲:

ob_start();
?>
<input ... />
<?php

echo ob_get_clean();