繁体   English   中英

为什么我的联系表格不起作用? loading.gif卡住了,什么也没发生

[英]Why won't my contact form work? the loading.gif is stuck and nothing happens

我已尝试将联系表单与XAMPP一起使用,我已将.ini文件等正确配置为GMAIL以进行测试。 可以看到我在哪里弄错了吗?

我什至尝试过WAMP,但仍然没有任何效果。

我按照这个人的建议更改了xwamp文件: 如何配置XAMPP从本地主机发送邮件?

的HTML

<form method="post" action="contact-form.php" name="contactform" id="contactform">
    <fieldset>
        <input name="name" type="text" id="name" placeholder="Name"/> 
        <input name="email" type="text" id="email" placeholder="Email"/>  
        <input name="subject" type="text" id="subject" placeholder="Subject"/> 
    </fieldset>
    <fieldset> 
        <textarea name="comments" cols="40" rows="3" id="comments" placeholder="Message"></textarea>
    </fieldset>
    <input type="submit" class="submit" id="submit" value="Send Message" />
</form>

JS

 $('#contactform').submit(function(){
    var action = $(this).attr('action');
    $("#message").slideUp(250,function() {
        $('#message').hide();
        $('#submit')
            .after('<img src="img/assets/cbp-loading.gif" class="loader" />')
            .attr('disabled','disabled');
        $.post(action, {
            name: $('#name').val(),
            email: $('#email').val(),
            subject: $('#subject').val(),
            comments: $('#comments').val(),
        },
            function(data){
                document.getElementById('message').innerHTML = data;
                $('#message').slideDown(250);
                $('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
                $('#submit').removeAttr('disabled');
                if(data.match('success') != null) $('#contactform').slideUp(850, 'easeInOutExpo');
            }
        );
    });
    return false;   

的PHP

 <?php
if (isset($_POST["submit"])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $subject = 'Message from Contact Demo ';
    $message = $_POST['message'];
    $from = 'Demo Contact Form'; 
    $to = 'myemail@gmail.com'; 
    $body = "From: $name\n E-Mail: $email\n Message:\n $message";
    mail('myemail@gmail.com', $name, $email, $subject, $message);
}
?>

Sendmail代码(我显然已删除了电子邮件和密码)

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=MYEMAIL@gmail.com
auth_password=MY EMAIL PASSWORD
force_sender=MYEMAIL@gmail.com

最被低估的一点是,不要以管理员身份启动XAMPP。 另外,我缺少smtp和co的一些配置:

 $smtp = Mail::factory('smtp', array( 'host' => 'ssl://smtp.gmail.com', 'port' => '465', 'auth' => true, 'username' => 'EMAIL', 'password' => 'PASSWORD' )); 

那些必须被允许发送到您的电子邮件地址。 如果没有,任何人都可以通过垃圾邮件发送您的电子邮件地址。

真诚的liqSTAR

PHP代码中没有mail()函数。

建议先剥离最简单的测试用例。 作为第一个测试,我建议编写一个简单的PHP文件,该文件仅使用mail()函数将电子邮件发送到您自己的地址并返回结果(请确保还检查PHP错误日志)-这将有助于确认PHP配置了可以正常工作的SMTP服务器。

然后,我尝试不使用JavaScript来提交表单,以确保表单可以提交。 $.post操作是否可以在控制台中显示? 它是否显示任何内容作为响应或状态代码?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM