Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Загрузить другую страницу на Php???

382
13 марта 2006 года
dodger
164 / / 07.02.2003
Суть такая, в зависимости от входных данных, надо загрузить разные страницы. Допустим:
 
Код:
if($q==1){
header("location: page1.php");
}
if($q==2){
header("location: page2.php");
}

Но, дело в том, что этот разбор ведется уже после того, как некоторые данны были выведены и сервка ругается, что не могу послать хедер...Есть ли какие-то другие варианты, загрузить другую страницу?
583
13 марта 2006 года
#define
150 / / 03.12.2002
Есть предложение засунуть этот "разбор" ДО вывода в браузер, тогда ругаться не будет :)
Ну а из "других вариантов" пока в голову приходит только JavaScript, т.е. редирект на стороне клиента. Для вас это вариант?
382
13 марта 2006 года
dodger
164 / / 07.02.2003
Цитата:
Originally posted by #define
Есть предложение засунуть этот "разбор" ДО вывода в браузер, тогда ругаться не будет :)
Ну а из "других вариантов" пока в голову приходит только JavaScript, т.е. редирект на стороне клиента. Для вас это вариант?


Разбор засунуть до, не получится. Там все равно будет выводиться какая-то инфа до разбора.
Ява-скрипт тоже не вариант... Я сейчас пробую это все дело блоковать. Может чего и получится.. Но вообще конечно ужас, что в PHP так неудобно работать с редиректом.

583
13 марта 2006 года
#define
150 / / 03.12.2002
Цитата:
Originally posted by dodger
Разбор засунуть до, не получится. Там все равно будет выводиться какая-то инфа до разбора.
Ява-скрипт тоже не вариант... Я сейчас пробую это все дело блоковать. Может чего и получится.. Но вообще конечно ужас, что в PHP так неудобно работать с редиректом.



А что если использовать буферизированный вывод для всего того, что до разбора? Из PHP мануала:

Цитата:
As of PHP 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

12
13 марта 2006 года
alekciy
3.0K / / 13.12.2005
Цитата:
Originally posted by dodger
Разбор засунуть до, не получится. Там все равно будет выводиться какая-то инфа до разбора.
Ява-скрипт тоже не вариант... Я сейчас пробую это все дело блоковать. Может чего и получится.. Но вообще конечно ужас, что в PHP так неудобно работать с редиректом.


В PHP есть возможность задежки отправки данных. Отправку задержать и делать только после того, как все данные будут известны.
Кстати я не совсем понимаю, зачем page.php запихивать в хидеры. Что, нельзя просто прочитать файли и вывести его браузеру через print? Или включить нужный код в тело основного скрипта через include???

382
14 марта 2006 года
dodger
164 / / 07.02.2003
В итоге, я разнес все в разные места. Т.е. код - отдельно, шаблоны - отдельно. И теперь все работает. Спасибо за помощь.
12
14 марта 2006 года
alekciy
3.0K / / 13.12.2005
Цитата:
Originally posted by dodger
В итоге, я разнес все в разные места. Т.е. код - отдельно, шаблоны - отдельно. И теперь все работает. Спасибо за помощь.


Давно пора ;-).
Темплейты рулят!!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог