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

Настройка и администрирование веб-серверов.
Ответить
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

27 фев 2006, 14:29

Имеем скрипт

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

#!/usr/bin/perl

use CGI qw/:standard/;
use strict;

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

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

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

Мысли есть?
Реклама запрещена. См. Профиль :-)
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

27 фев 2006, 15:01

Угу. Скрипт пустоту возвращать не может. Он минимум хидер возвращает, иначе ты бы получил 500 ошибку.
Убери use CGI и вместо print header напиши print "Content-type: text/html\n\n"; И запусти скрипт методом POST.
Если и так не будет работать, то будем копать дальше :)
Даже самый дурацкий замысел можно воплотить мастерски
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

27 фев 2006, 16:07

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

Стало
#!/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(); - где пустота :-(
Из браузера - тоже самое.
Реклама запрещена. См. Профиль :-)
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

28 фев 2006, 00:57

1. Попробуй в первых строках

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

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

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

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

<?phpinfo();?>
Есть подозрения, что либо сам сервер, либо Perl как-то нетипично настроены.
Даже самый дурацкий замысел можно воплотить мастерски
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

28 фев 2006, 08:34

Перввый вариант - также: Гет отдает, Пост нет.

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

Ну Перл, вроде, никак особо не настроишь... Грешу на настройки сервера. Но вместе с админом ничего придумать не можем...
Реклама запрещена. См. Профиль :-)
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

28 фев 2006, 11:33

А вот теперь смотри как у тебя Perl стоит и как PHP. Я подозреваю, что один из них стоит модулем, а другой - нет.
Даже самый дурацкий замысел можно воплотить мастерски
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

01 мар 2006, 09:36

А в чем тогда разница между модулем или нет?
Причем разница в обработке вывода в стандартный поток вывода для разных методов.
Реклама запрещена. См. Профиль :-)
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

01 мар 2006, 12:41

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