2016-01-25 4 views
-2

Не знаю, почему заголовок в конце не перенаправляется на страницу thankyou.html. Я читал похожие предыдущие сообщения, но в большинстве случаев люди просто использовали echo() вместо header() или что-то в этом роде.PHP-заголовок не перенаправляется на страницу благодарности

<?php 
if(isset($_POST['submit'])) 
{ 

$email_us = "[email protected]"; 
$email_user = $_POST['email']; 

$subject_us = "Website Reservation"; 
$subject_user = "Reservation request recieved"; 

$fname = $_POST['fname']; 

$msg_us = ' 
<html> 
<head> 
<title>Website Reservation</title> 
</head> 
<body> 
<p>RESERVATION DETAILS:</p> 
<table> 
    <tr> 
     <td>Name:</td> 
     <td>'.htmlspecialchars($fname).'</td> 
    </tr> 
    <tr> 
     <td>Email:</td> 
     <td>'.htmlspecialchars($_POST['email']).'</td> 
    </tr> 
    <tr> 
     <td>Tour:</td> 
     <td>'.htmlspecialchars($_POST['tname']).'</td> 
    </tr> 
    <tr> 
     <td>Reservation Date:</td> 
     <td>'.htmlspecialchars($_POST['datetour']).'</td> 
    </tr> 
    <tr> 
     <td>Group Size:</td> 
     <td>'.htmlspecialchars($_POST['groupsize']).'</td> 
    </tr> 
    <tr> 
     <td>Pick-up Accommodation:</td> 
     <td>'.htmlspecialchars($_POST['fpickup']).'</td> 
    </tr> 
    <tr> 
     <td>Optional Message:</td> 
     <td>'.htmlspecialchars($_POST['feedback']).'</td> 
    </tr> 
</table> 
</body> 
</html> 
'; 

$msg_user = ' 
<html> 
<head> 
<title>Pure Azores Tours Reservation Request</title> 
</head> 
<body> 
<p>Dear '.htmlspecialchars($fname).'</p> 
<p>Thank you for submitting a reservation with Pure Azores Tours! 
<p>Please expect an email from us confirming your reservation within the   next few hours. 
We usually respond in a few minutes! 

<p>RESERVATION DETAILS:</p> 
<table> 
    <tr> 
     <td>Name:</td> 
     <td>'.htmlspecialchars($fname).'</td> 
    </tr> 
    <tr> 
     <td>Email:</td> 
     <td>'.htmlspecialchars($_POST['email']).'</td> 
    </tr> 
    <tr> 
     <td>Tour:</td> 
     <td>'.htmlspecialchars($_POST['tname']).'</td> 
    </tr> 
    <tr> 
     <td>Reservation Date:</td> 
     <td>'.htmlspecialchars($_POST['datetour']).'</td> 
    </tr> 
    <tr> 
     <td>Group Size:</td> 
     <td>'.htmlspecialchars($_POST['groupsize']).'</td> 
    </tr> 
    <tr> 
     <td>Pick-up Accommodation:</td> 
     <td>'.htmlspecialchars($_POST['fpickup']).'</td> 
    </tr> 
    <tr> 
     <td>Optional Message:</td> 
     <td>'.htmlspecialchars($_POST['feedback']).'</td> 
    </tr> 
</table> 
</body> 
</html> 
'; 

$headers_us = "MIME-Version: 1.0" . "\r\n"; 
$headers_us .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
$headers_user = "MIME-Version: 1.0" . "\r\n"; 
$headers_user .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 

$headers_us .= 'From: <'.$_POST['email'].'>' . "\r\n"; 
$headers_user .= 'From: <[email protected]>' . "\r\n"; 

mail($email_us,$subject_us,$msg_us,$headers_us); 
mail($email_user,$subject_user,$msg_user,$headers_user); 
header('Location: thankyou.html'); 
exit; 
} 
?> 

EDIT: HTML код

