Как Perl обрабатывает сессии по-другому, чем PHP? - PullRequest
0 голосов
/ 13 декабря 2010

Я пытаюсь клонировать коммерческую систему управления студентами, написанную на Perl. Я хочу использовать PHP, так как у меня нет опыта работы с Perl.
Я сейчас пытаюсь настроить систему входа в систему, которая должна быть (должна быть?) С PHPSESSID, верно? Теперь в PHP я мог передавать идентификатор сессии через GET, POST и COOKIE.

Веб-сайт Perl не добавляет параметры в URL (GET) и не сохраняет куки на моем компьютере (COOKIE). Также нет формы, которая могла бы содержать скрытое поле (что было бы POST в PHP, верно?)

Может кто-нибудь сказать мне, как Perl запоминает вошедшего в систему пользователя?

Ответы [ 2 ]

5 голосов
/ 13 декабря 2010

Perl использует гораздо более «основанный на инструментарии» подход к созданию веб-приложений, чем PHP, потому что Perl не был разработан специально для веб-работы.Так что у него нет встроенного способа управления сессиями веб-приложений;скорее, в CPAN есть много модулей, которые реализуют управление сессиями различными способами.

Если бы вы определили соответствующую систему управления студентами и предоставили URL, мы могли бы взглянуть на нее со стороныи определить, что он делает, но на самом деле я задаюсь вопросом, нужно ли вам на самом деле использовать ту же систему управления сеансами, что и существующее приложение, если вы не хотите реализовать единый вход между исходной версией и вашим клоном [1].Сконцентрируйтесь на клонировании видимого пользователем интерфейса и функциональности, а не на деталях реализации за ним.

[1] ... что было бы бесполезно в любом случае, если вы не планируете подключаться к его базе данных сеанса на задней панели.конец, поскольку ни один из них не распознает идентификаторы сеанса другого, если они не передают эти данные.

2 голосов
/ 13 декабря 2010

Для полноты картины существуют ДРУГИЕ, нестандартные способы хранения / передачи информации о сеансе, чем 3 перечисленных вами метода (хотя я серьезно сомневаюсь , какой из них используется в вашем SMS).Среди них:

  • Отправка данных cookie в составе DOM (например, в HTML) и наличие на странице JavaScript доступа к ним из DOM

  • Или, во-первых, просто сохраните готовые данные как данные JavaScript.

  • AJAX-вызовы.Например, логика с поддержкой сеансов обрабатывается в URL-адресах AJAX, а не в основных URL-адресах.Да, я знаю, что это совершенно чокнутый.Но выполнимо.

  • Не сохраняйте cookie в основной базе данных cookie (поэтому вы не можете найти его, используя стандартные методы просмотра cookie).Подробную информацию о том, как это сделать, можно найти в «evercookie» ОЧЕНЬ крутого метода постоянного хранения информации о cookie-файлах с использованием до 10 вариантов избыточного хранения - одно хорошее вступление - http://blog.depthsecurity.com/2010/09/super-persistent-cookies-evercookie.html

Я полностью согласен с ответом Дейва - просто используйте механизм лучших практик PHP для реализации функциональности вместо клонирования реализации, специфичной для perl и, возможно, странной реализации в веб-приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...