if(!empty($_POST))
{
if(empty($_POST['username'])) {die("Please enter a username.");}
....
结果为空白页 - 带有上述警告 我想在页面上保留表单。类似的东西:
if(empty($_POST['username']))?> <div id="info"><?php{echo "Please enter a username"};?></div>
所以,只需编写一个信息,然后从这一点开始停止执行代码。
答案 0 :(得分:3)
要停止执行,但您可以使用:
die( ' <div id="info">Please enter a username</div> ');
要允许加载页面的其余部分,您可以使用:
$errors = array();
if(empty($_POST['username'])) {
$errors[] = 'Please enter your username';
}
然后在你的html中你可以添加
foreach($errors as $error){
echo "<div class='error'>$error</div>;
}
答案 1 :(得分:1)
设置一些标志并返回/重定向到同一页面。在同一页面(带有表单的脚本)上,检查标志集并显示消息。
答案 2 :(得分:1)
不是在单个验证错误上“停止执行”,而是获取所有错误并将其显示给用户:
<?php
if (!empty($_POST))
{
// validate form
$errors = array();
if (empty($_POST['username']))
{
$errors['username'] = 'Please enter a username.';
}
if (empty($_POST['address']))
{
$errors['address'] = 'Please enter an address.';
}
if (empty($errors))
{
// save to database then redirect
}
}
?>
<form>
Username:<br />
<input type="text" name="username" value="" /><br />
<?php if (!empty($errors['username'])): ?>
<div class="error">
<?php echo $errors['username'] ?>
</div>
<?php endif ?>
Address:<br />
<input type="text" name="address" value="" /><br />
<?php if (!empty($errors['address'])): ?>
<div class="error">
<?php echo $errors['address'] ?>
</div>
<?php endif ?>
</form>