Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: О том, что HTTP-заголовки надо отправлять до самого документа  (Прочитано 16631 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« : 08-12-2005 17:54 » 

schnibbl, еще раз для тех, кто не понял с четвертого прямого указания: не надо задавать мне вопросы в ЛС - пиши их сюда!

Переношу суда всю переписку.


Цитата: schnibbl
В статейке написано дескать встраивая скрипт в страницу, юзер получает всю инфу (может просматривать скрипт), не всегда ему желательно которую показывать (случай с проверкой полей на значения). С этим я согласен, но видил одну интерессную вещ, реализованную на asp. (Мои познания сдесь скудны потому прошу строго не судить если что не так.) Так вот там после авторизации тебе грузится некая форма, которую нужно заполнить. Причем количество заполняемых реквизитов зависит от типа заполняемого документа (выбирается из списка), всё меняется тут же не общаясь с сервером. есстественно что этим занимается скрипт, но вот как раз сам скрипт мне выцепить не удалось. Сама эта странице в html коде видется просто как включение 5 файлов содержащих скрипты (судя по расширению). пытаясь загрузить отдельно сам скрипт в браузер получал сообщение о повторной авторизации, при проведении которой загружалась опять стартовая страничка (где одни включения файлов), а не интересующий меня отдельный файл. Вот вопрос,как такое делается, веть если браузер работает с этой страницой правильно, значит скрипты у меня в памяти, но как их выцепить ?   вот и получается некая защита тела скрипта.

Цитата: schnibbl
некоторые вопросы могут глупыми казаться, а Мороз таких не любит.

Цитата: schnibbl
1 файл:
старт сессии, заводим переменную, регистрируем переменную.
2 фалл:
старт сесси, выводим на экран переменную.

на 2 файле такая вещ выдается :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\program files\apache group\Apache\htdocs\primer\session\page1.php:2) in c:\program files\apache group\Apache\htdocs\primer\session\page1.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\program files\apache group\Apache\htdocs\primer\session\page1.php:2) in c:\program files\apache group\Apache\htdocs\primer\session\page1.php on line 3

в третей строчки всего один оператор: session_start().

как с этим бороться ? это php.ini криво настроен ?

Цитата: RXL
Цитата
Cannot send session cookie - headers already sent by ...
Тута все написано!!! Заголовки уже отправлены командой в строке 2 того же файла. Вообще, нельзя отправлять данные раньше, чем будут отправлены все нужные заголовки HTTP. Сессия использует cookie, которые передаются именно в заголовке. Первая отправка данных тела документа считается концом формирования заголовка.

Сначала обработай входные параметры, получи данные для отправки, определи заголовки и т.п., сохрани данные для сессии и только после всего этого, в конце работы скрипта, можно отправить тело документа. Если следовать этому правилу, то многих ошибок можно избежать.
Данные сессии относятся к входным параметрам, след., session_start() надо ставить в начало скрипта.

Код:
<?php

session_start
(); // открытие сессии

