[英]php mailer redirect to blank page after clicking on send button
我只想知道我的实例是什么原因。
我的代码如下所示:
<form action="php/contact.php" method="post" enctype="multipart/form-data">
<fieldset>
<input type="hidden" name="action" value="contact_send" />
<div class="row">
<div class="col-md-6">
<label for="contact:name">Full Name *</label>
<input required type="text" value="" class="form-control" name="contact[name][required]" id="contact:name">
</div>
<div class="col-md-6">
<label for="contact:email">E-mail Address *</label>
<input required type="email" value="" class="form-control" name="contact[email][required]" id="contact:email">
</div>
<div class="col-md-12">
<label for="contact:phone">Phone</label>
<input type="text" value="" class="form-control" name="contact[phone]" id="contact:phone">
</div>
<div class="col-md-12">
<label for="contact:subject">Subject *</label>
<input required type="text" value="" class="form-control" name="contact[subject][required]" id="contact:subject">
</div>
<div class="col-md-12">
<label for="contact:message">Message *</label>
<textarea required maxlength="10000" rows="6" class="form-control" name="contact[message]" id="contact:message"></textarea>
</div>
</div>
</fieldset>
<div class="row">
<div class="col-md-12">
<button type="submit" class="btn btn-primary"><i class="fa fa-check"></i> SEND MESSAGE</button>
</div>
</div>
</form>
<?php
date_default_timezone_set('America/Toronto');
require 'http://***.net/php/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = 'smtp.gmail.com';
$mail->Host = gethostbyname('smtp.gmail.com');
submission
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "****@gmail.com";
$mail->Password = "****";
//Set who the message is to be sent from
$mail->setFrom('kontakt@****', '');
//Set an alternative reply-to address
$mail->addReplyTo('replyto@example.com', 'First Last');
//Set who the message is to be sent to
$mail->addAddress('', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer GMail SMTP test';
//Read an HTML message body from an external file, convert referenced images
to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
$mail->addAttachment('images/phpmailer_mini.png');
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
$headers = 'From: '.$name."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
header('Location: http://***.net/kontakt.html');
我真的很困惑,我尝试了一切,但仍然没有任何成功。 我的托管也没有告诉我有关此问题的任何信息。 我尝试使用发送邮件功能,但情况是一样的。
我将不胜感激任何答案。
我认为你被 header() 函数的滥用所困扰。 从手册
请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通的 HTML 标记、文件中的空行还是来自 PHP。 使用 include 或 require 函数或其他文件访问函数读取代码,并且在调用 header() 之前输出空格或空行,这是一个非常常见的错误。 使用单个 PHP/HTML 文件时存在同样的问题。
诸如空行和您的echo
语句之类的事情,或者实际上,谁知道require
d 文件中发生了什么,都会导致您的调用以header
重定向失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.