| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > поругайте на код |
| Автор: gcc 13.11.2008, 22:52 | ||
| Уважаемые, поругайте пожалуйста на код... там допиливать еще долго, некоторые вещи может быть покажутся странными... если использовать use strict; то все остальное все равно? как протестировать можно? (еще надо сделать 2 модуля) еще там добавить в запрос после WHERE надо, делал так примерно:
код тут: http://x0.org.ua/perl_old.txt |
| Автор: gcc 13.11.2008, 23:09 |
| |
| Автор: gcc 13.11.2008, 23:25 |
| |
| Автор: dmitryk1 14.11.2008, 08:31 |
| А почему вызовы $dbh = DBI->connect( в каждой процедуре? Параметры вроде одинаковые... Может стоит глобальный объект сделать? И ещё некоторые запросы красивые: VALUES (?,?,?,?,?,?,NOW(),NOW(),?) а некоторые генерятся, вроде как без особой надобности: WHERE t1.session = \'' . $cookies{'session'} . '\' AND... ну и делай их WHERE t1.session = \'? \' AND... если сервак запросы кэширует и генерируемые часто встречаются, то сервак тормозить начнёт... немного. оПЯТЬ же безопасность повысишь. А то хз, чего они там в куки напихают... чёнить типа "0 OR 1=1; drop table;/*--" ;) |
| Автор: ginnie 14.11.2008, 12:26 |
| gcc, согласен с dmitryk1, по поводу соединений и placeholder'ов. Соединение надо передавать в функции параметром. Лучше код $$dd{'domain'} писать как $dd->{'domain'}, так привычнее. s /[\W]//g - зачем скобки и почему не \W+ &create_session; - вызовы функции лучше писать как create_session(); Почему use Data::Validate::Domain qw(is_domain); в середине скрипта? |
| Автор: tolkien 14.11.2008, 14:33 |
| Вот $$dd{'domain'} от такого способа разыменование лучше отказаться. Потому что можно тогда спутать с символьными ссылками. Лучше делать как ginnie написал [ |
| Автор: gcc 14.11.2008, 19:41 | ||||||
спасибо, исправлю...
параметры с начало планирвались разные для несколько баз данных и транзакции делать по примеру...
глобальный объект, это один раз в начале скрипта подключится... или DBIx::Class?
я хотел в начале скрипта подключиться, а в конце скрипта отключиться... и еще eval{} сейчас сделал так чтобы было видно когда подлючаюсь и когда отлючаюсь как передвать в функцию подключение, это анонимная подпрограмма? (не могу понять смысла) |
| Автор: ginnie 14.11.2008, 20:32 | ||
func($dbh); |
| Автор: gcc 14.11.2008, 20:42 | ||
а выключать соединение тогда наверное так:
|
| Автор: gcc 14.11.2008, 20:57 | ||||||||
ginnie, я понял, спасибо, буду делать... Добавлено через 2 минуты и 6 секунд
кода нету, примерно вот так, если правильно это...
|
| Автор: gcc 28.11.2008, 13:27 |
| |
| Автор: gcc 21.12.2008, 10:05 | ||||
| я вот переписал, на всякий случай может кто-то посмотрит интересно узнать где ошибки или не правильно, там работает всё код: http://x0.org.ua/perl/ там интересует вопрос 1) праивльно так написать во всех классах?
в книге было не определено $AUTOLOAD:
как проверить работаетли AUTOLOAD? если он нужен вообще 2. я нашел много информации про DESTROY (он вызывается сам), в данном случае мне нужно свой метод делать DESTROY и что в нем удалять? 3. $dbh мне удобно было написать вызвать, потмо сделаю метод который будет $dbh в начале, в удалятся в DESTROY |
| Автор: KSURi 22.12.2008, 13:28 |
| gcc, в вашем случае AUTOLOAD вовсе не нужен, у вас ведь всего два метода. Обычно его используют для создания accessors/mutators для атрибутов объектов. Как проверить AUTOLOAD? Странный вопрос... А как вы все остальное проверяете? |
| Автор: gcc 23.12.2008, 01:42 |
| KSURi, понятно, я хотел как раз в целом спросить, не то что мелкие ошибки, а чтобы знать куда дальше смотреть... я так понял что если работает - значит правильно |
| Автор: gcc 23.12.2008, 08:51 |
| а что такое accessors/mutators ? вот начал искать, мало что нашел: http://www.manpagez.com/man/3/Class::Accessor/ http://search.cpan.org/dist/Class-Accessor-Class/lib/Class/Accessor/Class.pm это такое же как и SUPER? |
| Автор: ginnie 23.12.2008, 12:28 | ||
gcc, accessors/mutators (иногда их называют getters/setters) - методы класса для получения/изменения значений его свойств. Т.е. если есть у класса Thing свойство color, то для получения значения этого свойства в программе необходимо использовать метод (accessor), например, get_color(). Аналогичный метод set_color() (mutator) следует использовать для изменения значения свойства. Очень часто один метод используется и как accessor и как mutator (для нашего примера - color()). Необходимое действие определяется по аргументам метода.
|
| Автор: gcc 24.12.2008, 06:59 |
| спасибо, я думал это что-то другое но тут программа не большая, даже если и большая, то все равно по разному идут запросы и проверки на валидность (абсолютно по разному) и т.д. то есть смысла еще больше делать в данном случае наверное нету... |
| Автор: gcc 11.1.2009, 01:32 |
остальное тут http://x0.org.ua/perl/2/ |
| Автор: gcc 16.6.2009, 05:40 |
| можете посмотреть другую? некоторые вещи не доделал, в исходники в окончательный вариант еще не фофрмлил страницы еще не все работают посмотрите есть ли ошибки: (perltidy) http://x0.org.ua/perl/cat/ http://h2572.test-hf2.ru/cat/ ошибки кода сюда можно? еще демо: http://ldap.x0.org.ua (*HTML не оформлял) юзер логин: test02 mypass |
| Автор: KSURi 16.6.2009, 10:08 | ||
Прочитал буквально пару файлов и везде есть такое:
Так делать не надо. Меняйте на относительные пути или ищи ф-ии каталиста для вычисления абсолютных путей. |
| Автор: gcc 16.6.2009, 17:23 |
| KSURi, я это не исправил просто, я заметил что там путь не надо а как стиль и т.д., нормально? если я использовал SQL::Abstract, то может во всех остальных тоже SQL::Abstract поставить? или все равно? |
| Автор: gcc 29.7.2009, 09:05 | ||
| посмотрите плиз сейчас, например: может алгоритм где-то поменять надо? где есть ошибки? проблема, что нужно, желательно, чтобы посмотрел на код оптыный программист и сказал где ошибки...
|
| Автор: gcc 29.7.2009, 09:22 | ||
|
| Автор: gcc 19.8.2009, 21:32 |
| извените, а как можно отследить попытку взлома, чтобы не было возможности взломать? (нужно чтобы пароли были в открытом виде) 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 21.9.2009, 06:01 | ||
| таки кому-то понравилась программа в первом посте, в хостинговой компании ее используют, переделали... прислали в письме: патч для SQLIite:
кстате, еще есть у меня админка, я писал для Postfix/exim + DBmail + White List для кадного ящика (с возможностями чтобы пользователь имел еще и Grey list и Black list персональный) + там еще есть "уникальная блокировка спама с помощью Captcha", но то другой вопрос... |