powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) HTTP::Request
25 сообщений из 25, страница 1 из 1
(PERL) HTTP::Request
    #33101877
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть код!
идет запрос HTTP::Request, это все пишется в файл HTML_File а далее по средством виндового сравнения FC сравнивается 1 файл \путь берется из базы ms sql\ и 2 файл который был записан в HTML_File!!!
ВОПРОС: КАК СДЕЛАТЬ АУТЕНТИФИКАЦИЮ НА СЕРВЕРЕ.
т.к. my $request = HTTP::Request->new(GET => "$url"); и $url начинается с https://www.asdasdasdsad.ru/ssdfsdfsdf/sdfsdf.htm
ему требуется аутентификация на сервере, как ее сделать? + стандартное окошко которое требует ввода имени пользователя и пароля....как?!?!?!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
#connecting to sql server -> to database----------------------------------------------------------------#
$DSN = 'SERVER=server;DRIVER={SQL Server};DATABASE=alb;' ;
if (!($O = new Win32::ODBC($DSN))){
	print "Failure. \n\n";
	print Win32::ODBC::Error();
	exit();
}

$view_id = $q->param("view_id") ;
$view_id =~ s/\D//g ;
if ( $q->param("view") ne "" and $view_id ne "" ){
	if (! $O->Sql("select * from menu where id=".$q->param("view_id"))){
		$O->FetchRow() ;
		%Data = $O->DataHash();
		print "<b><a href=menu.pl>Назад</a><br></b>";

    my $url = "$Data{'url'}";
    my $menu = "$Data{'menu'}";
    my $s_url = "$Data{'s_url'}";
    my $url_menu = "$Data{'url_menu'}";

    my $ua = LWP::UserAgent->new;
    
    my $request = HTTP::Request->new(GET => "$url");
    my $response = $ua->request($request);
    open FP, ">html_file" ;
    print FP $response->content;
    close FP ;
    print `fc $Data{s_url} html_file` ;


}}
print "</body></html>";
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33102631
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну что, никто не знает чтоль?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33103309
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничем к сожалению помочь не могу, модуль смотреть времени нет... вроде в мануале к модулю есть описание авторизации ...
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33103321
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не ошибся, отпишите мне на почту, я вечером посмотрю ...
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33103346
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
use HTTP::Headers;
my $heads=new HTTP::Headers;
$heads->authorization_basic("user","password"); 
my $request = HTTP::Request->new(GET , "$url", $heads->as_string());
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33103990
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33104106
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет то что можно использовать
authorization_basic("user","password");
это понятно, но мне нужно пароль и логин хранить в закрытом виде, а лучше чтобы пользователь их сам набирал при обращении...
вот это меня интересует как сделть?!
а вот эту штуку сейчас посмотрим))))
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33106273
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет все таки он не работает(((
что делать? есть еще предложения?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33106445
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что значит ничего не работает, приводите пример кода...
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33107422
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
menu.pl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
use Win32::ODBC ;
use CGI ;
use File::Copy;
$q = new CGI ;

print <<EOF ;   
Content-type: text/html\n\n
<html>
<head>
<title>site map axion.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-image: url(http://www.axion.com/samples/images/backgrnd.gif);
}
.style5 {font-size: 14px}
.style8 {
	color: # 000000 ;
	font-weight: bold;
}
.style9 {color: # 990000 }
.style10 {font-weight: bold}
.style11 {color: # 990000 ; font-weight: bold; }
.style12 {font-size: 18px; font-weight: bold; }
.style13 {color: # 660000 }
-->
</style></head>
<body>
EOF

print <<NACHALO;
<left><span class=style12>Карта сайта www.axion.com</span> (<a href=#dob>Добавить</a>/<a href=edit.pl>Редактировать</a> меню)</left>
<br><right><a href=print.pl>На печать</a></right>
NACHALO
#connecting to sql server -> to database----------------------------------------------------------------#
$DSN = 'SERVER=developer;DRIVER={SQL Server};DATABASE=alb;' ;
if (!($O = new Win32::ODBC($DSN))){
	print "Failure. \n\n";
	print Win32::ODBC::Error();
	exit();
}

	$update_id = $q->param("update_id") ;
	$update_id =~ s/\D//g ;
	if ( $q->param("copy") ne "" and $update_id ne "" )
	{
	if (! $O->Sql("select * from menu where id=".$q->param("update_id"))){
	$O->FetchRow() ;
	%Data = $O->DataHash();
	print "<br><a href=menu.pl>Назад</a>";
	$pPath = $q->param("pPath");
	$vPath = $q->param("vPath");
	print copy($pPath,$vPath); 
        }
}

#creating menu------------------------------------------------------------------------------------------#
$O->Sql("select * from menu order by parent, id");
@top;
%recs;
@all_ids;
while($O->FetchRow()){
        %Data = $O->DataHash();
        $dataRef={%Data};
        $id=$dataRef->{id};
        $recs{$id}=$dataRef;
        $recs{$id}{children}=[]; 
        push @top, $dataRef unless ($dataRef->{parent});
        push @all_ids, $id;
}

foreach $id (@all_ids ){
        $dataRef=$recs{$id};
        $parent=$dataRef->{parent};
        if(ref $recs{$parent}){
        push @{$recs{$parent}->{children}}, $dataRef;
        }
}

#menu---------------------------------------------------------------------------------------------------#
print "<ol>";
for $menu (@top){
    out_menu($menu);
}
print "</ol>";

sub out_menu{
    my $menu=shift;
    my %Data=%{$menu};

    print "<li><a href=$Data{url_menu} target=_blank>$Data{menu}</a>";

    my $url = "$Data{'url'}";
    my $menu = "$Data{'menu'}";
    my $s_url = "$Data{'s_url'}";
    my $url_menu = "$Data{'url_menu'}";


#-------------------------------------------------------------------------------------------------------#
#files for comparing
#opening 1st file for reading and writing it in to cache
    local $/=undef;
    my $pPath="$url";
    my $vPath="$s_url";
    open PROD, "<$pPath"  or die "Can't read the product file";
    my $pHandle = <PROD>;
    close(PROD) or die "Can't close the production file.";	 
#opening 2nd file for reading and writing it in to cache
    open VERS, "<$vPath" or die "Can't read vers file";
    my $vHandle=<VERS>;
    close(VERS) or die "Can't close the versioned file.";
#starting to comparing files...       
	if($vHandle ne $pHandle)
	{
#menu was modified...
	    print "<form action=menu.pl method=get>\n" ;
	    print "<font color=red>меню было изменено.<br>\n"; 
#printing modify date of the file
	    use File::stat;
	    my $sb = stat($pPath);
	    printf "   %s\n", 
	    scalar localtime $sb->mtime;
#copy button
	    print '<input type=submit name=copy value=copy>';
	    print "<input type=hidden name=update_id value=$Data{'id'}>";
	    print "<input type=hidden name=pPath value=$pPath>";
	    print "<input type=hidden name=vPath value=$vPath></form>";
#view buttton
	    print "<form  action=view.pl target=_blank method=post>\n" ;
   	    print '<input type=submit name=view value=view>';
   	    print "<input type=hidden name=view_id value=$Data{'id'}>";
	    print '</font></form>';
	}
#-------------------------------------------------------------------------------------------------------#
        if(scalar @{$Data{children}}){
                print "<ol>";
                for my $submenu (@{$Data{children}}){
                        out_menu($submenu);
                }
                print "</ol>";
        }
        print "</li>";
}

#-===================================================================
#form for menu update
print '<br><br><br><Br>';
print '<span class=style12><center><b><a name=dob>Добавление пунктов меню.</a></b></span></center>';
print "<form action=add.pl method=get>";
print '<p><select name="select">';
#-===================================================================
if (! $O->Sql("select * from menu order by parent")){
	while($O->FetchRow()){
 	undef %Data;
        %Data = $O->DataHash();
#-===================================================================
$menu = $Data{'menu'};
$id = $Data{'id'};
#-===================================================================
print "<option name=parent value=$Data{'id'}>$Data{'menu'}</option>";
    }
print '</select>';
print <<FORM
    <br>
Название меню
    <input name=menu type="text" value="Меню" size="40" maxlength="255">
    <br>
    Линк меню 			 	 	
    <input name=url_menu type="text" value="https://www.axion.com/" size="40" maxlength="255"><-ссылка на меню
    <br>
    Путь до файла 
    <input name=url type="text" value="\\\\age\\inetpub\\" size="40" maxlength="255"> <-здесь идет полный путь к файлу меню несколько вариаций \\\\age\\inetpub\\wwwroot\\work
    <br>
    С чем сравнивать
    <input name=s_url type="text" value="\\\\daemon\\inetpub_cmp\\..." size="40" maxlength="255"> <-здесь должно быть так \\\\daemon\\inetpub_cmp\\... далее идет путь к файлу (обычно начинается wwwroot или scripts вставляется сверху), общай путь получается как \\\\daemon\\inetpub_cmp\\wwwroot\\... or \\scripts\\...
    <br>
    <input type="reset" name="Reset" value="Очистить">
    <input name="submit" type="submit" value="Отправить">
    </p>
</form>
FORM
#-===================================================================
}
print '</body></html>';

view.pl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
use Win32::ODBC ;
use CGI ;
use File::Copy;
require HTTP::Request;
use LWP::UserAgent;
use HTTP::Headers;
$q = new CGI ;

print <<EOF ;   
Content-type: text/html\n\n
<html>
<head>
<title>site map axion.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-image: url(http://www.axion.com/samples/images/backgrnd.gif);
}
.style5 {font-size: 14px}
.style8 {
	color: # 000000 ;
	font-weight: bold;
}
.style9 {color: # 990000 }
.style10 {font-weight: bold}
.style11 {color: # 990000 ; font-weight: bold; }
.style12 {font-size: 18px; font-weight: bold; }
.style13 {color: # 660000 }
-->
</style></head>
<body>
EOF

#connecting to sql server -> to database----------------------------------------------------------------#
$DSN = 'SERVER=developer;DRIVER={SQL Server};DATABASE=alb;' ;
if (!($O = new Win32::ODBC($DSN))){
	print "Failure. \n\n";
	print Win32::ODBC::Error();
	exit();
}

$view_id = $q->param("view_id") ;
$view_id =~ s/\D//g ;
if ( $q->param("view") ne "" and $view_id ne "" ){
	if (! $O->Sql("select * from menu where id=".$q->param("view_id"))){
		$O->FetchRow() ;
		%Data = $O->DataHash();
		print "<b><a href=menu.pl>Назад</a><br></b>";

    my $url = "$Data{'url'}";
    my $menu = "$Data{'menu'}";
    my $s_url = "$Data{'s_url'}";
    my $url_menu = "$Data{'url_menu'}";

#    my $ua = LWP::UserAgent->new;
    my $heads = HTTP::Headers->new;
    $heads->authorization_basic("saa12838","alberts"); 
    my $request = HTTP::Request->new(GET => "$url", $heads->as_string());
 
#    my $request = HTTP::Request->new(GET => "$url");
    my $response = $heads->request($request);
    open FP, ">html_file" ;
    print FP $response->content;
    close FP ;
    print `fc $Data{s_url} html_file` ;


}}
print "</body></html>";

как сделать так чтобы все работало нормально?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33107487
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так должно работать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
my $heads = HTTP::Headers->new;
$heads->authorization_basic("user", "passwd");
my $request = HTTP::Request->new(GET => "http://somewhere.org/", $heads);
my $ua = LWP::UserAgent->new;
my $response = $ua->request($request)
           if ($response->is_success) {
               print $response->content;
           }
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33107512
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
use LWP;
my $ua=LWP::UserAgent->new();

my $heads=HTTP::Headers->new();
$heads->authorization_basic("login","passwd"); 

my $url="http://site.ru/";
my $document=$ua->request(HTTP::Request->new(GET=>$url, $heads));
if($document->is_success) {
  print $document->content;
}
в следующий раз ненужно приводить весь код, только ключевые блоки.
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33111580
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот нефига ничего не работает(
в первом случае он просто говорит что не может подконнектится
во втором случае, он вообще не выводит страницу
только первую строчку
print "a href ... ... Назад";

пароль как я вижу он вообще не использует:(
что делать?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33114837
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нарооооод ты где???
ну что скажете?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33114939
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что я могу ответить на это?
1. поставить последние версии модулей
2. назвать коды ошибок!!!
3. показать кусок кода, который не работает!!!
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33115739
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
5.8.1 Active Perl
ошибок вообще не пишет просто выводит голый код с началом тегов <html><head>...</head><body></body></html>
и все!
все что идет в <body> теге, он не пишет вообще(

если нужен кусок то примерно можно вот так вот написать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    my $url = "$Data{'url'}";
    my $menu = "$Data{'menu'}";
    my $s_url = "$Data{'s_url'}";
    my $url_menu = "$Data{'url_menu'}";

my $ua=LWP::UserAgent->new();
my $heads=HTTP::Headers->new();
$heads->authorization_basic("login","passwd"); 

my $url="https://www.site.ru/asdasd/html.htm";
my $document=$ua->request(HTTP::Request->new(GET=>$url, $heads));
if($document->is_success) {
  print $document->content;
}
    open FP, ">html_file" ;
    print FP $document->content;
    close FP ;
    print `fc $Data{s_url} html_file` ;

примерно вот так вот!
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33117532
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
куда выводит??? в файл или на экран?

help fc
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33117707
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хэшь всего файла запихивает в файл HTML_FILE
а выводит понятно дело на экран print "fc file1 html_file"
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33117766
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vidoqхэшь всего файла запихивает в файл HTML_FILE
а выводит понятно дело на экран print "fc file1 html_file"
в фаил заносятся "верные" данные?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33118598
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в html_file - "верные" данные.

еще такой вопрос, недавно появился:
при открытии скрипта он запрашивает логин и пароль.
как его вытащить \т.е. какую функцию использовать\
потом загнать его в переменную, и передать в другой файл
предположем в тот view.pl где используется
$heads->authorization_basic("login","passwd");
только вместо login и password использовать данные из переменной!
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33118716
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vidoqв html_file - "верные" данные.
ну так тогда какие вопросы к LWP!? разбирайтесь с fc, Вам как-то в другом топике уже сообщалось, что использование fc не совсем "хороший" подход!

vidoqеще такой вопрос, недавно появился:
при открытии скрипта он запрашивает логин и пароль.
как его вытащить \т.е. какую функцию использовать\
потом загнать его в переменную, и передать в другой файл
предположем в тот view.pl где используется
$heads->authorization_basic("login","passwd");
только вместо login и password использовать данные из переменной!
какой скрипт?
откуда вытащить?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33119181
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а причем тут fc если lwp из хэша данные передать и записать файл не может?!
а проблема то в авторизации, а fc это так дополнение.

скрипт menu наверху написан. к нему доступ ограничен, требуется ввести имя и пароль. вот мне интересно как их запихнуть в какую нить переменную и передать в этот скрипт.
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33119684
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vidoqа причем тут fc если lwp из хэша данные передать и записать файл не может?!
а проблема то в авторизации, а fc это так дополнение.


сори конечно что вмешиваюсь, но... разве это не ты говорил, несколько выше:

в html_file - "верные" данные.


скрипт menu наверху написан. к нему доступ ограничен, требуется ввести имя и пароль. вот мне интересно как их запихнуть в какую нить переменную и передать в этот скрипт.

запихнуть в переменную и передать. Как парметры запроса получить ты знаеш, как передать их в authorization_basic() тебе уже говорили, конкретно то, что не работает ?
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33119817
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
присоединяюсь к вопросам g613
...
Рейтинг: 0 / 0
(PERL) HTTP::Request
    #33120845
vidoq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
под "верными" данными я понимаю файл куда скидываются эти данные.
т.е. html_file.
а то что там ничего внутри нет, значится lwp.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) HTTP::Request
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]