Php 重新填充表单数据的更简单方法?

Php 重新填充表单数据的更简单方法?,php,forms,Php,Forms,好的,我想知道在提交表单进行验证后,是否有更简单的方法重新填充表单 以此为例: <input type="text" name="username" value="$_POST['username']" /> 这太难看了。。有没有办法做到这一点?欢迎提供示例。您可以这样做: $username = isset($_POST['username']) ? $_POST['username'] : ""; echo "<input type=\"text\" name=\"use

好的,我想知道在提交表单进行验证后,是否有更简单的方法重新填充表单

以此为例:

<input type="text" name="username" value="$_POST['username']" />

这太难看了。。有没有办法做到这一点?欢迎提供示例。

您可以这样做:

$username = isset($_POST['username']) ? $_POST['username'] : "";
echo "<input type=\"text\" name=\"username\"
         value=\"".htmlspecialchars($username)."\" />"; // VERY important!
$username=isset($\u POST['username'])$_POST['username']:“”;
回声“;//非常重要!

您可以将其全部隐藏在可重用函数中:

function showValue($key) {
    $value = '';
    if (isset($_POST[$key])) {
        $value = $_POST[$key];
    }
    return $value;
} 
然后按如下方式使用:

<input type="text" name="username" value="<?= showValue('username') ?>" /> 
我想到了三种方法:

  • 构建一个以键为参数的helper类/函数,并调用
    myhelper('username')
    myhelper
    显然将包含
    isset
    语句,如果存在,则回显或返回值,否则
    null
  • 略短一点的形式:
    echoisset($\u POST['username'])$_帖子['username']:''
  • (不要这样做)禁用服务器上的通知并使用它(我认为这只适用于noobs)

  • 助手函数方式,尽可能简短:

    <?php
    print gv("u"); // Prints the value of $_POST['u']
    
    function gv($n){echo(isset($_POST[$n]))?$_POST[$n]:"";}
    ?>
    
    
    
    <代码>罗伯特”/>警报('HAX!')@NiettheDarkAbsol这只是提出了一个通用的解决方案。我让他们做他们需要做的事情来确保它的安全,等等。每个解决方案不可能是一个完整的PHP教程。但是很多人,特别是新手程序员,可能会把你的代码复制粘贴到字面上。整个互联网发布易受攻击的代码是危险的。…那么,也许更好的评论是,这段代码还没有准备好生产,需要转义内容以防止XSS攻击,这样任何看到解决方案的人都会知道还有更多的工作要做?通常我会同意这一点,但遗憾的是,我与太多不称职的人一起工作,以至于无法相信它会工作=/it I使用像“gv”这样晦涩难懂的函数名不是一个好主意。非常正确。我只是想要一些简短的东西:)这是一个很好的观点!我现在要构建一个表单对象,它将重新填充旧值,以便它在后台而不是在视图上完成所有难看的工作=)
    <?php
    print gv("u"); // Prints the value of $_POST['u']
    
    function gv($n){echo(isset($_POST[$n]))?$_POST[$n]:"";}
    ?>