Я делаю немного веб-разработки для моего клиента, и я столкнулся с контрольно-пропускным пунктом.Есть ли в заголовке PHP (перенаправление адреса :) :) указать веб-сайт, начинающийся с «http: //»?
** Вот что происходит: **
-Мы несколько копий одного и того же контактную форму на нашем сайте, но мы хотим, чтобы каждый, чтобы перенаправить на другую целевую страницу после завершения для того, чтобы отслеживать уровень конверсии ,
-В этом примере я работаю на странице about. Когда пользователь отправляет свой запрос для получения дополнительной информации, страница будет идеально перенаправляться на уникальную страницу «Спасибо» (например, www.sample.com/thank-you-about.html); однако это не так.
-Это сообщение будет отправлено отлично, но перенаправление никогда не состоится. Ошибок не возникает - ничего.
Прежде чем я покажу код, вот что я пытался, чтобы решить это самостоятельно:
-У создал тело HTML код под кодом .php, который отправляет форму его вклад в. Насколько мне известно, переадресации не происходит, поэтому я, очевидно, ее еще не видел.
-Я использовал вызов «Заголовок (Location: www.sample.com/thank-you-about.html)», но это тоже ничего не делает.
-Мы пытались использовать метод «frame.location» в Javascript, и, похоже, это не похоже на попытку php.
-Я сохранил исходную страницу и целевую страницу как .php-страницы, вне зависимости от того, что использование расширения .html лежит в основе проблемы; такой же результат.
Действительно, единственное, что я могу придумать, это тип соединения, не удовлетворяющий требованиям для вызова Header(). Но не выдаст ли сообщение об ошибке?
Вот контактная форма вопроса:
<form id="contactForm" class="get-in-touch contact-form light" action="thank-you-about.php" method="post">
<input type="hidden" id="contact_nonce" name="contact_nonce" value="68592e213c"/><input type="hidden" name="" value="/"/>
<input type="hidden" name="contact-form-value" value="1"/>
<div class="iconic-input">
<input class="name" type="text" name="name" placeholder="Name*">
<i class="icons icon-user-1"></i>
</div>
<div class="iconic-input">
<input class="email" type="text" name="email" placeholder="Email*">
<i class="icons icon-email"></i>
</div>
<textarea class="msg" name="msg" placeholder="Message"></textarea>
<input type="submit" value="Send Message">
<div class="iconic-button">
<input type="reset" value="Clear">
<i class="icons icon-cancel-circle-1"></i>
</div>
</form>
Вот текущий файл .php, спасибо, что Вы about.php:
<?php
// Define some constants
define("RECIPIENT_NAME", "Sample");
define("RECIPIENT_EMAIL", "[email protected]");
define("EMAIL_SUBJECT", "New request from site sample webpage");
// Read the form values
$success = false;
$senderName = isset($_POST['name']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name']) : "";
$senderEmail = isset($_POST['email']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email']) : "";
$message = isset($_POST['msg']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['msg']) : "";
$messageInterests = "";
$subject = "";
$currentURL = isset($_POST['current-URL'])? $_POST['current-URL'] : "";
//Parse checkboxes, include them in message body
$interestArray = $_POST['interest'];
if(!empty($interestArray)){
$messageInterests .= "INFORMATION OF INTEREST: ";
$N = count($interestArray);
for($i = 0; $i < $N; $i++)
{
$messageInterests .= "\r\n" . $interestArray[$i];
}
$subject .= $messageInterests . "\r\n \r\n";
}
else {
$subject = "GENERAL INQUIRY \r\n \r\n";
}
$subject .= $message;
$message = $subject;
// If all values exist, send the email
if ($senderName && $senderEmail && EMAIL_SUBJECT && $message) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
mail($recipient, EMAIL_SUBJECT, $message, $headers);
header("Location: www.sample.com/thank-you-about.html"); /* Redirect browser */
}
?>
EDIT :: Прежде чем кто спрашивает, я знайте, что никакие флажки не обрабатываются из этой конкретной контактной формы. Они полезны на страницах обслуживания моего клиента, в то время как общие запросы обрабатываются на странице о странице, странице контактов и домашней странице.
SECOND EDIT :: Итак, я исправил проблему с абсолютным URL-адресом; однако проблема перенаправления все еще сохраняется. Спасибо всем за то, что вы так терпеливы!
Нет лучшего места, чтобы начать, чем ручной http://php.net/manual/en/function.header.php –
Без 'HTTP: //', он рассматривается как относительный URL, так бы что-то вроде 'http: // example.com/www.sample.com/thank-you-about.html' –
В этом случае, если относительный URL-адрес не найден, не выводит ли он ошибку или по крайней мере, перенаправить на страницу 404? – user3579647