Проблема при старте сеанса на WML-странице

Фанат

oncle terrible
Команда форума
При чём здесь автозапуск?
С чего ты вообще взял, будто нельзя отправить заголовок через header и использовать сеансы одновременно?
 

agx

Программер :-)
Конечно, должно быть можно все это делать одновременно, иначе никак. Да и во всех примерах все так и сделано, как у меня. Только у меня работать нехотит.
У меня еще один вопрос: почему-то при вызове session_start() в скрипте, если его запустить из командной строки, ВСЕГДА возникает такое предупреждение. В логе ошибок Apache оно не отображается, поэтому я о нем не знал раньше. Так ведь быть не должно, верно? Есть ли способ этого избежать? Может, нужно настроить php.ini или httpd.conf? Или еще что сделать... И вообще, может, это предупреждение возникает и должно возникать только тогда, когда скрипт запускается из командной строки?
P.S. Понимаю, вопросов сляшком много, но все они об одном: как правильно использовать сессии, чтобы php на них не ругался. Вроде бы, делаю все точно по мануалу, и код приводил выше, но все равно вылетает ворнинг.
 

SiMM

Новичок
> И вообще, может, это предупреждение возникает и должно возникать только тогда, когда скрипт запускается из командной строки?
Возьми да проверь. Запусти из БРАУЗЕРА да посмотри.
 

Фанат

oncle terrible
Команда форума
какой смысл стартовать сессию из командной строки?
 

agx

Программер :-)
Фанат
Смысла никакого. Просто интересно, почему он ругается. Из-за чего-то ведь wap-эмулятор страницу не отображает. С этого, вобщем-то и началась тема. Я предположил, что именно из-за этой ошибки. Что сервер в начало страницы, прежде, чем пересылать ее микробраузеру, записывет инофрмацию об этой ошибке, которую эмулятор воспринимает как часть страницы, а так как она не соответствует стандарту wml, всю страницу не отображает.
SiMM
Если запускать из браузера, то в лог ошибок сервера никаких предуперждений не добавляется. Тоесть, все вроде как правильно работает. Но M3Gate страницу все равно НЕ отображает.
===
Резюме получается такое: пытаюсь использовать сессии на wml-странице - эмулятор ее не берет. Комментирую вызов session_start() - страница эмулятором отображается корректно. Несмотря на то, что и в первом и во втором случае сервер никаких предупержедения не выдает.
Так все-таки, в чем здесь может быть ошибка?
 

agx

Программер :-)
SiMM
Спасибо за ссылку, очень полезно. :)

-~{}~ 31.05.05 13:03:

Люди добрые! Ну что я делаю не так?!!
Запрашиваю (через telnet) с сервера такую страницу:
---
<?php header("Content-Type: text/vnd.wap.wml;"); ?>
<?php session_start(); ?>
<?php echo '<'.'?'.'xml version="1.0"'.'?'.'>'; ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="qwe" title="WorkMAN">
<p>Hello</p>
</card>
</wml>
---
Анализирую выданный wml. Все в порядке.
Комментирую строчку session_start(); Запрашиваю снова. Вывод абсолютно такой же (как и следовало ожидать).
НО ПЕРВЫЙ ВАРИАНТ НЕ ОТОБРАЖАЕТСЯ ЭМУЛЯТОРОМ (M3Gate), А ВТОРОЙ ОТОБРАЖАЕТСЯ!!! :-(
В чем же разница???
 

baev

‹°°¬•
Команда форума
Анализирую выданный wml. Все в порядке.
Чё-то мне не верится.

Вот эта строчка:
PHP:
<?php echo '<'.'?'.'xml version="1.0"'.'?'.'>'; ?>
-- она у Вас что выводит?

Какие header'ы сервер отдаёт в обоих вариантах? Не смотрели?
 

agx

Программер :-)
SiMM, спасибо за ссылку. :)
baev
Эта строка выводит: <?xml version="1.0"?>.
Хедер для варианта с вызовом session_start() такой:
---
HTTP/1.1 200 OK
Date: Tue, 31 May 2005 12:03:27 GMT
Server: Apache/1.3.27 (Win32)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.3.0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/vnd.wap.wml;
---
А для варианта без вызова session_start() такой:
---
HTTP/1.1 200 OK
Date: Tue, 31 May 2005 12:04:06 GMT
Server: Apache/1.3.27 (Win32)
X-Powered-By: PHP/4.3.0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/vnd.wap.wml;
---
Все различие, похоже, заключается в строках
---
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
---
===
Может быть такое, что эмулятор M3Gate на них как-то неадекватно реагирует? Потому что само тело запрошенной страницы, как я понял, в обоих случаях выдается одно и тоже. Значит, только в хедерах может быть проблема? Или есть еще что-то?
 

SiMM

Новичок
> Может быть такое, что эмулятор M3Gate на них как-то неадекватно реагирует?
В варианте без session_start возьми да добавь эти заголовки вручную. Но, возможно, дело в source - мало ли что ему там не понравилось - размер странички, например.
 

agx

Программер :-)
SiMM
И правда, если добавить эти заголовки, страница пересает грузиться...
===
Более, того, методом исключения выяснил что проблема в строке заголовка
---
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
---
Можно как-то сделать, чтобы сервер этот заголовок не отправлял? И вообще, что этот заголовок означает?
 

SiMM

Новичок
agx, возможно это глюки M3Gate. Попробуй дла начала то же самое на реальном устройстве. Если проблема в M3Gate, то для отладки её можно решить при помощи фильтрации входящих заголовков с помощью Proxomitron'а.
 
Сверху