Автор Тема: я в шоке. CONTENT_LENGTH  (Прочитано 9327 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
я в шоке. CONTENT_LENGTH
« Ответ #15 : 12 Июня 2003, 13:53:07 »
Попробуй просто сервак поиспытывать.
Например, вот такой скрипт будет работать или нет:

#!/usr/local/bin/perl -w
#Имя - x.pl
print "Content-Type: text/html\\n\\n";
print "";
sysread STDIN, $x, $ENV{\'CONTENT_LENGTH\'};
print $x;
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн teebot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
я в шоке. CONTENT_LENGTH
« Ответ #16 : 12 Июня 2003, 15:12:51 »
скрипт сам по себе работает, появляется поле для ввода.
набирал туда текст жмакал enter
нифига.
print $x;
ничего не показывает.

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
я в шоке. CONTENT_LENGTH
« Ответ #17 : 12 Июня 2003, 16:10:08 »
teebot
а что возвращает вызов
$a = sysread STDIN, $x, $ENV{\'CONTENT_LENGTH\'}; ?

0 или undef?

if (defined $a) { print $a; } else { print "undef"; };

Кстати, чему равен сам $ENV{\'CONTENT_LENGTH\'}?, вроде бы не обнаружил этого, почитав логи темы..
что будет, если написать
print $ENV{\'CONTENT_LENGTH\'}?

P.S. И всё-таки попробуй модуль CGI..
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн teebot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
я в шоке. CONTENT_LENGTH
« Ответ #18 : 12 Июня 2003, 16:56:47 »
пишет 0.
я так понимаю это не плохой признак. просто прочитано 0 байт.
(мне кажется провайдер темнит, что-то у них там намучено.)

если написать print $ENV{\'CONTENT_LENGTH\'}; ничего не будет - пусто.

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
я в шоке. CONTENT_LENGTH
« Ответ #19 : 12 Июня 2003, 17:05:54 »
teebot
теекс.. раз ноль (в смысле - не показывает значение $ENV{..}) - значит вызов sysread читает 0 байт не потому, что ничего нет, а потому что так "велено"..
Попробуй так:

$PostContent = "";
while (sysread STDIN, $str, 1)
{
$PostContent .= $str;
};

Почти то же, что я уже предлагал, только с маленьким исправлением..

P.S. Что будет, если написать вот таукую вещь:
print map ("$_: $ENV{$_}
", keys %ENV);
?
(у меня просто выводит всё окружение)
« Последнее редактирование: 12 Июня 2003, 17:14:53 от NCRangeR »
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн teebot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
я в шоке. CONTENT_LENGTH
« Ответ #20 : 12 Июня 2003, 17:15:26 »
$PostContent пустая. :-(
но обнаружилась интересаня деталь при распечатке окржения. REQUEST_METHOD: GET
« Последнее редактирование: 12 Июня 2003, 17:24:34 от teebot »

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
я в шоке. CONTENT_LENGTH
« Ответ #21 : 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);

хотя, боюсь, будет то же самое.. :(
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн teebot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
я в шоке. CONTENT_LENGTH
« Ответ #22 : 12 Июня 2003, 18:30:56 »
какой жеж CONTENT_LENGTH если метод GET.
там QUERY_STRING: но в нем ничего нет.

Оффлайн teebot

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
я в шоке. CONTENT_LENGTH
« Ответ #23 : 12 Июня 2003, 18:57:16 »
Все тема закрыта, я нашел ошибку.
дело в путях к скрипту.
я пишу http://www.ля-ля-ля/cgi-bin/мой_скрипт
но на самом деле запрос идет на home.ля-ля-ля/cgi-bin/мой_скрипт
вот при переходе между www и home запрос POST превращается в GET.
Достаточно мутно, я сам до конца не понял. Я так понял что проблема в настройках сервака провайдера. (Apache, виртуальные домены и т.д.).

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28