简体   繁体   中英

php mailer redirect to blank page after clicking on send button

I just want to know what is the reason of my instance.

My code looks like this:

<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');

I am really confused, I tried everything with that but still without any succes. My hosting also did not tell me anything about this problem. I tried with send mail function but the case is the same.

I will be gratefull for any answer.

I think you're getting bitten by the misuse of the header() function. From the manual

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

Things like blank lines and your echo statements, or indeed, who knows what goes on in the require d file, are causing your call to redirect with a header to fail.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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