if (! isset($_SESSION[&#39;aaa&#39;]))
{
    
$_SESSION[&#39;aaa&#39;] = &#39;xxxxx&#39;; // инициализация данных сессии
}

$aaa $_SESSION[&#39;aaa&#39;]; // чтение данных сессии

// обработка входящих параметров

// получение данных для вывода

// подготовка данных для сохранения в сессии

$_SESSION[&#39;aaa&#39;] = $aaa; // сохранение данных сессии

// вывод в браузер

?>
</code]
Механизм регистрации переменных в сессии устарел - пользуйся массивом $_SESSION.


Еще раз говорю: пиши на форум!!!
MOPO3 не глупых вопросов не любит, а бестолковых - в которых невозможно понять, о чем речь. Просто пиши подробно и не торопясь. Чем вопрос понятней, тем выше вероятность получения толкового ответа. Ну, ты меня понял...

Цитата: schnibbl
странно както, в рнр.ини файле переставил register_global на on, ошибка всё равно выдается, но если нажать на обновить страницу, помимо сообщеннии об ошибке еще и переменная выведется...

Цитата: schnibbl
тоесть получается ошибка всего то в том что в 2 файле у меня перед <?php .... ?> была запись:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body>

просто во многих учебниках говоря о php сценарии довольно часто встречается вперемешку код php и html текст.
этот подход неверен ? и нельзя делать так ?:

<html>
    <head>
        <?php .... ?>
        ....
        ....
        ....
    </head>
    <body>
        ....
        <?php .... ?>
        ....
        ....
        ....
    </body>
</html>

а нужно делат ьисключительно так Давить
<?php
print('<html><head>...........');
$...=....
print($....);
print('</body></html>');
?>

Цитата: RXL
Это то же вывод в браузер. Об этом читай предыдущее мое сообщение - там об этом есть.

« Последнее редактирование: 18-12-2007 21:52 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #1 : 13-12-2005 07:51 » 

Цитата: schnibbl
некоторые вопросы могут глупыми казаться, а Мороз таких не любит.

Хе хе хе Улыбаюсь
schnibbl, не совсем точная формулировка Улыбаюсь Я закипаю тогда, когда вижу что :
1. проблема давно решена и замусолена в обсуждениях на форуме
2. человек лениться потратить какое - то время на поиск по форуму. (ИМХО всегда практически оказывается выгодным потратить час на поиски по форуму, чем два дня на мои "недовольные" высказывания и бесполезный спор с пререканиями и выражением недовольства Ага )
3. когда я на 99.9% уверен что задающий вопрос пришол за готовым и не хочет даже пошевелить мозгами и немного "погуглить"
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
schnibbl
Гость
« Ответ #2 : 13-12-2005 09:37 » 

Да Мороз, у меня к тебе никаких претензий нету, когда были я тебе об этом открыто говорил на этом же форуме.
а этот вопрос действиетльно прост в решении, потому и нестал постить, просто в моем понимании скрипт php начинался там где <?php первый раз встречается, отсюда и ошибка первым делом html код шел, а уж потом <?php session_start() ?>а оказалось что впринципе <?php session_start() ?> первым идет.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 13-12-2005 09:42 » 

Весь файл, от начала и до конца, является php-программой. Да же если в нем нет ни одного блока <?php ?>!!! Т.е. html-файл, переименованный в php (и если сервер обрабатывает это расширение как php-программу) будет именно php-программой. Такой вот он - php...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 13-12-2005 18:01 » 

Кстати, я тоже долго помаялся с этой start_session(). Тоже думал, что можно сначала <html><title> и прочее, оказалось, что нет. Вот таккая вот засада - эта start_session() Улыбаюсь.
Записан

ещё один вопрос ...
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #5 : 14-12-2005 05:30 » 

Кстати, я тоже долго помаялся с этой start_session(). Тоже думал, что можно сначала <html><title> и прочее, оказалось, что нет. Вот таккая вот засада - эта start_session() Улыбаюсь.

Да уж скорее не session_start()  засада, а засада источники из которых вы узнаёте про эту функцию. Ни разу мне не попалось книги, в которой описывается эта функция, и нет предупреждения о том как и где её надо использовать.
« Последнее редактирование: 14-12-2005 05:32 от MOPO3 » Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 14-12-2005 11:51 » 

ж)))) www.php.net/manual/ru/ - самое полное руководство по PHP - це ж от проижводителя
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 15-12-2005 02:11 » 

RXL, Улыбаюсь.
Мороз, тебе скинуть такую книгу? Книга весьма хороша для начинающих, но не без недостатков (а кто без них Улыбаюсь ).
А вообще, когда потом говорил со знакомым и он мне твердил до вывода в браузер, я упорно думал о выводе с помощью функций echo и print, т.е. как schnibbl. Не знаю почему.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 15-12-2005 05:33 » 

Извиняюсь, за работой о них совсем забыл. Постараюсь сегодня вечером выложить.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #9 : 15-12-2005 06:49 » 

Мороз, тебе скинуть такую книгу?

Скинь, уж больно интересно посмотреть Улыбаюсь
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 15-12-2005 17:09 » 

Мороз, отправил. Будь внимательней, вместе со спамом не долбани мое письмо Ага.
Записан

ещё один вопрос ...
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #11 : 16-12-2005 07:26 » 

Да уж получил и просмотрел Улыбаюсь
Странная "книга" какая-то Улыбаюсь  Ни автора....
Тут конечно я согласен что он не тыкает носом в то где надо использовать session_start(), но...

если внимательно просмотреть, то в его примерах, session_start() везде сразу после тэга <? Ага

Хотя по большому счёту конечноб не написано там об этом. Но "книга" эта в ХТМЛ формате Улыбаюсь Может кто убрал специально Ага
Да и автора нет у этой "книги" и источник неизвестен Улыбаюсь В общем много НО Ага
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
schnibbl
Гость
« Ответ #12 : 16-12-2005 07:58 » 

Мороз еще раз повторюсь session_start и у нас везде сразу после первого включения <? было, проблема в том была, что до первого включения <? были тегги HTML.
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #13 : 16-12-2005 09:14 » 

Мороз еще раз повторюсь session_start и у нас везде сразу после первого включения <? было, проблема в том была, что до первого включения <? были тегги HTML.

А вы все значит одну и ту же "книгу" прочитали ?

Процитирую RXL :
www.php.net/manual/ru/ - самое полное руководство по PHP - це ж от проижводителя
« Последнее редактирование: 16-12-2005 09:16 от MOPO3 » Записан

MCP, MCAD, MCTS:Win, MCTS:Web
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 16-12-2005 13:12 » 

RXL безусловно прав с этой ссылкой, но начинать, думаю, стоит все-таки с книг. А эту книгу я высылал Buu и кажется schnibbl'у тоже высылал, если не путаю.
В целом книга хорошая, объясняется там все доступно как раз для новичка. Недостатки у нее есть, но думаю они не столь критичны. Мороз, согласись, книга в целом неплоха Ага.
зы: Мороз, терпимей относись к новичкам. Когда только начинаешь, то бывает и прописных истин не сразу догоняешь. Себя вспомни, может тоже что-то в этом роде было Ага.
« Последнее редактирование: 18-12-2007 21:57 от Алексей1153++ » Записан

ещё один вопрос ...
Люсь
Команда клуба

ru
Offline Offline
Пол: Женский

« Ответ #15 : 19-12-2005 03:17 » 

а я не читала и поэтому таких ошибок не делала Улыбаюсь))
честно говоря просто не понравилась книга, моя понятнее Улыбаюсь
Записан

