HTML表单记住以前的输入

时间:2017-02-24 22:09:54

标签: php html

我知道之前曾解释过,但每当我使用以下行:

php if (isset($_POST['name'])) echo $_POST['name']; 

它在文本框中显示。我有PHP文件设置来验证是否提交了firstname和lastname。但是我想让它保留输入的任何一个盒子,例如:

名字:约翰

姓氏:

以便在表单显示时

你没有输入最后一个名字

名字:约翰

姓氏:

仍然记住第一个名字

2 个答案:

答案 0 :(得分:0)

请注意,如果你只是做简单的echo $_POST['firstname'],那么人们可以通过输入做一些讨厌的事情(比如发布javascript并使用javascript alert()函数。

所以,你应该像这样封装输入

echo htmlspecialchars(stripslashes($_POST['firstname']))

在一个输入字段上的完整示例html + PHP:

<input type="text" name="firstname" value=" <?php echo htmlspecialchars(stripslashes($_POST['firstname'])); ?>" />

如果$_POST为空,则代码不会输出任何内容。如果用户发布了某些内容,则该代码将显示安全

答案 1 :(得分:-1)

当你收集$ _POST数据时,也将它添加到$ _SESSION数组中(当然,首先需要调用session_start(),当然,在处理脚本的顶部)。

然后当他们返回错误的页面时,你可以在你的例子中使用$ _SESSION而不是$ _POST执行相同的isset()调用。

示例处理程序代码:

<?php

session_start();

if ($_POST) {

    $_SESSION['firstname'] = 
    $_POST['firstname']    = filter_input(INPUT_POST, "firstname", FILTER_SANITIZE_STRING);

    //etc.
}