Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
<TR><TD colspan="2" align="center">
<INPUT type="submit" value="Войти">
</TABLE></TABLE></FORM></CENTER>
__HTML__
exit;
}
sub doLogoff { # подпрограмма закрытия сеанса
# Записываем cookie с истекшим «сроком годности» (отрицательное значение параметра expire), что уничтожит cookie в памяти
$cookie = $cgi->cookie(-name => 'sessid',
-value => '',
-expires => '-1d');
print $cgi->header(-cookie => $cookie);
print '<HEADER>';
print '<META http-equiv="refresh" content="1;url=adsl.cgi">';
print '</HEADER>';
print 'До новых встреч!';
exit;
}
Задача данного сценария – выполнить авторизацию пользователя и предоставить ему список доступных для работы модулей. Управление поведением сценария осуществляется с помощью переменной «action», которая может иметь одно из следующих значений: logoff (закрыть сеанс), logon (выполнить процедуру авторизации, в ходе которой проверяется правильность пароля и открывается сессия, соответствующая данному пользователю, о чем делается запись в файлах cookie). Пустое значение данной переменной позволит вывести на экран перечень доступных модулей.
Список модулей хранится в БД, в таблице st_modules, откуда он выбирается и выводится на экран, причем отображаются только те модули, для которых в поле allow содержится имя текущего пользователя. Больше ничего от главного сценария не требуется. Для подключения к приложению очередного модуля достаточно поместить в папку cgi-bin реализующий его сценарий и добавить запись в таблицу st_modules. То есть в этой таблице будет что-то похожее:
adsl=> select link, name, allow from st_modules order by orderby;
link | name | allow
---------------------+------------------------------------------+----------------------
adsl-users.cgi | Абоненты ADSL | {"admin","operator"}