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

Перенаправить на указанный URL на PHP скрипт завершение?

Как я могу заставить PHP-функцию перейти на определенный сайт, когда он будет запущен?

Например:

<?php
  //SOMETHING DONE
  GOTO(http://example.com/thankyou.php);
?>

Мне бы очень понравилось следующее...

<?php
  //SOMETHING DONE
  GOTO($url);
?>

Я хочу сделать что-то вроде этого:

<?php
  //SOMETHING DONE THAT SETS $url
  header('Location: $url');  
?>
4b9b3361

Ответ 1

<?
ob_start(); // ensures anything dumped out will be caught

// do stuff here
$url = 'http://example.com/thankyou.php'; // this can be set based on whatever

// clear out the output buffer
while (ob_get_status()) 
{
    ob_end_clean();
}

// no redirect
header( "Location: $url" );
?>

Ответ 2

Вы всегда можете использовать тег, чтобы обновить страницу, или, может быть, просто отпустите необходимый javascript на страницу в конце, что приведет к перенаправлению страницы. Вы можете даже бросить это в функцию onload, поэтому после его завершения страница перенаправляется

<?php

  echo $htmlHeader;
  while($stuff){
    echo $stuff;
  }
  echo "<script>window.location = 'http://www.yourdomain.com'</script>";
?>

Ответ 3

Если "SOMETHING DONE" не вызывает какой-либо вывод через echo/print/etc, то:

<?php
   // SOMETHING DONE

   header('Location: http://stackoverflow.com');
?>

Ответ 4

Обратите внимание, что это не сработает:

header('Location: $url');

Вам нужно сделать это (для расширения переменных):

header("Location: $url");

Ответ 5

<?php

// do something here

header("Location: http://example.com/thankyou.php");
?>

Ответ 6

не забудьте поставить "die" после вашего вызова, чтобы сделать перенаправление до того, как остальная часть кода на странице запущена. а. если у вас есть функции заголовка дальше по странице, они будут переопределять те, которые находятся дальше кода.

b: im, предполагая, что вы не хотите, чтобы остальная часть кода на странице была запущена, и почему вы ввели это перенаправление в первую очередь [возможно].

Пример:

<?php

// do something here

header("Location: http://example.com/thankyou.php");
die();

//code down here now wont get run

?>

Ответ 7

Здесь решение проблемы с "заголовками уже отправлено". Предположим, что вы проверяете и отправляете по электронной почте форму. Убедитесь, что php-код является первым на вашей странице... перед любым типом doctype и head и всем этим джазом. Затем, когда POST вернется на страницу, php-код появится первым и не столкнется с уже отправленной проблемой заголовков.