По какой-то причине моя контактная страница не переместится на thanks.html. Он просто остается на странице контакта, и контактная форма исчезает.
<?php
if (empty($_POST) === false) {
$errors = array();
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if (empty($name) === true || empty($email) === true || empty($message) === true) {
$errors[] = 'Name, email, and message are required.';
} else {
if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'Please enter a valad email address.';
}
}
if (empty($errors) === true) {
mail('[email protected]', 'Contact Form' ,'$message', 'From: ' . $email);
header('Location: thanks.html');
exit();
}
}
?>
Вот мой код из формы.
<?php
if (empty($errors) === false) {
echo '<ul>';
foreach($errors as $error) {
echo '<li>', $error, '</li>';
}
echo '<ul>';
}
?>
</div>
<div id="content">
<form action="" method="post">
<p>
<label for="name">Name:</label><br />
<input type="text" name="name" id="name" <?php if (isset($_POST['name']) === true) { echo 'value="', strip_tags($_POST['name']), '"'; } ?> />
</p>
<p>
<label for="email">Email:</label><br />
<input type="text" name="email" id="email" <?php if (isset($_POST['email']) === true) { echo 'value="', strip_tags($_POST['email']), '"'; } ?>/>
</p>
<p>
<label for="message">Message:</label><br />
<textarea name="message" id="message"><?php if (isset($_POST['message']) === true) { echo strip_tags($_POST['message']), ''; } ?></textarea>
</p>
<p>
<input type="submit" />
</p>
</form>
</div>
У кого-нибудь есть быстрое решение для этого? Это сводит меня с ума. Я пробовал разные варианты этих строк в коде выше, но ничего не работает...
if (empty($errors) === true) {
mail('[email protected]', 'Contact Form' ,'$message', 'From: ' . $email);
header('Location: thanks.html');
exit();
как указывает страница руководства PHP для заголовков, вы должны действительно использовать полные URL-адреса для перенаправления:
Note: HTTP/1.1 requires an absolute URI as argument to Location: including the scheme, hostname and absolute path, but some clients accept relative URIs. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yourself:
вы также можете использовать javascript
для перенаправления на страницу с благодарностью следующим образом:
if (empty($errors) === true) {
mail('[email protected]', 'Contact Form' ,'$message', 'From: ' . $email);
echo '<script type="text/javascript">'
, 'window.location.replace('thanks page complete url');'
, '</script>';
}
я думаю, вы близки,
РЕШЕНИЕ
дать ему полный адрес для перенаправления после
если он делает электронную почту, то просто измените свой
header ('Location: thanks.html');
в
header ("Местоположение: http://www.example.com/thanks.html ");
Также замените
empty ($ name) === true для пустого ($ name)
вам не нужно указывать значение true, оно будет выполняться по умолчанию