加载空白页尽管形成错误的动作位置

时间:2013-08-26 17:38:11

标签: php html error-handling

我正在创建一个用户提交并发送电子邮件的简单表单。如果表单为空白或者它不是有效的电子邮件,如果成功,我会尝试提出错误,然后重新加载页面并显示成功消息。

当我提交空白时,它重新加载页面没有错误,如果我输入任何内容(有效或无效的电子邮件),它会重新加载页面白色,尽管表单操作正确。我一直坚持这个并需要帮助。感谢。

 <?php
    require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/system/init.php');

    if(isset($_POST['submit'])) {

        $email = $_POST['email'];
        if(empty($_POST['email']) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { 

            $error = "Please enter a valid email";

        }else{
            $success = true;    

            mysql_query("INSERT INTO survey 
                (email) VALUES('".$_POST['email']."' ) ") 
                or die(mysql_error());  
        }
    }


    ?>

<div class="email-survey">
            <?php if(isset($success)) { ?>
            <div class="success">Thank You!</div>
            <?php } ?>

            <?php if(isset($error)) { ?>
            <div class="error">
                <?php echo $error; ?>
            </div>
            <?php } ?>

             <form name="settings" action="/survey-confirm.php" method="post">
                <input type="text" name="email" /> <br />
                <input type="submit" name="submit" value="submit" />
             </form>
        </div>

1 个答案:

答案 0 :(得分:0)

<?php

function control($type, $text)
{
echo '<div class="'.$type.'">'.$text.'</div>';
}

require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/system/init.php');

    if(isset($_POST['submit'])) {

        $email = $_POST['email'];
        if(empty($_POST['email']) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { 

            control('error', 'Type valid mail!');

        }else{
            control('success', 'All done!');   

            mysql_query("INSERT INTO survey 
                (email) VALUES('".$_POST['email']."' ) ") 
                or die(mysql_error());  
        }
    }
else
{echo 'echo '<form name="settings" action="/survey-confirm.php" method="post">
<input type="text" name="email" /> <br />
<input type="submit" name="submit" value="submit" />
</form>
</div>';}

?>

这是一个名为control的小函数,你可以调用它并将你的自定义div名称和文本显示给用户。

控制('这是DIV NAME','这是用户的留言')