Посторонним просьба не беспокоить!
-------------------------------------------------
O (I) Rh +
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #16 : 19-12-2005 05:18 » 

Мороз, терпимей относись к новичкам. Когда только начинаешь, то бывает и прописных истин не сразу догоняешь. Себя вспомни, может тоже что-то в этом роде было Ага.
А я и отношусь терпимо Улыбаюсь Иначе не отвечал бы просто. А насчёт "и прописных истин не сразу догоняешь" я согласен, но! Об этом я уже немного выше писал. О лени поискать что-то Ага Ну нельзя же зациклиться на одной книге Улыбаюсь Тем более такой, что ты мне прислал Улыбаюсь А вообще ПХП прекрасно почти всегда описывает свои ошибки Улыбаюсь И откорою "страшнейшую тайну" для некоторых :
Видиш ошибку
Копируеш её
Идёш в любой из популярных поисковиков
Вставляеш в поле поиска скопированый текс ошибки
Жмёш поиск и вуаля! тут же находиш подробное описание и пример чё делать
 Вот Ага И опять же повторюсь что стоит сначала поискать на форуме прежде чем задать такой вопрос Улыбаюсь
Согласись, что постоянное повторение одного и того же вопроса, к тому же решённого уже, просто раздражает!
а я не читала и поэтому таких ошибок не делала Улыбаюсь))
честно говоря просто не понравилась книга, моя понятнее Улыбаюсь
Вот и я об том же Улыбаюсь Книга далека от совершенства Улыбаюсь
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #17 : 20-12-2005 09:18 » 

Мороз, я с тобой согласен Улыбаюсь.  
Записан

ещё один вопрос ...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines