Страница 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 скрипт там же и так же
Есть подозрения, что либо сам сервер, либо 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, либо в его совместимости с данной версией сервера. Ты бы рассказал, кстати, про версии перла и апача.