Как мне структурировать мою программу Perl CGI? - PullRequest
7 голосов
/ 24 октября 2009

Мы только что получили наше первое основное назначение Perl CGI в моем классе CS. Наша задача - создать сайт для обмена mp3, который позволяет пользователям создавать учетные записи, входить в систему, делиться mp3. Должна быть показана статистика по текущим пользователям, доступным mp3 и т. Д. Все действия должны быть записаны в файл журнала. Наш код должен быть безопасным.

До сих пор я реализовывал каждое из этих действий отдельно как свои собственные CGI-скрипты. Например, у меня есть сценарий, который рисует форму входа в систему, форму регистрации, сценарий, который позволяет загружать mp3, и другой, который выполняет обслуживание mp3. Я также создал модуль, который публикует соответствующую информацию в файл журнала всякий раз, когда я вызываю его экземпляр. Однако каждый сценарий индивидуален, за исключением экрана «Вход в систему», который рисует форму, а затем публикует ее в файле login.cgi. Генерация аккаунта работает так же. Но по большей части каждый действует самостоятельно.

Мой вопрос: Как связать это вместе, чтобы никакие действия не разрешались, если пользователь не вошел в систему? Я предполагаю, что мне нужно использовать скрипт входа в систему (тот, который получает действие post), чтобы управлять всем, но как мне это сделать? Я действительно в растерянности здесь. Я хотел бы, чтобы пользователь вошел в систему, начальная страница рисуется с опциями (добавить mp3, прослушать mp3, показать статистику и т. Д.). Лучше ли я рисовать какую-то форму и с действиями, настроенными на разные сценарии? Как мне обработать возврат от этих сценариев? Помогут ли файлы cookie каким-либо образом?

Другая соответствующая информация: До сих пор я выполнял большую часть своей работы в CGI.pm, используя учебник по Овидию на этом сайте и книгу Линкольна Стейна.

Ответы [ 2 ]

8 голосов
/ 25 октября 2009
5 голосов
/ 25 октября 2009

То, что вы хотите реализовать, в общем и целом называется «управление сессиями».

посмотрите здесь (как я могу добавить управление сеансом к простой perl-cgi-web-странице) для предыдущего вопроса SO

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

...