Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сохранить картинку CAPTCHA, Если она пхп ...  
:(
    Опции темы
GeoGeo
  Дата 26.1.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Как сохранить картинку если она отображается вот так http://uo.emilia.net.ua/Reg/index.php
Т.Е. как результат работы php ?
Спасибо
PM MAIL   Вверх
KSURi
Дата 26.1.2008, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Если понял вас правильно, то:
Код

use LWP::UserAgent->new;
my $ua = LWP::UserAgent->new;
my $res = $ua->get('http://uo.emilia.net.ua/Reg/img.php',
                                 ':content_file' => 'picture.gif');
die 'request failed' if $res -> is_error;



--------------------
Died at Life.pl line 21
PM Jabber   Вверх
GeoGeo
Дата 26.1.2008, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Если бы все было так просто ... дело в том , что img.php не даёт ссылку на изображение ... 


Код

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get('http://uo.emilia.net.ua/Reg/img.php',
                                 ':content_file' => 'picture.gif');
die 'request failed' if $res -> is_error;
open (FILE , ">newgif2.gif");
         binmode( FILE );
         print FILE $img;


Сохраняет пустой файл ...
PM MAIL   Вверх
GeoGeo
Дата 26.1.2008, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Код

#!/usr/bin/perl
use strict;
use warnings;
use LWP;
my $ua = LWP::UserAgent->new();
$ua->timeout(5);
$ua->agent( "Mozilla/5.0" );
my $url = "http://uo.emilia.net.ua/Reg/img.php";
my $document = $ua->request( HTTP::Request->new( GET => $url ) );
print "Content-type: text/html\n\n";
open( FILE, ">file23.gif" );
binmode( FILE );
print FILE $document->content;
close( FILE );


Вот по идее должен сохранить . Что - то сохраняет , но картинка не получается .. 


PM MAIL   Вверх
KSURi
Дата 26.1.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Код

#!perl

use LWP::UserAgent;

my $ua = LWP::UserAgent->new(cookie_jar => {});

my $res = $ua->get('http://uo.emilia.net.ua/Reg/index.php'); # получаем куки
die 'request failed' if $res -> is_error;

print 'Cookie: ', $ua -> cookie_jar -> as_string;

$res = $ua->get('http://uo.emilia.net.ua/Reg/img.php', # запрашиваем картинку (с куками)
                ':content_file' => 'picture.gif');
die 'request failed' if $res -> is_error;



--------------------
Died at Life.pl line 21
PM Jabber   Вверх
nitr
Дата 26.1.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Всё отлично KSURi, но для куки можно и head использовать, что согласитесь быстрее (зачастую в 10раз)
т.е. 7 строка
Код

my $res = $ua->head('http://uo.emilia.net.ua/Reg/index.php'); # получаем куки
die 'request failed' if $res -> is_error;



--------------------
PM   Вверх
nitr
Дата 26.1.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Кстати, иногда скрипт img.php с того сайта выдает ошибку, поэтому у вас может "не получится" картинка, хотя есть решение - удалить эту ошибку, которая вставляется в picture.gif.


--------------------
PM   Вверх
KSURi
Дата 26.1.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(nitr @  26.1.2008,  21:23 Найти цитируемый пост)
Всё отлично KSURi, но для куки можно и head использовать, что согласитесь быстрее (зачастую в 10раз)

Да, согласен, так будет гораздо лучше.

Цитата(nitr @  26.1.2008,  22:09 Найти цитируемый пост)
Кстати, иногда скрипт img.php с того сайта выдает ошибку, поэтому у вас может "не получится" картинка, хотя есть решение - удалить эту ошибку, которая вставляется в picture.gif. 

Тоже заметил это: ;<br />
<b>Warning</b>:  Wrong parameter count for imagedestroy() in <b>/opt/lampp/htdocs/Reg/img.php</b> on line <b>9</b><br />
.
Но это не должно влиять на целостность картинки. Данные добавляются в конец файла, заголовок GIF и сама структура рисунка остаются целыми. Текст ошибки скорее всего просто не обрабатывается при построении картинки.
Десять раз подряд запустил скрипт, и 10 раз получил валидную картинку.
Посмотрите "исходный код" гифки в аттаче.

Это сообщение отредактировал(а) KSURi - 26.1.2008, 22:53

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  picture.gif 0,25 Kb


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
nitr
Дата 26.1.2008, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



30 из 50 - в конце файла picture.gif ошибка 
Цитата(KSURi @  26.1.2008,  22:51 Найти цитируемый пост)
;<br /><b>Warning</b>:  Wrong parameter count for imagedestroy() in <b>/opt/lampp/htdocs/Reg/img.php</b> on line <b>9</b><br />


Я ж верю что работает smile Просто ошибка частая. Так что, надо и это учитывать, автору этой темы ;)


--------------------
PM   Вверх
Str!pe
Дата 26.1.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



GeoGeohttp://uo.emilia.net.ua/Reg/img.php вот отсюда и сохраняй, она прекрасно сохраняется.

Это сообщение отредактировал(а) Str!pe - 26.1.2008, 23:52


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
nitr
Дата 27.1.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Str!pe, ответ KSURi, был полным smile
Смотрим внимательно на строку 12 smile


--------------------
PM   Вверх
GeoGeo
  Дата 27.1.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Всем огромное спасибо .

