PHP联系表单将在提交后刷新页面。

时间:2015-05-30 23:42:34

标签: javascript php html forms

搜索了大约3个小时后,我仍然无法想出这个。 我有一个带有联系表单的html模板,我试图使用PHP脚本使其工作。 我将模板更改为PHP并将PHP表单脚本粘贴到其中。除了确认文本外,一切正常。 成功提交后,它将刷新页面而不是打印"您的邮件已成功发送!感谢您的反馈和#34;。我不想要重定向,我只是想让它在同一页上打印。

有什么想法吗? 我得到了我的代码示例。

var open = false;
$("#aboutbtn").click(function () {
    if(!open) $(this).parent().animate({ right: '0px'}, 500);
    else $(this).parent().animate({ right: '-285px'}, 500);
    open = !open ? true : false;
});

2 个答案:

答案 0 :(得分:0)

首先,你有这个:$subject = (Contact_form);应该抛出一个错误,所以我假设你关闭了错误报告。在开发时,您应该有错误报告,以便您可以在代码中看到错误...否则您只是盲目工作。我的意思并不是在每个文件中都发出俗气error_reporting(0),我的意思是将您的错误报告级别设置为E_ALL中的php.ini

你还有:$headers .= 'Cc:'. $email2 . "\r\n"; 但是,$email2未在任何地方定义,因此您也会在此处收到错误。这就是为什么使用错误报告进行测试非常重要。

看看是否有效:

    <?php

    $error = '';

    if(isset($_POST['submit']))
    {
        if ( !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) )
        {

            $email = $_POST['email'];
            $email = filter_var($email, FILTER_SANITIZE_EMAIL);
            if ( $email = filter_var($email, FILTER_VALIDATE_EMAIL) )
            {
                $subject = '(Contact_form)';
                $message = $_POST['message'];

                $headers = 'From:'. $email . "\r\n"; // Sender's Email

                $message = wordwrap($message, 70);

                if ( $result = mail("something@domain.com", $subject, $message, $headers) ) {
                    $error = 'Success';
                } else {
                    $error = 'There was an error sending your email!';
                }

            } else {
                $error = 'Invalid Email Address!';
            }


        } else {
            $error = 'Please fill all fields.';
        }
    }

?>

<p><?= $error ?></p>
<form action="" method="post">
    <input type="text" name="name" value="" /><br />
    <input type="email" name="email" value="" /><br />
    <textarea name="message" rows="5"></textarea><br />
    <input type="submit" name="submit" value="submit" />
</form>

答案 1 :(得分:0)

尝试将$ subject放入一个字符串值,如:

$subject = 'Test subject';

还将以下行更改为此(没有定义$ email2):

$headers .= 'Cc:'. $email . "\r\n"; // Carbon copy to Sender

并尝试一下。您也可以将代码放在第一行

<?php error_reporting(E_ALL); ?>

并在提交表单时检查错误。