RXL
Технический
Администратор
Offline
Пол:
|
|
« : 08-12-2005 17:54 » |
|
schnibbl, еще раз для тех, кто не понял с четвертого прямого указания: не надо задавать мне вопросы в ЛС - пиши их сюда! Переношу суда всю переписку. В статейке написано дескать встраивая скрипт в страницу, юзер получает всю инфу (может просматривать скрипт), не всегда ему желательно которую показывать (случай с проверкой полей на значения). С этим я согласен, но видил одну интерессную вещ, реализованную на asp. (Мои познания сдесь скудны потому прошу строго не судить если что не так.) Так вот там после авторизации тебе грузится некая форма, которую нужно заполнить. Причем количество заполняемых реквизитов зависит от типа заполняемого документа (выбирается из списка), всё меняется тут же не общаясь с сервером. есстественно что этим занимается скрипт, но вот как раз сам скрипт мне выцепить не удалось. Сама эта странице в html коде видется просто как включение 5 файлов содержащих скрипты (судя по расширению). пытаясь загрузить отдельно сам скрипт в браузер получал сообщение о повторной авторизации, при проведении которой загружалась опять стартовая страничка (где одни включения файлов), а не интересующий меня отдельный файл. Вот вопрос,как такое делается, веть если браузер работает с этой страницой правильно, значит скрипты у меня в памяти, но как их выцепить ? вот и получается некая защита тела скрипта.
некоторые вопросы могут глупыми казаться, а Мороз таких не любит.
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 криво настроен ? Cannot send session cookie - headers already sent by ... Тута все написано!!! Заголовки уже отправлены командой в строке 2 того же файла. Вообще, нельзя отправлять данные раньше, чем будут отправлены все нужные заголовки HTTP. Сессия использует cookie, которые передаются именно в заголовке. Первая отправка данных тела документа считается концом формирования заголовка. Сначала обработай входные параметры, получи данные для отправки, определи заголовки и т.п., сохрани данные для сессии и только после всего этого, в конце работы скрипта, можно отправить тело документа. Если следовать этому правилу, то многих ошибок можно избежать. Данные сессии относятся к входным параметрам, след., session_start() надо ставить в начало скрипта. <?php
session_start(); // открытие сессии
if (! isset($_SESSION['aaa'])) { $_SESSION['aaa'] = 'xxxxx'; // инициализация данных сессии }
$aaa = $_SESSION['aaa']; // чтение данных сессии
// обработка входящих параметров
// получение данных для вывода
// подготовка данных для сохранения в сессии
$_SESSION['aaa'] = $aaa; // сохранение данных сессии
// вывод в браузер
?></code] Механизм регистрации переменных в сессии устарел - пользуйся массивом $_SESSION.
Еще раз говорю: пиши на форум!!! MOPO3 не глупых вопросов не любит, а бестолковых - в которых невозможно понять, о чем речь. Просто пиши подробно и не торопясь. Чем вопрос понятней, тем выше вероятность получения толкового ответа. Ну, ты меня понял... странно както, в рнр.ини файле переставил register_global на on, ошибка всё равно выдается, но если нажать на обновить страницу, помимо сообщеннии об ошибке еще и переменная выведется...
тоесть получается ошибка всего то в том что в 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>'); ?>
Это то же вывод в браузер. Об этом читай предыдущее мое сообщение - там об этом есть.
|
|
« Последнее редактирование: 18-12-2007 21:52 от Алексей1153++ »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #1 : 13-12-2005 07:51 » |
|
некоторые вопросы могут глупыми казаться, а Мороз таких не любит.
Хе хе хе 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
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 13-12-2005 09:42 » |
|
Весь файл, от начала и до конца, является php-программой. Да же если в нем нет ни одного блока <?php ?>!!! Т.е. html-файл, переименованный в php (и если сервер обрабатывает это расширение как php-программу) будет именно php-программой. Такой вот он - php...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
nikedeforest
|
|
« Ответ #4 : 13-12-2005 18:01 » |
|
Кстати, я тоже долго помаялся с этой start_session(). Тоже думал, что можно сначала <html><title> и прочее, оказалось, что нет. Вот таккая вот засада - эта start_session() .
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #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
Технический
Администратор
Offline
Пол:
|
|
« Ответ #6 : 14-12-2005 11:51 » |
|
ж)))) www.php.net/manual/ru/ - самое полное руководство по PHP - це ж от проижводителя
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
nikedeforest
|
|
« Ответ #7 : 15-12-2005 02:11 » |
|
RXL, . Мороз, тебе скинуть такую книгу? Книга весьма хороша для начинающих, но не без недостатков (а кто без них ). А вообще, когда потом говорил со знакомым и он мне твердил до вывода в браузер, я упорно думал о выводе с помощью функций echo и print, т.е. как schnibbl. Не знаю почему.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 15-12-2005 05:33 » |
|
Извиняюсь, за работой о них совсем забыл. Постараюсь сегодня вечером выложить.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #9 : 15-12-2005 06:49 » |
|
Мороз, тебе скинуть такую книгу? Скинь, уж больно интересно посмотреть
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #10 : 15-12-2005 17:09 » |
|
Мороз, отправил. Будь внимательней, вместе со спамом не долбани мое письмо .
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #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
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #13 : 16-12-2005 09:14 » |
|
Мороз еще раз повторюсь session_start и у нас везде сразу после первого включения <? было, проблема в том была, что до первого включения <? были тегги HTML.
А вы все значит одну и ту же "книгу" прочитали ? Процитирую RXL :
|
|
« Последнее редактирование: 16-12-2005 09:16 от MOPO3 »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #14 : 16-12-2005 13:12 » |
|
RXL безусловно прав с этой ссылкой, но начинать, думаю, стоит все-таки с книг. А эту книгу я высылал Buu и кажется schnibbl'у тоже высылал, если не путаю. В целом книга хорошая, объясняется там все доступно как раз для новичка. Недостатки у нее есть, но думаю они не столь критичны. Мороз, согласись, книга в целом неплоха . зы: Мороз, терпимей относись к новичкам. Когда только начинаешь, то бывает и прописных истин не сразу догоняешь. Себя вспомни, может тоже что-то в этом роде было .
|
|
« Последнее редактирование: 18-12-2007 21:57 от Алексей1153++ »
|
Записан
|
ещё один вопрос ...
|
|
|
Люсь
|
|
« Ответ #15 : 19-12-2005 03:17 » |
|
а я не читала и поэтому таких ошибок не делала )) честно говоря просто не понравилась книга, моя понятнее
|
|
|
Записан
|
Посторонним просьба не беспокоить! ------------------------------------------------- O (I) Rh +
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #16 : 19-12-2005 05:18 » |
|
Мороз, терпимей относись к новичкам. Когда только начинаешь, то бывает и прописных истин не сразу догоняешь. Себя вспомни, может тоже что-то в этом роде было . А я и отношусь терпимо Иначе не отвечал бы просто. А насчёт "и прописных истин не сразу догоняешь" я согласен, но! Об этом я уже немного выше писал. О лени поискать что-то Ну нельзя же зациклиться на одной книге Тем более такой, что ты мне прислал А вообще ПХП прекрасно почти всегда описывает свои ошибки И откорою "страшнейшую тайну" для некоторых : Видиш ошибку Копируеш её Идёш в любой из популярных поисковиков Вставляеш в поле поиска скопированый текс ошибки Жмёш поиск и вуаля! тут же находиш подробное описание и пример чё делать Вот И опять же повторюсь что стоит сначала поискать на форуме прежде чем задать такой вопрос Согласись, что постоянное повторение одного и того же вопроса, к тому же решённого уже, просто раздражает! а я не читала и поэтому таких ошибок не делала )) честно говоря просто не понравилась книга, моя понятнее Вот и я об том же Книга далека от совершенства
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #17 : 20-12-2005 09:18 » |
|
Мороз, я с тобой согласен .
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
|