Перенаправить на указанный 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');
?>
Ответы
Ответ 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-код появится первым и не столкнется с уже отправленной проблемой заголовков.