0

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

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

 <?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>
4

1 回答 1

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>';}

?>

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

控制('这是 DIV 名称','这是用户的消息')

于 2013-08-26T17:45:17.547 回答