如何替换die()语句?

时间:2013-01-09 17:07:40

标签: php die

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> 

所以,只需编写一个信息,然后从这一点开始停止执行代码。

3 个答案:

答案 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>