Как мне структурировать мою CGI-программу на Perl?
-
06-07-2019 - |
Вопрос
Мы только что получили наше первое серьезное задание по Perl CGI в моем классе CS.Наша задача - создать сайт для обмена mp3, который позволит пользователям создавать учетные записи, входить в систему, делиться mp3-файлами.Должна быть показана статистика текущих пользователей, доступных mp3-файлов и т.д.Все действия должны быть записаны в файл журнала.Наш код должен быть безопасным.
До сих пор я реализовывал каждое из этих действий отдельно в виде их собственных CGI-скриптов.Например, у меня есть скрипт, который рисует форму входа в систему, регистрационную форму, скрипт, который позволяет загружать mp3, и другой, который выполняет просмотр mp3.Я также создал модуль, который отправляет соответствующую информацию в файл журнала всякий раз, когда я вызываю его экземпляр.Однако каждый скрипт индивидуален, за исключением экрана входа в систему, который рисует форму и затем публикует ее в login.cgi.Генерация учетной записи работает точно так же.Но, по большей части, каждый действует сам по себе.
Мой вопрос:Как мне связать это вместе, чтобы никакие действия не были разрешены до тех пор, пока пользователь не войдет в систему?Я предполагаю, что я должен использовать скрипт входа в систему (тот, который получает действие post), чтобы управлять всем, но как мне это сделать?Я действительно в растерянности.Я хотел бы, чтобы пользователь вошел в систему, домашняя страница была отрисована с параметрами (добавить mp3, прослушать mp3, показать staistics и т.д.). Лучше ли мне нарисовать какую-то форму и с действиями, установленными для разных сценариев?Как мне обрабатывать возврат из этих скриптов?Помогут ли файлы cookie каким-то образом?
Другая соответствующая информация:На данный момент я выполнил большую часть своей работы в CGI.pm используя учебник ovid, найденный на этом сайте, и книгу Линкольна Стейна.
Решение
Другие советы
То, что вы хотите реализовать, обычно называется "управление сеансами".
посмотри здесь (как-я-могу-добавить-управление сеансами-на-простую-perl-cgi-web-страницу) по предыдущему вопросу SO
Возможно, вы также захотите просмотреть эти страницы, чтобы получить некоторую справочную информацию.