Страница 1 из 1

Метод POST не отдает контент

Добавлено: 27 фев 2006, 14:29
UUU
Имеем скрипт

Код: Выделить всё

#!/usr/bin/perl

use CGI qw/:standard/;
use strict;

print header(
-content_type=>"text/html",
-charset=>"windows-1251"
);

print "qwewqeqwewqewqewq";
размещенный на хостинге.

Обращаемся к нему методом Гет - все четко. возвращает написанное.
Обращаемся методом ПОСТ - фигушки, скрипт возвращает пустоту. Т.е. ничего не возвращает браузеру.
При этом, если поставить отладки в скрипте, то судя по логам - все четко, все директивы выполнены.
В логах сервера также ничего отвратительного нет...

Мысли есть?

Добавлено: 27 фев 2006, 15:01
AiK
Угу. Скрипт пустоту возвращать не может. Он минимум хидер возвращает, иначе ты бы получил 500 ошибку.
Убери use CGI и вместо print header напиши print "Content-type: text/html\n\n"; И запусти скрипт методом POST.
Если и так не будет работать, то будем копать дальше :)

Добавлено: 27 фев 2006, 16:07
UUU
А я не пробовал :-)Убирал СГИ, вместо хиадера просто писал пустые строки (ну типа вместо контент тайпа).

Стало
#!/usr/bin/perl

#use CGI qw/:standard/;
use strict;

#print header(
#-content_type=>"text/html",
#-charset=>"windows-1251"
#);

print "Content-type: text/html\n\n";
print "qwewqeqwewqewqewq";

Результат тот же.
Вызываю скриптом через LWPЮ смотрю как $response->content(); - где пустота :-(
Из браузера - тоже самое.

Добавлено: 28 фев 2006, 00:57
AiK
1. Попробуй в первых строках

Код: Выделить всё

    use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
    use CGI qw(:standard);
    print header();
    warningsToBrowser(1);
Без стрикта :)

2. Так же попробуй запустить простейший PHP скрипт там же и так же

Код: Выделить всё

<?phpinfo();?>
Есть подозрения, что либо сам сервер, либо Perl как-то нетипично настроены.

Добавлено: 28 фев 2006, 08:34
UUU
Перввый вариант - также: Гет отдает, Пост нет.

А вот с ПХП работают оба метода.

Ну Перл, вроде, никак особо не настроишь... Грешу на настройки сервера. Но вместе с админом ничего придумать не можем...

Добавлено: 28 фев 2006, 11:33
AiK
А вот теперь смотри как у тебя Perl стоит и как PHP. Я подозреваю, что один из них стоит модулем, а другой - нет.

Добавлено: 01 мар 2006, 09:36
UUU
А в чем тогда разница между модулем или нет?
Причем разница в обработке вывода в стандартный поток вывода для разных методов.

Добавлено: 01 мар 2006, 12:41
AiK
Разница очевидно в том, что в одном случае надо передавать данные внутреннему процессу, а в другом - внешнему. Или как-то так.
Если мои предположения верны, то если ты PHP запустишь также, как и Perl, то он тоже метод POST перестанет отрабатывать.
И это будет означать, что проблемы именно с настройками сервера. А если PHP будет продолжать работать, то проблемы уже видимо в самом Perl, либо в его совместимости с данной версией сервера. Ты бы рассказал, кстати, про версии перла и апача.