<div class="wrap-form"> 
    <form action="" method="post"> 

    <label> 
     <span>Name:</span><input id="fname" type="text" placeholder="Your Name" name="fname" required /> 
    </label> 
    <label> 
     <span>Email:</span><input id="email" type="text" placeholder="Your Email" name="email" required /> 
    </label> 
    <label> 
     <span>Tour</span> 
     <select name="tname" required> 
     <optgroup label="Day Tours"> 
      <option value="West São Miguel" <?php if($_GET['title'] == 'dt01'){ ?>selected="selected"<?php } ?>> - West São Miguel</option> 
      <option value="A Day at Furnas Valley" <?php if($_GET['title'] == 'dt02'){ ?>selected="selected"<?php } ?>> - A Day at Furnas Valley</option> 
      <option value="Nordeste with Canyoning" <?php if($_GET['title'] == 'dt03'){ ?>selected="selected"<?php } ?>> - Nordeste with Canyoning</option> 
     </optgroup> 
     <optgroup label="Hiking Tours"> 
      <option value="Pico da Vara climb" <?php if($_GET['title'] == 'ht01'){ ?>selected="selected"<?php } ?>> - Pico da Vara Climb</option> 
     </optgroup> 
     <optgroup label="Multi-Day Packages"> 
      <option value="São Miguel Essential 2 days" <?php if($_GET['title'] == 'pa01'){ ?>selected="selected"<?php } ?>> - São Miguel Essential 2 days</option> 
     </optgroup> 

     </select> 
    </label> 

    <table> 
      <tr> 
       <td> 
        <label> 
        <span>Tour Date:</span><input style="width:130px" id="datepicker" type="text" name="datetour" required readonly/> 
        </label> 
       </td> 
       <td style="text-align: right"> 
        <label> 
        <span>Group Size:</span><input style="width:56px; text-align:center" id="groupsize" type="number" name="groupsize" min="1" required value="2" /> 
        </label> 
       </td> 
      </tr> 
    </table> 
    <label> 
     <span class="clear">Pick-up accommodation:</span> 
     <input id="fpickup" type="text" placeholder="Your Accommodation" name="fpickup" /> 
    </label> 
    <label> 
     <span>Message</span> 
     <textarea id="feedback" placeholder="(Optional Text)" name="feedback"></textarea> 
     <input type="submit" name="submit" id="submit" value="Submit" required/> 
    </label> 

    </form> 
</div> 
+2

Добавить отчет об ошибках в начало вашего файла (ов) сразу после открытия '

+0

@JayBlanchard: всегда мужчина с лучшими предложениями;) –

+2

99.9999% шанс, что это обман http://stackoverflow.com/questions/8028957/how-to-fix-headers -ready уже отправлено-error-in-php в любом случае. –

ответ

1

Две общие проблемы здесь. Во-первых, вы можете иметь выход до функции header(). Это может быть любой пробел или HTML до PHP-кода. Вы не можете ничего выводить на страницу, даже в одиночном пробеле, иначе PHP даст вам сообщение с заголовками, уже отправленное. Вы должны были включить отчет об ошибках, как указал Джей.

Во-вторых, проверьте, действительно ли файл thankyou.html существует и находится в том же прямом файле, что и выше, с точно таким же именем и расширением.

+0

Я сделал то, что вы, ребята, предлагаете. Это предупреждение, которое я получаю: Невозможно изменить информацию заголовка - заголовки уже отправлены (вывод запущен в /home/fy1jmqyz/public_html/pureazores.com/en/contact.php:124) в/home/fy1jmqyz/public_html/pureazores .com/ru/contact.php on line 347 У меня есть код на этой странице, который получает переменную 'title', чтобы изменить предварительный выбор в раскрывающемся меню. Интересно, это проблема. Я буду редактировать OP с помощью html. –

+0

@MiguelSoares, сначала google: http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php – trincot

Смежные вопросы