Как я могу заставить PHP-функцию перейти на определенный сайт, когда он будет запущен?
Например:
<?php //SOMETHING DONE GOTO(http://example.com/thankyou.php); ?>
Мне бы очень понравилось следующее …
<?php //SOMETHING DONE GOTO($url); ?>
Я хочу сделать что-то вроде этого:
<?php //SOMETHING DONE THAT SETS $url header('Location: $url'); ?>
<? 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" ); ?>
Вы всегда можете просто использовать тег, чтобы обновить страницу, или, может быть, просто отпустите необходимый javascript на странице в конце, что приведет к перенаправлению страницы. Вы можете даже бросить это в функцию onload, поэтому после его завершения страница перенаправляется
<?php echo $htmlHeader; while($stuff){ echo $stuff; } echo "<script>window.location = 'http://www.yourdomain.com'</script>"; ?>
в<?php echo $htmlHeader; while($stuff){ echo $stuff; } echo "<script>window.location = 'http://www.yourdomain.com'</script>"; ?>
Если «SOMETHING DONE» не вызывает какой-либо вывод через echo / print / etc, то:
<?php // SOMETHING DONE header('Location: http://stackoverflow.com'); ?>
Обратите внимание, что это не сработает:
header('Location: $url');
Вам нужно сделать это (для расширения переменных):
header("Location: $url");
<?php // do something here header("Location: http://example.com/thankyou.php"); ?>
не забудьте поставить «die» после вашего вызова, чтобы сделать перенаправление до того, как остальная часть кода на странице запущена. а. если у вас есть функции заголовка дальше по странице, они будут переопределять те, которые находятся выше кода.
b: im, предполагая, что вы не хотите, чтобы остальная часть кода на странице была запущена, и почему вы перенесите эту переадресацию в первую очередь [возможно].
пример:
<?php // do something here header("Location: http://example.com/thankyou.php"); die(); //code down here now wont get run ?>
Вот решение проблемы «заголовки уже отправлены». Предположим, что вы проверяете и отправляете по электронной почте форму. Убедитесь, что php-код является первым на вашей странице … перед любым типом doctype и head и всем этим джазом. Затем, когда POST вернется на страницу, PHP-код будет первым и не столкнется с уже отправленной проблемой.