@PetrovVK

Как обновить страницу, а затем сделать редирект?

Необходимо: если нажата кнопка new_invoice, то сначала обновить страницу, а затем сделать редирект. Что только не делал - не работает refresh, хоть он и стоит первым...
if (isset($_POST['new_invoice']) ) {
	header( 'Refresh: 0');
	header( 'Location: invoice.php?id=111' );
}

Что я делаю не так?
  • Вопрос задан
  • 363 просмотра
Решения вопроса 1
wisgest
@wisgest
Не ИТ-специалист
Что я делаю не так?

Перенаправление по Location всегда происходит до до какой-либо обработки тела ответа, Refresh всегда срабатывает после завершения загрузки документа.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
Перенаправляешь на эту же стр. (через Location) с get параметром, потом проверяешь его
if (isset($_GET('id'))) {
// redirect
}
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Не нужно заниматься извращениями
Делай сразу редирект и не морочь себе голову.
Ответ написан
Комментировать
@eyuioa
$url = "/index.php";
$time = 1; #время в секундах
header("Refresh: $time; url=$url");
Делает редирект, а после перенаправляет на нужную страницу, но я его настоятельно не рекомендую использовать Refresh, так как он путает ботов поисковых систем, поддерживается не всеми браузерами, да и судя по всему вы используете его как как чудный костыль.
Как писали ранее, используйте Location для таких целей.
header("Location: $url");
Ответ написан
zabudkin
@zabudkin
Инженер-системотехник, программист, админ, ТПУ!!!!
if (isset($_POST['new_invoice']) ) {
////////////////////////////////////////  header( 'Refresh: 0');
  header( 'Location: invoice.php?id=111' );
  die();
}

if (isset($_POST['new_invoice']) ) {
////////////////////////////////////////  header( 'Refresh: 0');
  header( 'Location: invoice.php?id='.$_POST['new_invoice'] );
  die();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы