提交后如何在文本输入中保留值?

5 php forms validation

我想验证表单以确保用户以姓名和姓氏书写.

如果用户只在他的姓写,形式应与姓氏字段旁边的错误信息再次显示,但名称值应该仍然在那里.

嘿,我不知道怎么做.我只是一个新手PHP程序员.

这是我到目前为止所拥有的:

<html>
<head>
</head>

<body>
    <form action="formprueba.php" method="get">
        <dl>
            <dt>Last Name:</dt>
            <dd><input type="text" value="" name="name" />
                <?php if((isset($_GET['name'])) && ($_GET['name'] == "")){
                    echo "Please write a correct name.";
                }
                ?>
            </dd>                

            <dt>Last Name:</dt>
            <dd><input type="text" value="" name="lastname" />
                <?php if((isset($_GET['lastname'])) && ($_GET['lastname'] == "")){
                    echo "Please write a correct last name.";
                }
                ?>
            </dd>

            <br />                
            <dt>
                <input type="submit" value="enviar" />
            </dt>
            <input type="hidden" name="enviado" value="j"/>
        </dl>
    </form>
</body>
Run Code Online (Sandbox Code Playgroud)

另外,我确信这个验证很糟糕,如果你有几分钟,如果有人能给我一个更有效的验证方法(不使用第三方插件),我真的会毕业.

谢谢你.

ini*_*all 15

将您需要的变量放入input-tag的"value"字段中,如下所示:

<input type="text" value="<?php echo htmlspecialchars($_GET['lastname']); ?>" name="lastname" />
Run Code Online (Sandbox Code Playgroud)

并且至少引用某人可能放入的HTML字符非常重要(通过htmlspecialchars).

  • 要在未设置$ _GET时处理未定义的索引通知,我通常会在脚本顶部的某处执行$ lastname = isset($ _ GET ['lastname'])?$ _ GET ['lastname']:''; (5认同)