[英]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.