【发布时间】:2017-08-27 18:13:08
【问题描述】:
我不明白为什么我的 PHP 联系表单会发送空电子邮件。 请帮我找出问题所在。
HTML 表单代码:
<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
<div class="form-group">
<input type="text" name="name" class="form-control" required="required" placeholder="Имя">
</div>
<div class="form-group">
<input type="phone" name="phone" class="form-control" required="required" placeholder="Номер телефона">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" required="required" placeholder="Email">
</div>
<div class="form-group">
<textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Ваши пожелания"></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-submit" value="Отправить">
</div>
</form>
PHP 文件:
<?php
$name = @trim(stripslashes($_POST['name']));
$from = @trim(stripslashes($_POST['email']));
$phone = @trim(stripslashes($_POST['phone']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$to = 'hello@helloschool.ru';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] .= "Content-type: text/plain; charset=iso-8859-1";
$headers[] .= "From: {$name} <{$from}>";
$headers[] .= "Reply-To: <{$from}>";
$headers[] .= "Subject: {$subject}";
$headers[] .= "X-Mailer: PHP/".phpversion();
mail($to, $subject, $message, $headers);
die;
删除“@”后,我的错误日志显示:
[2017 年 8 月 27 日星期日 21:41:14] [警告] [客户端 89.169.84.160] mod_fcgid: 标准错误:PHP 注意:未定义的索引:名称在 /var/www/u0337516/data/www/helloschool.ru/sendemail.php 在第 2 行, 推荐人:http://helloschool.ru/
JS 代码(main.js):
var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('<div class="form_status"></div>');
$.ajax({
url: $(this).attr('action'),
beforeSend: function(){
form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Отправка заявки...</p>').fadeIn() );
}
}).done(function(data){
form_status.html('<p class="text-success">Спасибо, что оставили заявку! Мы свяжемся с вами как можно скорее.</p>').delay(3000).fadeOut();
});
});
在此先感谢,对于新手问题,我们深表歉意。
【问题讨论】:
-
检查是否提交表单。
-
使用 PHP 的邮件功能永远不会取得巨大成功。省去很多麻烦和浪费时间,开始使用 SMTP。使用 Swiftmailer 之类的预构建解决方案让事情变得简单。
-
为什么
@s,你收到未定义的通知? -
使用 @ 是一种不好的做法。它还将抑制需要修复的重要错误。
-
除了上述cmets中的中肯建议,开始阅读您的PHP错误日志,它可以帮助您减少开发时的头疼