提交表单后,检查 POST 变量“模板”是否未使用isset
.
前面!
的isset
意思是“不”。因此,它正在检查是否未设置“模板”。
您应该分别检查表单的每个元素,以便向最终用户提供建设性反馈,说明他们需要做什么来解决错误消息。这被认为是最佳实践,无论大小,您都应该在任何形式上执行此操作。
<?php
// Form submitted
if(isset($_POST['send'])) {
// CHECK FOR ERRORS
// Check for radio button value
if(!isset($_POST['template'])) {
// No value for template, show error message
$e['template'] = "<p><strong>Please select Yes or No.</strong></p>";
}
// Check the value of text box
if(!isset($_POST['relevant'])) {
$e['relevant'] = "<p><strong>Please fill out the Relevant field.</strong></p>";
}
// If no errors occurred, finish processing the form
if(!is_array($e)) {
// Do stuff (db update, email send out, etc.)
// Show thank you message
echo "<p>Thank you. We have received your submission.</p>";
exit();
}
}
?>
<form action="" method="post">
<?php echo $e['relevant']; ?>
<p><label for="relevant">Relevant:</label><input type="text" name="relevant" id="relevant" value="<?php echo htmlspecialchars($_POST['relevant']); ?>" /></p>
<?php echo $e['template']; ?>
<p>Yes or No?</p>
<p><label for="yes">Yes</label><input type="radio" name="template" id="yes" value="Yes" <?php if($_POST['template'] == "Yes") { echo 'checked="checked"'; } ?> /></p>
<p><label for="no">No</label><input type="radio" name="template" id="no" value="No" <?php if($_POST['template'] == "No") { echo 'checked="checked"'; } ?> /></p>
<p><input type="submit" name="send" value="Skicka internlogg" /></p>
</form>
编辑:为了解决你想要一次做所有检查的问题,你不应该养成这样做的习惯,你可以做这样的事情:
if(!isset($_POST['template']) || !isset($_POST['relevant']) || !isset($_POST['sr']) || ... ) {
$error = "<p>Please fill out all form fields.</p>";
}
然后以上面我的示例中的形式回显错误。