![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Уважаемые, поругайте пожалуйста на код...
там допиливать еще долго, некоторые вещи может быть покажутся странными... если использовать use strict; то все остальное все равно? как протестировать можно? (еще надо сделать 2 модуля) еще там добавить в запрос после WHERE надо, делал так примерно:
код тут: http://x0.org.ua/perl_old.txt Это сообщение отредактировал(а) gcc - 21.12.2008, 09:23 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Это сообщение отредактировал(а) gcc - 21.12.2008, 09:22 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Это сообщение отредактировал(а) gcc - 21.12.2008, 09:22 |
|||
|
||||
| dmitryk1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
А почему вызовы $dbh = DBI->connect(
в каждой процедуре? Параметры вроде одинаковые... Может стоит глобальный объект сделать? И ещё некоторые запросы красивые: VALUES (?,?,?,?,?,?,NOW(),NOW(),?) а некоторые генерятся, вроде как без особой надобности: WHERE t1.session = \'' . $cookies{'session'} . '\' AND... ну и делай их WHERE t1.session = \'? \' AND... если сервак запросы кэширует и генерируемые часто встречаются, то сервак тормозить начнёт... немного. оПЯТЬ же безопасность повысишь. А то хз, чего они там в куки напихают... чёнить типа "0 OR 1=1; drop table;/*--" ;) Это сообщение отредактировал(а) dmitryk1 - 14.11.2008, 08:35 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, согласен с dmitryk1, по поводу соединений и placeholder'ов. Соединение надо передавать в функции параметром.
Лучше код $$dd{'domain'} писать как $dd->{'domain'}, так привычнее. s /[\W]//g - зачем скобки и почему не \W+ &create_session; - вызовы функции лучше писать как create_session(); Почему use Data::Validate::Domain qw(is_domain); в середине скрипта? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Вот $$dd{'domain'} от такого способа разыменование лучше отказаться. Потому что можно тогда спутать с символьными ссылками. Лучше делать как ginnie написал
[ |
|||
|
||||
| gcc |
|
||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
спасибо, исправлю...
параметры с начало планирвались разные для несколько баз данных и транзакции делать по примеру...
глобальный объект, это один раз в начале скрипта подключится... или DBIx::Class?
я хотел в начале скрипта подключиться, а в конце скрипта отключиться... и еще eval{} сейчас сделал так чтобы было видно когда подлючаюсь и когда отлючаюсь как передвать в функцию подключение, это анонимная подпрограмма? (не могу понять смысла) Это сообщение отредактировал(а) gcc - 14.11.2008, 20:38 |
||||||
|
|||||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
func($dbh); -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
а выключать соединение тогда наверное так:
|
|||
|
||||
| ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, может все-таки так логичнее?
Добавлено через 56 секунд
можно фрагмент кода увидеть? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
| gcc |
|
||||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ginnie, я понял, спасибо, буду делать... Добавлено через 2 минуты и 6 секунд
кода нету, примерно вот так, если правильно это...
|
||||||||
|
|||||||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Это сообщение отредактировал(а) gcc - 21.12.2008, 20:57 |
|||
|
||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
я вот переписал, на всякий случай может кто-то посмотрит
интересно узнать где ошибки или не правильно, там работает всё код: http://x0.org.ua/perl/ там интересует вопрос 1) праивльно так написать во всех классах?
в книге было не определено $AUTOLOAD:
как проверить работаетли AUTOLOAD? если он нужен вообще 2. я нашел много информации про DESTROY (он вызывается сам), в данном случае мне нужно свой метод делать DESTROY и что в нем удалять? 3. $dbh мне удобно было написать вызвать, потмо сделаю метод который будет $dbh в начале, в удалятся в DESTROY Это сообщение отредактировал(а) gcc - 21.12.2008, 10:20 |
||||
|
|||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
gcc, в вашем случае AUTOLOAD вовсе не нужен, у вас ведь всего два метода.
Обычно его используют для создания accessors/mutators для атрибутов объектов. Как проверить AUTOLOAD? Странный вопрос... А как вы все остальное проверяете? -------------------- Died at Life.pl line 21 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
KSURi, понятно, я хотел как раз в целом спросить, не то что мелкие ошибки, а чтобы знать куда дальше смотреть...
я так понял что если работает - значит правильно |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
а что такое accessors/mutators ?
вот начал искать, мало что нашел: http://www.manpagez.com/man/3/Class::Accessor/ http://search.cpan.org/dist/Class-Accessor...cessor/Class.pm это такое же как и SUPER? Это сообщение отредактировал(а) gcc - 23.12.2008, 08:52 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, accessors/mutators (иногда их называют getters/setters) - методы класса для получения/изменения значений его свойств. Т.е. если есть у класса Thing свойство color, то для получения значения этого свойства в программе необходимо использовать метод (accessor), например, get_color(). Аналогичный метод set_color() (mutator) следует использовать для изменения значения свойства. Очень часто один метод используется и как accessor и как mutator (для нашего примера - color()). Необходимое действие определяется по аргументам метода.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
спасибо, я думал это что-то другое
но тут программа не большая, даже если и большая, то все равно по разному идут запросы и проверки на валидность (абсолютно по разному) и т.д. то есть смысла еще больше делать в данном случае наверное нету... Это сообщение отредактировал(а) gcc - 24.12.2008, 07:24 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
||||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
можете посмотреть другую?
некоторые вещи не доделал, в исходники в окончательный вариант еще не фофрмлил страницы еще не все работают посмотрите есть ли ошибки: (perltidy) http://x0.org.ua/perl/cat/ http://h2572.test-hf2.ru/cat/ ошибки кода сюда можно? еще демо: http://ldap.x0.org.ua (*HTML не оформлял) юзер логин: test02 mypass Это сообщение отредактировал(а) gcc - 16.12.2009, 08:40 |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Прочитал буквально пару файлов и везде есть такое:
Так делать не надо. Меняйте на относительные пути или ищи ф-ии каталиста для вычисления абсолютных путей. -------------------- Died at Life.pl line 21 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
KSURi, я это не исправил просто, я заметил что там путь не надо
а как стиль и т.д., нормально? если я использовал SQL::Abstract, то может во всех остальных тоже SQL::Abstract поставить? или все равно? |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
посмотрите плиз сейчас, например:
может алгоритм где-то поменять надо? где есть ошибки? проблема, что нужно, желательно, чтобы посмотрел на код оптыный программист и сказал где ошибки...
Это сообщение отредактировал(а) gcc - 29.7.2009, 09:20 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
извените, а как можно отследить попытку взлома, чтобы не было возможности взломать? (нужно чтобы пароли были в открытом виде)
http://x0.org.ua/perl/2/ это пусковой http://x0.org.ua/perl/index.pll.txt правда я передал сам скрипт вот он тут: ftp://ftp.lissyara.su/users/ProFTP/simplemailadmin-1.0.zip если надо могу локально выложить? Это сообщение отредактировал(а) gcc - 20.8.2009, 00:20 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
таки кому-то понравилась программа в первом посте, в хостинговой компании ее используют, переделали...
прислали в письме: патч для SQLIite:
кстате, еще есть у меня админка, я писал для Postfix/exim + DBmail + White List для кадного ящика (с возможностями чтобы пользователь имел еще и Grey list и Black list персональный) + там еще есть "уникальная блокировка спама с помощью Captcha", но то другой вопрос... Это сообщение отредактировал(а) gcc - 16.12.2009, 08:44 |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |