PHP和HTML表单邮件发送时javascript警报不起作用

PHP和HTML表单邮件发送时javascript警报不起作用,javascript,php,html,email,Javascript,Php,Html,Email,我的知识非常有限。我尽力去理解。我想从联系人表单发送邮件,成功后显示警告消息并保持在同一页面上。邮件未发送,代码中似乎有一些错误。请帮忙 <form action="" method="post"> <div class="col-md-6"> <input name="name" type="text" class="form-control" placeholder="Name"> </div> <

我的知识非常有限。我尽力去理解。我想从联系人表单发送邮件,成功后显示警告消息并保持在同一页面上。邮件未发送,代码中似乎有一些错误。请帮忙

<form action="" method="post">
    <div class="col-md-6">
        <input name="name" type="text" class="form-control" placeholder="Name">
    </div>
    <div class="col-md-6">
        <input name="email" type=“text” class="form-control" placeholder="Email">
    </div>
    <div class="col-md-12">
       <input name="subject" type="text" class="form-control" placeholder="Subject">
    </div>
    <div class="col-md-12">
        <textarea name="message" class="form-control" placeholder="Message" rows="4"></textarea>
    </div>
    <div class="col-md-8">
        <input type="submit" class="form-control text-uppercase" name="send" value="submit" />
    </div>
</form>

<?php

if ($_POST['send']) { 
    $ToEmail = 'info@autonomousdata.com'; 
    $EmailSubject = $_POST['subject']; 
    $mailheader = "From: ".$_POST['email']."\r\n"; 
    $mailheader .= "Reply-To: ".$_POST['email']."\r\n"; 
    $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n" .
                                            "X-Mailer: PHP/" . phpversion(); 
    $MESSAGE_BODY = "Name: ".$_POST['name']."\n"; 
    $MESSAGE_BODY .= "Email: ".$_POST['email']."\n"; 
    $MESSAGE_BODY .= "Comment: ".$_POST['message'].""; 

    if(mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader)!==true) {
?>
    <script type='text/javascript'> alert('failed to send the mail'); </script>
<?php
        die('Fail to send');
    } else{
?>
    <script type='text/javascript'>alert('Thank you for contacting us! All information received will always remain confidential. We will contact you as soon as we review your message.');
    </script>

<?php       
    }           
}
?>

警报(“发送邮件失败”);
警报('感谢您联系我们!收到的所有信息将始终保密。我们将在查看您的邮件后立即与您联系。');

HTML表单的
type='text'
周围有可疑的引号,我修改了php,添加了一些基本的变量检查和清理功能~希望能有所帮助

<form action="" method="post">
    <div class="col-md-6">
        <input name="name" type="text" class="form-control" placeholder="Name">
    </div>
    <div class="col-md-6"><!-- // incorrect quotation used on `text` //-->
        <input name="email" type='text' class="form-control" placeholder="Email">
    </div>
    <div class="col-md-12">
       <input name="subject" type="text" class="form-control" placeholder="Subject">
    </div>
    <div class="col-md-12">
        <textarea name="message" class="form-control" placeholder="Message" rows="4"></textarea>
    </div>
    <div class="col-md-8">
        <input type="submit" class="form-control text-uppercase" name="send" value="submit" />
    </div>
</form>

<?php

    if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['subject'],$_POST['email'],$_POST['name'],$_POST['message'] ) ){

        $to         = 'info@autonomousdata.com';
        $name       = filter_input( INPUT_POST, 'name', FILTER_SANITIZE_STRING );
        $subject    = filter_input( INPUT_POST, 'subject', FILTER_SANITIZE_STRING );
        $message    = filter_input( INPUT_POST, 'message', FILTER_SANITIZE_STRING );
        $email      = filter_var( filter_input( INPUT_POST, 'email', FILTER_SANITIZE_STRING ), FILTER_VALIDATE_EMAIL );

        $headers=array();
        $headers[]="From: {$email}";
        $headers[]="Reply-To: {$email}";
        $headers[]="Content-type: text/html; charset=iso-8859-1";
        $headers[]="X-Mailer: PHP/" . phpversion();
        /* generate final headers string */
        $headers=implode( "\r\n", $headers );


        $message=array();
        $message[]="Name: {$name}";
        $message[]="Email: {$email}";
        $message[]="Comment: {$message}";
        /* generate final message string */
        $message=implode( "\n", $message );


        $result=@mail( $to, $subject, $message, $headers );

        switch( $result ){
            case true:
                $msg='Thank you for contacting us! All information received will always remain confidential. We will contact you as soon as we review your message.';
            break;
            case false:
                $msg='failed to send the mail';
            break;
        }

        echo "<script type='text/javascript'>alert('{$msg}');</script>";
    }
