2014-02-08 44 views
0

我使用php验证了我的表单并显示错误消息,但是在每次提交后,表单都会刷新并且输入为空。我想知道是否有一种方法可以将用户的数据重新插入到字段中。保存PHP验证后的表单数据(POST方法)

我正在使用POST方法。

<form id="registration-form" action="" method="post"> 


<input type="text" name="username" id="username" placeholder="Username"> 

<button type="submit" name="_submit" id="submit" class="button-submit">Submit</button> 


</form> 

PHP函数:

if(!isset($_POST['_submit'])){ 
     return array($array, $arrayexport); 
    } 

$username = $_POST['username']; 

// test function for username 

if (($valid_username) != 0) { 

array_push($array, "Input Required"); } 

else{ 

header('Location: /thankyou.php'); 
} 
+0

添加到每个字段'值='” $ _POST [FIELD_NAME']。”。您显然需要更改var的名称,并先用isset测试它。请注意,通过这种方式,您可以练习并查看输出是如何工作的,但不要将其用于实际项目,这是一个巨大的安全漏洞。你应该介绍自己[htmlspecialchars](http://php.net/manual/fr/function.htmlspecialchars.php)和其他函数来保护你的代码。 – bastienbot

回答

1

你可以做一些如

<input type="text" name="username" 
id="username" placeholder="Username" 
value="<?php if(isset($_POST['username'])){ echo $_POST['username'];}else{ echo '';}?>"> 
+0

这个更短..'value =“<?php echo @ $ _ POST ['username'];?>”' – Dale

+0

....或者更好,使用会话。 – itachi

+1

是的,但是当表单加载没有POST时,那么它将有未定义的索引,我不喜欢@可能会被许多人使用,但严重不建议 –

0

做清洁的版本。

由于Abhik Chakraborty的

<input type="text" name="username" id="username" placeholder="Username" value="<?php user() ?>"> 

外部php文件:

function user(){ 
     if(isset($_POST['username'])){ echo $_POST['username'];}else{ echo '';}}