| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > ViSession |
| Автор: Vaneska 16.6.2005, 12:13 |
| Наконец-то свершилось! Я доделал свой модуль управления сессиями. Реализовал работу через kookies и без них (sid передается через параметры). Имеется возможность подключать систему к ЛЮБЫМ хранилищам информации, но пока есть интерфейс только для MySQL. Скоро напишу и для DBM. Вот ссылка: http://vaneska.shatt.ru/download/visession.zip Кто не поленится разобраться в моем коде, тестируйте. Все найденные глюки, ошибки, корявости синтаксиса и т.д. и т.п. пишите сюда. Буду очень благодарен. В архиве есть 2 папки visession - тестовые программки, lib - сами модули. Модуль ViSession.pm - движок системы. Модуль ViMySQL.pm - интерфейс доступа к бызе MySQL. файл db.sql содержит sql-скрипт используемых таблиц. файл test_visession.cgi тестирует систему ( тестирует только режим с kookies) файл test_vimysql.cgi тестирует модуль ViMySQL.pm ( на корявость тестировочных программ не обращайте особого внимания) хелпа пока нет, но по тестировочным программам в принципе ясно как работает система. |
| Автор: korob2001 16.6.2005, 21:09 |
| Vaneska - отлично. Оптимизировать будем??? |
| Автор: Vaneska 17.6.2005, 09:20 | ||||||
| Будем. Вопрос 1. Вот конструкнор:
хорошо ли так
заполнять параметры? Вопрос 2. Приемлема ли такая работа с кукисами?
Или лучше написать свою функцию, специально оптимизированную для этого модуля? |
| Автор: korob2001 17.6.2005, 10:05 | ||
Давай сначала и по порядку. Сначала разберёмся с конструктором:
Тебя интересует именно, определён ли параметр или же тебя интересует его истеннось? Другими словами если будет передана пустая строка вот этому параметру: db_host, тебя это устроит или нет??? |
| Автор: Vaneska 17.6.2005, 15:58 |
| скорее всего интересует, определен ли пораметр или нет. Если пользователю надо параметр изменить, он явно не будет вписывать пустой параметр. А если всетаки будет пустой, ошибка всплывет при подключении к базе. Задача здесь стоит в установке значения по умолчанию. Если пользователя это значение устраивает (db_host, db_port), он просто не пишет параметр, когда создает обьект. |
| Автор: korob2001 17.6.2005, 20:35 | ||
Вобщем ладно, попробуй заюзать такой конструктор, вместо того, который мы начали разбирать выше.
Если что-то будет не понятно, пиши. Удачи. |
| Автор: Vaneska 18.6.2005, 07:48 |
| Великий и могучий Перл!! получилось все гораздо компактней! спасибо. А теперь с вопросом №2. Я думаю сделать так: написать свою специализированную функцию для обработки cookies, но стоит и это делать? Есть еще модуль CGI::Simple::Cookie. Может лучше его использовать. Он вроде покомпактней и по оптимизированней? |
| Автор: korob2001 18.6.2005, 08:37 |
| А почему не CGI??? |
| Автор: Vaneska 18.6.2005, 09:16 |
| Задача стоит сделать все помаксимуму компактно, удобно, чтобы быстро работало. Зачем подключать целиком CGI, когда можно обойтись тем же CGI::Cookie? З.Ы. в кукисах, в параметре expires надо в дате часовой пояс менять ( +4 GMT ) или браузер сам разберется в каком часовом поясе ему дату получать? |
| Автор: korob2001 18.6.2005, 11:32 | ||
Vaneska - а зачем же весь модуль подключать? Подключи только то, что тебе нужно.
Подключишь только функцию cookie. Удачи. |
| Автор: Vaneska 20.6.2005, 14:29 | ||||||
| Тоже вариант, попробую. Далее: у меня в классе ViMySQL есть параметр tbl_users, а в классе ViSession есть параметр funcs, сожержащий обьект класса ViMySQL
Следуя правилам ООП, доступ например к параметру uid из программы должен выглядеть так:
Я добился, что бы работала такая конструкция
но надо, чтобы было так: $ses->funcs->tbl_users->uid По идее надо создавать класс tbl_users c соответствующими методами, но это ПЛОХО, а как подругому не знаю |