PHP在验证错误后保留输入的值
我有一个需要验证的简单表单PHP在验证错误后保留输入的值,php,validation,error-handling,Php,Validation,Error Handling,我有一个需要验证的简单表单 我使用empty()函数实现了这一点。如果验证未通过,将向用户发出警报。创建此警报后,所有输入的值都将消失 我想保留它们 这就是我所做的: <form id="" name="" action="<?php echo get_permalink(); ?>" method="post"> <table> <tr> <td> Nam
我使用
empty()
函数实现了这一点。如果验证未通过,将向用户发出警报。创建此警报后,所有输入的值都将消失
我想保留它们
这就是我所做的:
<form id="" name="" action="<?php echo get_permalink(); ?>" method="post">
<table>
<tr>
<td>
Name:<input type="text" id="name" name="name">
</td>
</tr>
<tr>
<td>
<input class="submit-button" type="submit" value="Send" name="submit">
</td>
</tr>
</table>
</form>
<?php
if($_POST["submit"]){
if (!empty ($_POST["name"])){
// do something
}else{
?>
<script type="text/javascript">
alert('U heeft niet alle velden ingevuld. Graag een volledig ingevuld formulier versturen');
</script>
<?php
}
?>
将输入的值作为默认值传递给输入:
<input type="text" id="name" name="name" value="<?php echo isset($_POST["name"]) ? $_POST["name"] : ''; ?>">
对于每个输入字段,最简单的方法是:
<input type="text" id="name" name="name" value="<?= isset($_POST['name']) ? $_POST['name'] : ''; ?>">
奇怪的是,我碰巧正在做一件类似的事情,并且一直在使用以下内容来确保表单数据在提交表单后可用。它使用会话变量来存储POST结果,并用作表单字段中的值
/* Store form values in session var */
if( $_SERVER['REQUEST_METHOD']=='POST' ){
foreach( $_POST as $field => $value ) $_SESSION[ 'formfields' ][ $field ]=$value;
}
/* Function used in html - provides previous value or empty string */
function fieldvalue( $field=false ){
return ( $field && !empty( $field ) && isset( $_SESSION[ 'formfields' ] ) && array_key_exists( $field, $_SESSION[ 'formfields' ] ) ) ? $_SESSION[ 'formfields' ][ $field ] : '';
}
/* example */
echo "<input type='text' id='username' name='username' value='".fieldvalue('username')."' />";
/*在会话变量中存储表单值*/
如果($\u服务器['REQUEST\u METHOD']='POST'){
foreach($\发布为$field=>$value)$\会话['formfields'][$field]=$value;
}
/*html中使用的函数-提供以前的值或空字符串*/
函数fieldvalue($field=false){
return($field&&!empty($field)&&isset($\u SESSION['formfields'])和&array_key_存在($field,$\u SESSION['formfields'])?$\u SESSION['formfield][$field]:'';
}
/*范例*/
回声“;
我尝试了最后一个选项,但由于某种原因,它在我这边不起作用。也许我做错了,但我只是在我的联系人表单的html文件中添加了上面的一行。是的,就是这样。我理解。。Thnx!您还应该在输出值之前清理$u POST,以防止注入错误代码。即