редирект на перле через POST
От: AlexEagle Украина http://www.vik.oil
Дата: 28.05.04 20:11
Оценка:
у меня есть форма
<form action=http://www.site.com/isapi.dll method="POST">
<INPUT TYPE="TEXT" NAME="DATA">
<INPUT TYPE=SUBMIT>
</FORM>

Фактически она осуществляет вызов http://www.site.com/isapi.dll с передачей параметра DATA по методу POST.

А мне нужно в случаях обращения к моей (не этой) страничке делать то же что и эта форма, точнее перенаправить пользователя на результат выполения передачи данных из этой формы.

Если бы речь шла о методе GET то я бы в хедерах добавил LOCATION: http://www.site.com/isapi.dll?DATA=SOMEDATA, ну или что-то около того.

Но вот как такое сделать с постом да еще и на ПЕРЛе у меня нет ни малейшего понятия.

Буду дико рад любой информации.
Re: редирект на перле через POST
От: anonymous Россия http://denis.ibaev.name/
Дата: 29.05.04 08:48
Оценка:
Здравствуйте, AlexEagle, Вы писали:

AE>Фактически она осуществляет вызов http://www.site.com/isapi.dll с передачей параметра DATA по методу POST.

AE>А мне нужно в случаях обращения к моей (не этой) страничке делать то же что и эта форма, точнее перенаправить пользователя на результат выполения передачи данных из этой формы.
AE>Если бы речь шла о методе GET то я бы в хедерах добавил LOCATION: http://www.site.com/isapi.dll?DATA=SOMEDATA, ну или что-то около того.

а чем тебя POST не устраивает?...

AE>Но вот как такое сделать с постом да еще и на ПЕРЛе у меня нет ни малейшего понятия.


perldoc LWP
Re: редирект на перле через POST
От: Aggtaa Россия  
Дата: 30.05.04 11:40
Оценка:
Здравствуйте, AlexEagle, Вы писали:

AE>у меня есть форма

AE><form action=http://www.site.com/isapi.dll method="POST">
AE><INPUT TYPE="TEXT" NAME="DATA">
AE><INPUT TYPE=SUBMIT>
AE></FORM>

AE>Фактически она осуществляет вызов http://www.site.com/isapi.dll с передачей параметра DATA по методу POST.

AE>Но вот как такое сделать с постом да еще и на ПЕРЛе у меня нет ни малейшего понятия.

use LWP::UserAgent; 
use HTTP::Request::Common qw(POST);

my %form = ( 
    'DATA' => 'data-to-post'
);

my $userAgent = LWP::UserAgent->new();
my $page = $userAgent->request(
    POST 'http://location-to-post/page.html',
    Content_Type => 'multipart/form-data',
    ontent => [%form] 
);
    
if ($page->is_success)
    print $page->content();
else
    print $page->error_as_HTML;
A.
A.
Re[2]: редирект на перле через POST
От: Aggtaa Россия  
Дата: 30.05.04 11:55
Оценка:
A> ontent => [%form]
Content => [%form];

Опечатался...
A.
A.
Re: редирект на перле через POST
От: ak13_boda  
Дата: 30.05.04 14:37
Оценка:
Вот код на PHP, который возвращает почти такой-же результат, как если-бы запрос был произведен с помощью формы.
("Почти такой-же" значит, что он еще выдаст HTTP/1.1 200 OK и еще пару лишних строк, обрезать которые, я думаю, не составит труда).
Я в перле не силен, но почти уверен, что там тоже есть функции работы с сокетами, все остальное дело техники.
Суть скрипта в нескольких словах: подключаемся к 80-му порту (HTTP сервер) и посылаем ему запрос, очень похожий на тот, который ему посылается при использовании Вашей формы. Ответ сервера, в данном случае дословно, выводится в браузер.
Подозреваю, что метод не совсем элегантный, но вроде работает . Если возникнут вопросы, пишите на boda2004/at/mail.ru.

<?php
$fp = fsockopen ("site.com", 80, &$errno, &$errstr, 30);
$s="DATA=SOMEDATA";
$l=strlen($s);
$q="POST http://www.site.com/isapi.dll HTTP/1.0\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: $l\r\n\r\n$s";
fputs($fp,$q);
while(!feof($fp)){
echo fgets($fp,128);
}
fclose($fp);
?>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.