X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Функция header, Когда работает функция header
mac_mw
mac_mw
Topic Starter сообщение 14.10.2008, 23:51; Ответить: mac_mw
Сообщение #1


Народ помогите разобраться: когда работает функция header();
Я прочитал инфу и так понял, что когда еще не отосланы заголовки HTML.
Заголовки HTML - это только тэги <meta>, или еще и <title> относится?
Заранее всем спасибо!..
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vialls_mw
Vialls_mw
сообщение 15.10.2008, 5:59; Ответить: Vialls_mw
Сообщение #2


Заголовков очень много всяких... Читай про HTTP протокол и загловки... Можно например отправить загловок HTTP-ошибки 404:
heeader("HTTP/1.0 404 Not Found");

и на странице будет, ЯКОБЫ не найдена страница :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mac_mw
mac_mw
Topic Starter сообщение 15.10.2008, 11:45; Ответить: mac_mw
Сообщение #3


хорошо, тогда когда можно вызывать функцию header();
просто я вызываю ее в середине документа и мне выдается ошибка, что заголовой уже определен...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vialls_mw
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
mac_mw
Topic Starter сообщение 15.10.2008, 15:15; Ответить: mac_mw
Сообщение #5


А что делать, если надо перекинуть пользователя автоматически на этуже страницу но с другими данными, т.е. например:
пользователь находится на странице index.php?page=25 и мне нужно, чтобы при нажатии определенной ссылки сначало произошло определенное действие на этой странице, а после автоматически произошол переход на страницу index.php?page=24. Как это можно реализовать?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mac_mw
mac_mw
Topic Starter сообщение 15.10.2008, 16:21; Ответить: mac_mw
Сообщение #6


Всем спасибо за помощь, разобрался.
Нужно использовать javascript и все работает:
document.location.href="my_adress";
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vialls_mw
Vialls_mw
сообщение 15.10.2008, 17:08; Ответить: Vialls_mw
Сообщение #7


Это геморно :huh: Но кому, как.. Я бы лучше с заголовками потра*лся :D
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
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
mac_mw
Topic Starter сообщение 15.10.2008, 21:19; Ответить: mac_mw
Сообщение #9


Спасибо за совет, будем его реализовывать на практике...


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен header для шаблона $
2 Acktiv 686 9.3.2016, 14:03
автор: Acktiv
Открытая тема (нет новых ответов) Не срабатывает функция flush. Отключение буфферизации.
2 bombei 3993 3.9.2014, 22:23
автор: -Arks-
Открытая тема (нет новых ответов) функция "mysql_real_escape_string" выдаёт ошибки!
19 Panich 11500 25.5.2011, 13:57
автор: -Panich-
Открытая тема (нет новых ответов) Функция задержки
3 people2010 3714 20.8.2010, 5:37
автор: -Alcorn-
Открытая тема (нет новых ответов) header
9 asbury 4643 5.7.2009, 12:36
автор: -Apay-


 



RSS Текстовая версия Сейчас: 29.11.2020, 7:53
Дизайн