Помощник
|
Функция header, Когда работает функция header |
mac_mw
|
Сообщение
#1
|
||
|
|
||
|
|||
Vialls_mw |
15.10.2008, 5:59;
Ответить: Vialls_mw
Сообщение
#2
|
|
Заголовков очень много всяких... Читай про HTTP протокол и загловки... Можно например отправить загловок HTTP-ошибки 404:
heeader("HTTP/1.0 404 Not Found"); и на странице будет, ЯКОБЫ не найдена страница |
|
|
mac_mw
|
Сообщение
#3
|
|
хорошо, тогда когда можно вызывать функцию header();
просто я вызываю ее в середине документа и мне выдается ошибка, что заголовой уже определен... |
|
|
Vialls_mw |
15.10.2008, 13:57;
Ответить: Vialls_mw
Сообщение
#4
|
|
Эту функцию можно использовать до вывода каких либо данных на страницу =) Сами посудите, вы написали допустим:
<?php echo "123"; header("HTTP/1.0 404 Not Found"); ?> и как тут серваку поступать? )) И кстате при объеденении PHP кода с HTML приведет к той же проблеме .. Т.е. так работать не будет: <b>=)</b>
<?php header("HTTP/1.0 404 Not Found"); ?> |
|
|
mac_mw
|
Сообщение
#5
|
|
А что делать, если надо перекинуть пользователя автоматически на этуже страницу но с другими данными, т.е. например:
пользователь находится на странице index.php?page=25 и мне нужно, чтобы при нажатии определенной ссылки сначало произошло определенное действие на этой странице, а после автоматически произошол переход на страницу index.php?page=24. Как это можно реализовать? |
|
|
mac_mw
|
Сообщение
#6
|
|
Всем спасибо за помощь, разобрался.
Нужно использовать javascript и все работает: document.location.href="my_adress"; |
|
|
Vialls_mw |
15.10.2008, 17:08;
Ответить: Vialls_mw
Сообщение
#7
|
|
Это геморно :huh: Но кому, как.. Я бы лучше с заголовками потра*лся :D
|
|
|
ZiTosS |
15.10.2008, 17:22;
Ответить: ZiTosS
Сообщение
#8
|
|
Нет вопрос на этом не решён! Использование JS для переадресации не уместно, его можно просто отключить в настройках браузера. Есть несколько вариантов использования header()
1) Кешируем HTML и всё выводимое в окно браузера с помощью ob_start() (т.е. кидаем всю поступающую информацию в виртуальный буфер обмена), а вывод осуществляем только после формирования всей страницы. (Очень затормаживает работу скрипта, т.к. страница выводится в самом конце) Пример ob_start(); echo "Выводим текст"; // А теперь перебрасываем header("location:".$_SERVER['PHP_SELF']); exit(); 2) Обычно перенаправление осуществляется после выполнения каких-либо действий, который лучше вынести в отдельный файл, и включить этот файл в самый топ главной страницы. То есть сначала у вас идут какие-то функции и их вызов, либо просто сплошной код по условию. А потом уже сам контент который надо формировать из этих условий. Тогда заголовки не будут конфликтовать, так как они будут задававться всегда раньше, чем вывод инфы на страницу. Ещё замечу, я не зря использую в связке с функцией header() функцию exit(). Функция exit() завершает выполнение скрипта в данной строке. Если мы не поставим данную функцию, скрипт продолжит выполняться даже после перенаправления на другую страницу и приведёт к сложным последствиям. |
|
|
mac_mw
|
Сообщение
#9
|
|
|
Спасибо за совет, будем его реализовывать на практике...
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужен header как у них | 11 | muratastana | 4742 | 8.1.2023, 16:34 автор: OlgaMcField |
|
Нужен header для шаблона $ | 2 | Acktiv | 1150 | 9.3.2016, 14:03 автор: Acktiv |
|
Не срабатывает функция flush. Отключение буфферизации. | 2 | bombei | 7138 | 3.9.2014, 22:23 автор: -Arks- |
|
функция "mysql_real_escape_string" выдаёт ошибки! | 19 | Panich | 12637 | 25.5.2011, 13:57 автор: -Panich- |
|
Функция задержки | 3 | people2010 | 6679 | 20.8.2010, 5:37 автор: -Alcorn- |
Текстовая версия | Сейчас: 19.4.2024, 5:44 |