?>


HTML表单的
type='text'
周围有可疑的引号,我修改了php,添加了一些基本的变量检查和清理,希望能有所帮助

<form action="" method="post">
    <div class="col-md-6">
        <input name="name" type="text" class="form-control" placeholder="Name">
    </div>
    <div class="col-md-6"><!-- // incorrect quotation used on `text` //-->
        <input name="email" type='text' class="form-control" placeholder="Email">
    </div>
    <div class="col-md-12">
       <input name="subject" type="text" class="form-control" placeholder="Subject">
    </div>
    <div class="col-md-12">
        <textarea name="message" class="form-control" placeholder="Message" rows="4"></textarea>
    </div>
    <div class="col-md-8">
        <input type="submit" class="form-control text-uppercase" name="send" value="submit" />
    </div>
</form>

<?php

    if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['subject'],$_POST['email'],$_POST['name'],$_POST['message'] ) ){

        $to         = 'info@autonomousdata.com';
        $name       = filter_input( INPUT_POST, 'name', FILTER_SANITIZE_STRING );
        $subject    = filter_input( INPUT_POST, 'subject', FILTER_SANITIZE_STRING );
        $message    = filter_input( INPUT_POST, 'message', FILTER_SANITIZE_STRING );
        $email      = filter_var( filter_input( INPUT_POST, 'email', FILTER_SANITIZE_STRING ), FILTER_VALIDATE_EMAIL );

        $headers=array();
        $headers[]="From: {$email}";
        $headers[]="Reply-To: {$email}";
        $headers[]="Content-type: text/html; charset=iso-8859-1";
        $headers[]="X-Mailer: PHP/" . phpversion();
        /* generate final headers string */
        $headers=implode( "\r\n", $headers );


        $message=array();
        $message[]="Name: {$name}";
        $message[]="Email: {$email}";
        $message[]="Comment: {$message}";
        /* generate final message string */
        $message=implode( "\n", $message );


        $result=@mail( $to, $subject, $message, $headers );

        switch( $result ){
            case true:
                $msg='Thank you for contacting us! All information received will always remain confidential. We will contact you as soon as we review your message.';
            break;
            case false:
                $msg='failed to send the mail';
            break;
        }

        echo "<script type='text/javascript'>alert('{$msg}');</script>";
    }
?>


您是从本地服务器(localhost)还是live server发送电子邮件?您在html表单Not localhost中使用了关于
电子邮件
的不正确引用。实时服务器。该网站托管在服务器中。它们支持php和电子邮件。我问过他们,他们说服务器端的php配置是正确的。问题是我的编码技能…:(@RamRaider感谢您的关注。我猜我的文本编辑器有一些设置。但问题不止于此。我加载页面后,JS警报显示,然后else警报显示!!这是一种更好的表单代码吗?您是否从本地服务器(localhost)发送电子邮件或者live server?您在html格式中使用了关于
电子邮件的不正确引用,而不是localhost.live server。该网站托管在服务器中。他们支持php和电子邮件。我问了他们,他们说服务器端的php配置是正确的。问题是我的编码技能…:(@RamRaider感谢您的关注。我猜我的文本编辑器有一些设置。但问题不止于此。我加载页面后,JS警报显示,然后else警报显示!!这是一种更好的表单代码吗?哇,很好的例子。遗憾的是不起作用。最后一行回显“alert({$msg}”);似乎给出了一些语法错误。删除该行可以修复该错误,但此时仍无法接收消息info@autonomousdata.com.真的不明白怎么回事。我刚刚打开了一个测试页面,但没有发现任何错误-无法确认是否会发送电子邮件,因为测试仅在本地主机上进行…我可以发送一个屏幕截图。是pos吗可以添加?通过回显行,浏览器在联系人表单附近显示这个sting-alert(“{$msg}”);“;}?”>。这意味着一些错误。但是,当我删除该行时,该字符串不再存在。我可能在某个地方有其他错误吗?哇,很好的例子。遗憾没有工作。最后一行回显“alert({$msg}”);";似乎给出了一些语法错误。删除该行可以修复该错误,但此时仍无法接收消息info@autonomousdata.com.真的不明白怎么回事。我刚刚打开了一个测试页面,但没有发现任何错误-无法确认是否会发送电子邮件,因为测试仅在本地主机上进行…我可以发送一个屏幕截图。是pos吗可以通过回显行添加?浏览器在联系人表单附近显示此sting-alert(“{$msg}”);“;}?”>。这意味着出现了一些错误。但是,当我删除该行时,该字符串不再存在。我可能在某个地方有其他错误吗?