Mein Kontaktformular funktioniert, aber es wird mich nicht zu meiner Dankeseite umleiten. Es hat funktioniert, bevor ich es auf einen neuen Host übertragen habe.PHP Redirect funktioniert nicht auf Kontaktformular (Nachricht wird gesendet)
<!-- Contact PHP Stuff -->
<?php
session_start();
require_once 'libs/phpmailer/PHPMailerAutoload.php';
$errors = [];
if(isset($_POST['name'], $_POST['email'], $_POST['subject'], $_POST['message'])) {
$fields = [
'name'=> $_POST['name'],
'email'=> $_POST['email'],
'subject'=> $_POST['subject'],
'message'=> $_POST['message']
];
foreach($fields as $field => $data) {
if(empty($data)) {
$errors[] = 'The ' . $field . ' field is required';
}
}
if(!empty($fields['name'])) {
if (!preg_match("/^[a-zA-Z ]*$/",$fields['name'])) {
$errors[] = "Name can only include letters A-Z";
}
}
if(!empty($fields['email'])) {
if (!filter_var($fields['email'], FILTER_VALIDATE_EMAIL)) {
$errors[] = "Please enter a valid email address";
}
}
if(empty($errors)) {
$mail = new PHPMailer(); // create a new object
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "*****";
$mail->SetFrom($fields['email'], $fields['name']);
$mail->Subject = $fields['subject'];
$mail->Body = $fields['message'];
$mail->AddAddress("[email protected]");
if($mail->Send()) {
header('Location: thanks');
die();
} else {
$errors[] = "Sorry could not send message. Try again later";
}
}
} else {
$errors[] = 'Something went wrong';
}
$_SESSION['errors'] = $errors;
$_SESSION['thanks'] = $thanks;
$_SESSION['fields'] = $fields;
header('Location: contact#contact-form');
?>
Die Linie header('Location: thanks');
mir Umleiten mit meinem vorherigen Host thanks.html aber jetzt dies geschieht nicht, auch wenn die Nachricht gesendet und geliefert wird.
Ich fand den Code auf einem Tutorial und kann mich nicht erinnern, wo es vor über einem Jahr war.
Was ist der Fehler? Versuchen Sie, nach dem Start des PHP-Tags 'error_reporting (E_ALL) an den Anfang Ihrer Datei zu setzen;' Auch ... ist irgendetwas auf der Seite gedruckt? das führt normalerweise dazu, dass der Header nicht gesetzt werden kann, da einer bereits gesendet wurde. –