Название: я в шоке. CONTENT_LENGTH
Отправлено: NeoNox от 11 Июня 2003, 17:28:20
Значит пора переходить тебе на модуль CGI perldoc CGI;
use CGI qw(:standard);
my %FORM; $FORM{fieldname} = param(fildname);
и далее...
Название: я в шоке. CONTENT_LENGTH
Отправлено: Yaroslav от 11 Июня 2003, 17:29:20
эээээ а где - $buffer = $ENV{\'QUERY_STRING\'}; ?
Название: я в шоке. CONTENT_LENGTH
Отправлено: NeoNox от 11 Июня 2003, 17:35:42
Yaroslav эээээ а зачем он там нужен???
Название: я в шоке. CONTENT_LENGTH
Отправлено: Yaroslav от 11 Июня 2003, 17:40:18
Цитировать
NeoNox: эээээ а зачем он там нужен???
так вот же
Цитировать
teebot: но $buffer всегда пустой.
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 11 Июня 2003, 18:11:46
ну ладно не прикалывайтесь. нам теперь $buffer не нужна на ее месте теперь $st. Говорим $buffer подрозумеваем $st.
Название: я в шоке. CONTENT_LENGTH
Отправлено: Phoinix от 11 Июня 2003, 19:26:42
teebot
Может проблема в HTML форме ???
Попробуй все-таки проверить через CGI передаются переменные или нет? Тем более это не так долго...
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 10:33:58
Ну вот форма, вроде ничего особенного, к тому же на старом месте все работало (вот что меня сбивает с толку).
теги вроде все закрыты.
Название: я в шоке. CONTENT_LENGTH
Отправлено: Yaroslav от 12 Июня 2003, 11:40:02
тут много вопросов и надо все видеть что б понять, а вообще я только этой ночью написал скрипт похожий на тот что сейчас у тебя http://forums.webscript.ru/showthread.php?s=&threadid=12366&pagenumber=2 (правда не знаю что твой делать должен, но думаю тебе нет проблем исправить)
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 12:34:31
посмотрел, попробовал вставить if ($ENV{\'QUERY_STRING\'}) {$namevalues = $ENV{\'QUERY_STRING\'};} else {read(STDIN, $namevalues, $ENV{\'CONTENT_LENGTH\'});} не помогло.
данные передаються. Значит с формой я так понял все классно. почему же тогда $st всегда пустая. Я уже интересовался насчет каких-то ограничений на хостинге, говорят что нет таких. может есть еще какая нибудь переменная окружения гдежно выцепить передаваемые данные?
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 12:39:47
посмотрел, попробовал вставить if ($ENV{\'QUERY_STRING\'}) {$namevalues = $ENV{\'QUERY_STRING\'};} else {read(STDIN, $namevalues, $ENV{\'CONTENT_LENGTH\'});} не помогло.
данные передаються. Значит с формой я так понял все классно. почему же тогда $st всегда пустая. Я уже интересовался насчет каких-то ограничений на хостинге, говорят что нет таких. может есть еще какая нибудь переменная окружения гдежно выцепить передаваемые данные?
Название: я в шоке. CONTENT_LENGTH
Отправлено: NCRangeR от 12 Июня 2003, 13:13:08
teebot У меня такое уже было :(
Попробуй получать данные из POST в самом-самом-самом начале работы скрипта.
Некоторые встроенные функции типа "cookie" делают sysread до тебя, таким образом информация теряется.
Еще попробуй вместо просто sysread сделать вот так:
Кстати, чему равен сам $ENV{\'CONTENT_LENGTH\'}?, вроде бы не обнаружил этого, почитав логи темы.. что будет, если написать print $ENV{\'CONTENT_LENGTH\'}?
P.S. И всё-таки попробуй модуль CGI..
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 16:56:47
пишет 0. я так понимаю это не плохой признак. просто прочитано 0 байт. (мне кажется провайдер темнит, что-то у них там намучено.)
если написать print $ENV{\'CONTENT_LENGTH\'}; ничего не будет - пусто.
Название: я в шоке. CONTENT_LENGTH
Отправлено: NCRangeR от 12 Июня 2003, 17:05:54
teebot теекс.. раз ноль (в смысле - не показывает значение $ENV{..}) - значит вызов sysread читает 0 байт не потому, что ничего нет, а потому что так "велено".. Попробуй так:
Почти то же, что я уже предлагал, только с маленьким исправлением..
P.S. Что будет, если написать вот таукую вещь: print map ("$_: $ENV{$_} ", keys %ENV); ? (у меня просто выводит всё окружение)
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 17:15:26
$PostContent пустая. :-( но обнаружилась интересаня деталь при распечатке окржения. REQUEST_METHOD: GET
Название: я в шоке. CONTENT_LENGTH
Отправлено: NCRangeR от 12 Июня 2003, 18:00:16
teebot Всегда так? У меня GET выдается только при первом запуске, если скрипту передаются данные, то POST. А CONTENT_LENGTH согласно распечатке чему равен?
P.S. попробуй вариант с CGI: #!/usr/local/bin/perl -w use CGI; print "Content-Type: text/html\\n\\n"; print ""; $cgi = new CGI; $x = $cgi -> param(\'q\'); print $x; print map ("$_: $ENV{$_} ", sort keys %ENV);
хотя, боюсь, будет то же самое.. :(
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 18:30:56
какой жеж CONTENT_LENGTH если метод GET. там QUERY_STRING: но в нем ничего нет.
Название: я в шоке. CONTENT_LENGTH
Отправлено: teebot от 12 Июня 2003, 18:57:16
Все тема закрыта, я нашел ошибку. дело в путях к скрипту. я пишу http://www.ля-ля-ля/cgi-bin/мой_скрипт но на самом деле запрос идет на home.ля-ля-ля/cgi-bin/мой_скрипт вот при переходе между www и home запрос POST превращается в GET. Достаточно мутно, я сам до конца не понял. Я так понял что проблема в настройках сервака провайдера. (Apache, виртуальные домены и т.д.).