Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Получение и передача параметров, хранимых в Cookie


Автор: SergaNT83 28.9.2007, 18:49
Подскажите пожалуйста!!!! 
Есть скрипт, который через https-протокол передаёт на адрес https://www.site_name.com/login/htm логин и пароль, затем необходимо как-то с помощью этого скрипта проанализировать параметры, которые www.site_name.com пытается записать в cookie и передать их в дальнейшем другому скрипту тоже как cookie. Как это можно реализовать???

Автор: nitr 29.9.2007, 10:28
SergaNT83, здесь много это обсуждали, поищите (100% есть), если что - поджскажем...

Автор: SergaNT83 29.9.2007, 16:16
Да уже искал - полночи по форуму лазил, по всякому пробовал - результата почти никакого. Вся проблема в том, что здесь, в основном, получают/передают cookie при работе с библиотекой LPW, которая НЕ поддерживает протокол https и используют для этого cookie_jar. Использовать этот метод в моем случае не получается... Вот код, может подскажите, в чем ошибка:

Код

use Time::Local;
use CGI;

use strict;
use Net::SSLeay qw(post_https make_headers);

my $req_userid = "111";
my $req_password = "222";


my $request =  "userid=$req_userid&password=$req_password";

my $reqHeaders;
$reqHeaders .= make_headers("Content-Type"=>"text/plain; charset=windows-1251");

my $host = "app.atcopen.com";

my $port = "443"; 
my $uri  = "/login.html";


my ($body, $status, %resHeaders) = post_https($host,$port,$uri,$reqHeaders,$request); ## 

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




print $body;




exit(0);


Автор: nitr 29.9.2007, 19:47
Цитата(SergaNT83 @  29.9.2007,  16:16 Найти цитируемый пост)
аботе с библиотекой LPW, которая НЕ поддерживает протокол https

кто сказал?
Цитата

Crypt::SSLeay - OpenSSL support for LWP

так что установите Crypt::SSLeay, и будет работать в LWP.

Для вас:
Код

my ($content, $cookie);
my %my_headers =  (
    'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6',
    'Accept' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
    'Accept-Charset' => 'windows-1251,utf-8;q=0.7,*;q=0.7',
    'Keep-Alive' => 300,
    'Connection' => 'keep-alive',
);
my ($page, $response, %headers) = get_https('app.atcopen.com', 443, '/login.html', make_headers(%my_headers));
if ($response =~ /200 OK/i and %headers) {
    $content = $page;
    $cookie = $headers{'SET-COOKIE'};
}
# Ну а тут разбираем строку в $cookie, конечно если надо ;)

Автор: biophreak 9.10.2007, 13:15
А вообще имхо perldoc CGI::Session

Автор: nitr 9.10.2007, 13:22
biophreak, зачем?

Автор: biophreak 9.10.2007, 14:10
Понял, не то написал немного, сначала подумал что ему надо писать куки и читать из цги скрипта smile
Сорри!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)