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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переблагословление 
V
    Опции темы
gcc
Дата 31.1.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


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

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



есть сабж
Код

!/usr/bin/perl 
use GD::SecurityImage::AC;
use CGI qw[header escapeHTML param];

my $public_folder= "/home/imperium/p/DISCUS/captcha-public/";
my $private_folder= "/home/imperium/discus-adm/captcha/";
my $captcha_url = "/DISCUS/captcha-public/";

my $self  = bless {}, __PACKAGE__;
$self->{cgi}     = CGI->new;
$self->{program} = $self->{cgi}->url;my @jp;($self->{program},@jp) = split /\?/, $self->{program};

$color  = [15, 100, 75];     # HEX

my $captcha = Authen::Captcha->new;
....................


интересно что означает эта строка my $self  = bless {}, __PACKAGE__; ? это в начало самого пакета CGI вставляется чать кода в этом примере или куда оно вставляется? если бы еще примеры...





Это сообщение отредактировал(а) gcc - 31.1.2009, 21:35
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 31.1.2009, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если вы привели исходный код "дословно", то $self превратится в объект класса main (__PACKAGE__ - макрос раскрывающийся в название текущего модуля, main - модуль по умолчанию).
Вообще, имхо, это не совсем правильно. Но видимо автору так удобнее.


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


Агент алкомафии
****


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

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



KSURi, куда эта стркоа идет $self->{program} = $self->{cgi}->url;my @jp;($self->{program},@jp) = split /\?/, $self->{program}; ?

в начало, или в конец, или куда? а как по другому это записать?
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 1.2.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что значит "куда идет"? Я вам попробую объяснить, что этот код делает, а вы уж сами решите, куда он пойдет)
Код

$self->{program} = $self->{cgi}->url; # в $self->{program} заносится полный URL запроса (с параметрами)
my @jp; # массив для хранения параметров (вобщем-то он не обязательно должен быть массивом, ибо в нем будет только один элемент => можно просто скаляр)
($self->{program},@jp) = split /\?/, $self->{program}; # здесь отделяется URL скрипта-обработчика от QUERY_STRING



Это сообщение отредактировал(а) KSURi - 2.2.2009, 20:26


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


Агент алкомафии
****


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

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



KSURi, понятно, мне показалось что тут что-то хитрое, ну тут тоже самое что и param() если я правильно понял...
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 2.2.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



Цитата(KSURi @  1.2.2009,  13:49 Найти цитируемый пост)
Вобщем, по сути - это простое получение GET параметров запроса. 

Почему Вы так решили? Я вижу разбиение строки по символу "?", сделано, скорее всего для удаления из url QUERY_STRING (это Вы указали). По поводу параметров в приведенном фрагменте ничего не указано, поэтому говорить об их получении не совсем корректно.



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
KSURi
Дата 2.2.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ginnie, может и так... Просто удалить QUERY_STRING можно и попроще, без сохранения в @jp. А раз сохранили, то возможно для последующей обработки.
Вобщем гадать смысла не вижу. Удалю приписку про параметры.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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