Какой редирект практичнее?

  • Автор темы Автор темы Zh0rzh
  • Дата начала Дата начала

Zh0rzh

Новичок
Какой редирект практичнее?

Какай редирект из ниже приведенных практичнее и эффективнее использовать.
Родной ПХП
PHP:
header("Location:some.php");
Либо на ЯваСкрипте
<script>
location.href="some.php";
</script>
 
первый. потому что браузер о нем ничего не знает.
 
> потому что браузер о нем ничего не знает.
ну это ты загнул.
 
Вообще говоря, это зависит от задачи. Каждому из редиректов своё применение.
 
Но с первым у меня возникала проблема - если после редиректа из одного скрипта (где ини циализируются сессии) на другой, нажать кнопку обновить, то загружается заново первый скрипт.
 
> потому что браузер о нем ничего не знает.
ну это ты загнул.
Действительно загнул.

Однако, согласись что обработка ответа сервера происходит гораздо прозрачнее для клиента. никаких тебе history, ни каких тебе ожиданий загрузки... сервер ответил 302 и мы пошли по новому пути.
 
уточняю. PHP должен выполняться как модуль Апача, а не как CGI приложение.
 
если жек он выполняется, как CGI, то надо писать полный путь - http://host/script
 
>PHP должен выполняться как модуль Апача, а не как CGI приложение.
Оно так и есть. ПХП был в утановлен в точности по соответствующему разделу в факе.

Еще один миниус первого способа , это что он будет не выполним при наличии какого либо вывода до заголовка. Допустим какое нить не предусмотренное notice: сообщение
 
Повторяю: "Вообще говоря, это зависит от задачи. Каждому из редиректов своё применение."

Ромик, а как установка PHP как модуля меняет описанное поведение (по поводу рефреша)?
 
в cgi какой-то там субреквест выполняется и все делается без уастия браузера.
у того соответстчвенно адрес в строке старый остается.
 
Автор оригинала: Zh0rzh
>PHP должен выполняться как модуль Апача, а не как CGI приложение.
Оно так и есть. ПХП был в утановлен в точности по соответствующему разделу в факе.

Еще один миниус первого способа , это что он будет не выполним при наличии какого либо вывода до заголовка. Допустим какое нить не предусмотренное notice: сообщение
А у меня Header("location:...") выдает месагу Can not send .... output started in ..... Енто почему?
 
Сверху