Ещё один вопрос , куки отлавливать надо один раз ?

Потом при каждом вызове $ua->get("URL"); куки отлавливаются и  передаются автоматически ?
или пере каждым новым запросом надо ловить заново ?
PM MAIL   Вверх
nitr
Дата 27.1.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Всё будет нормально, т.е. куки будут вставляться при каждом запросе.


--------------------
PM   Вверх
GeoGeo
Дата 27.1.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Можно ли как-то запретить установку новых куки при запросе .

Код примерно такой :
Код

use strict;
use warnings;
use LWP;
use HTTP::Cookies;

my $ua = LWP::UserAgent->new();
$ua->timeout(5);
$ua->agent( "Mozilla/5.0" );
my $cookies = HTTP::Cookies->new();
$ua->cookie_jar($cookies);

$ua->get("URL"); #Тут получили куки....
$ua->get("URL1"); # Вот чтоб тут не ставились куки по новой, а использовались из первого запроса
$ua->get("URL2"); # И тут тоже ... 



 use LWP::Debug qw(+ -conns); - когда подключаю это  , вижу  что куки ставяться при каждом $ua->get

Это сообщение отредактировал(а) GeoGeo - 27.1.2008, 19:50
PM MAIL   Вверх
GeoGeo
Дата 27.1.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Вобще есть ли какая-то возможность сохранить картинку без запроса к img.php ?
картинка ведь отображается на index.php ?
PM MAIL   Вверх
nitr
Дата 27.1.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Можете временно забыть про ваш ресурс smile Он еще в разработке, часто вылезают ошибки, многие пункты меню "В разработке".

Сейчас вообще:
Цитата
The requested URL /Reg/index.php was not found on this server.


perldoc LWP
Куки должны оставаться теми же, или сами вручную их сохраните.

Добавлено через 9 минут и 3 секунды
Надо использовать куки, которые получены первый раз.


--------------------
PM   Вверх
GeoGeo
Дата 27.1.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



 smile 
Как сохранить и потом использовать ? 
PM MAIL   Вверх
nitr
Дата 27.1.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



GeoGeo, автоматически (т.е. это уже реализовано).

Код
код в личке смотрите



--------------------
PM   Вверх
GeoGeo
Дата 27.1.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Премного благодарен !
Разбираюсь.
PM MAIL   Вверх
GeoGeo
Дата 28.1.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



В общем ничего не выходит .
Debug  показывает , Что все как и должно быть .. но в ответ получают , что код не верный .
Прилагаю код .
ф-цию getcode не смотрите - она работает как надо . 
Если интересно , расскажу как работает...
Спасибо.
Код


[Удалено]



Это сообщение отредактировал(а) GeoGeo - 31.1.2008, 17:48
PM MAIL   Вверх
nitr
Дата 29.1.2008, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Вот как были наводящие вопросы, так бы и оставались бы "наводящими". А сейчас видно для чего вы делаете этот скрипт.
Лично - выглядит будущей флудилкой и т.д. и т.п.. Имхо, не приветствуется (по крайне мере в открытую!)

Объясните - для чего вы написали этот "код"?


--------------------
PM   Вверх
GeoGeo
Дата 29.1.2008, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Делаю для себя - изучаю перл .
Прошу помощи , Так как не получается .
В будущем мне могут пригодится подобные маневры ...
Спасибо .

PM MAIL   Вверх
GeoGeo
  Дата 29.1.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



никто не подскажет? :(
У меня уже голова пухнет ... 
подскажите где ошибся ?

PM MAIL   Вверх
nitr
Дата 30.1.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



GeoGeo, прочтите perldoc LWP::UserAgent
особенно как посылать POST-запрос!
В остальном вполне верный код, стиль конечно мне не нравится, да и многое можно написать иначе (имхо более правильней), а у вас именно POST-запрос.

Цитата
...
Ок


Это сообщение отредактировал(а) nitr - 1.2.2008, 22:02


--------------------
PM   Вверх
GeoGeo
Дата 30.1.2008, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Я учусь , и был бы весьма признателен , если бы вы указали мне на мои ошибки .
Я не прошу готовый код , можно фрагменты , которые , в вашем понимании , написаны не верно .
Спасибо .
С Уважением ...

PM MAIL   Вверх
nitr
Дата 30.1.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Цитата
ua->post( $url, \%form )
$ua->post( $url, \@form )
$ua->post( $url, \%form, $field_name => $value, ... )
This method will dispatch a POST request on the given $url, with %form or @form providing the key/value pairs for the fill-in form content. Additional headers and content options are the same as for the get() method. 

This method will use the POST() function from HTTP::Request::Common to build the request. See the HTTP::Request::Common manpage for a details on how to pass form content and other advanced features.


Цитата
  POST 'http://www.perl.org/survey.cgi',
       [ name   => 'Gisle Aas',
         email  => '[email protected]',
         gender => 'M',
         born   => '1964',
         perc   => '3%',
       ];


->post($url, [ $param1 => $value1, $param2 => $value2])


--------------------
PM   Вверх
GeoGeo
Дата 31.1.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Спасибо огромное , с постом разобрался .
Код удалил , чтоб не использовали в злых целях smile

PM MAIL   Вверх
nitr
Дата 1.2.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



GeoGeo, рад был помочь и рад, что вы удалили код smile


--------------------
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1085 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.