Подтвердить что ты не робот

PHP Переадресация на другую страницу после отправки формы

Я прочитал все ваши сообщения о вставке заголовков в файл формы php, чтобы перенаправить пользователя на другой URL ПОСЛЕ отправки формы - но я не могу понять, как это сделать. Ниже мой код. Можете ли вы показать мне, куда поместить заголовок/перенаправление, чтобы информация была отправлена ​​по электронной почте, а затем пользователь перешел на другую страницу html?

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

    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "[email protected]";
    $email_subject = "Mailing List Form";

    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you
       submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

   // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['company']) ||
        !isset($_POST['street']) ||
        !isset($_POST['city']) ||
        !isset($_POST['state']) ||
        !isset($_POST['zip'])) {
        died('We are sorry, but there appears to be a problem with the form you 
    submitted.');      
    }

    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // required
    $company = $_POST['company']; // required
    $street = $_POST['street']; // required
    $city = $_POST['city']; // required
    $state = $_POST['state']; // required
    $zip = $_POST['zip']; // required

    $error_message = "";
    $string_exp = "/^[A-Za-z0-9 .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }  
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$company)) {
    $error_message .= 'The Company you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$street)) {
    $error_message .= 'The Street you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$city)) {
    $error_message .= 'The City you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$state)) {
    $error_message .= 'The State you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$zip)) {
    $error_message .= 'The Zip Code you entered does not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Response from Mailing List Page.  Please enter in database.\n\n";

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Company: ".clean_string($company)."\n";
    $email_message .= "Street: ".clean_string($street)."\n";
    $email_message .= "City: ".clean_string($city)."\n";
    $email_message .= "State: ".clean_string($state)."\n";
    $email_message .= "Zip: ".clean_string($zip)."\n";


// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);

?>

<!-- include your own success html here -->

Thanks for subscribing to our mailing list



<?php
}
?>
4b9b3361

Ответ 1

Сразу после @mail($email_to, $email_subject, $email_message, $headers);

header('Location: nextpage.php');

Обратите внимание, что вы никогда не увидите "Спасибо за подписку на наш список рассылки"

Это должно быть на следующей странице, если вы повторите любой текст, вы получите сообщение об ошибке, потому что заголовки были бы уже созданы, если вы хотите перенаправить, никогда не возвращайте текст, даже не пробел!

Ответ 2

Если ваше перенаправление находится в PHP, перед инструкцией перенаправления ничего не должно повторять.

Подробнее см. header.

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

В противном случае вы можете использовать Javascript для перенаправления пользователя.

Просто используйте

window.location = "http://www.google.com/"

Ответ 3

Сначала дайте вашему типу ввода отправить имя, например name='submitform'.

а затем поместите это в ваш php файл

if (isset($_POST['submitform']))
    {   
    ?>
<script type="text/javascript">
window.location = "http://www.google.com/";
</script>      
    <?php
    }

Не забудьте изменить URL-адрес на ваш.

Ответ 4

Вы можете включать функцию заголовка везде, где захотите, до тех пор, пока NO html и/или текст не будут напечатаны до стандартного.

Для получения дополнительной информации и использования: http://php.net/manual/en/function.header.php


Я вижу в вашем коде, что вы echo() внесите какой-либо текст в случае ошибки или успеха. Не делайте этого: вы не можете. Вы можете перенаправлять или показывать текст. Если вы покажете текст, вы не сможете перенаправить.

Ответ 5

Всякий раз, когда вы хотите перенаправить, отправьте заголовки:

header("Location: http://www.example.com/");

Помните, что вы не можете отправлять данные клиенту до этого.