Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Артем Карявка (SmArt) 29.08.2007 17:04
Функция, которая сохраняет и раздает кукисы...#################################################################### # Вход в систему @login[][tUser;sSession;sPath;sMessage] ^if(!^logged[]){ ^if(def $form:login && def $form:passwd){ $tUser[^passport:loadByLogin[$form:login]] ^if(def $tUser){ ^if(^math:crypt[$form:passwd;$tUser.passwd] eq $tUser.passwd){ $sSession[^math:crypt[$form:login;^$apr1^$]] $cookie:session[$.value[$sSession]$.domain[$MAIN:DOMAIN]^if(def $form:remember){$.expires(14)}{$.expires[session]}] ^sessionSet[$form:login;$sSession] $sPath[^default[$form:path;/${MAIN:LANG}/]] $sMessage[^default[$MAIN:PASSPORT_TEXT_WELCOME;Добро пожаловать], ^auth:userFullname[]] <table width="100%" border="0" cellspacing="4" cellpadding="5" class="content"> <tr> <td><h1>$sMessage</h1></td> </tr> </table> # $response:refresh[$.value[0]$.url[$path]] ^jsAction[$sMessage;$sPath] }{ $sMessage[^default[$MAIN:PASSPORT_TEXT_DONTPASS;Неверная пара логин-пароль]] ^formLogin[$sMessage] ^jsAction[$sMessage] } }{ $sMessage[^default[$MAIN:PASSPORT_TEXT_DONTPASS;Нет такого пользователя или пароля]] ^formLogin[$sMessage] ^jsAction[$sMessage] } }{ ^if(!def $form:login){ $sMessage[Не введен логин] } ^if(!def $form:passwd){ $sMessage[Не введен пароль] } ^formLogin[] } }{ $sMessage[^default[$MAIN:PASSPORT_TEXT_LOGIN;Вы авторизированы], ^auth:userFullname[]] <table width="100%" border="0" cellspacing="4" cellpadding="5" class="content"> <tr> <td><h1>$sMessage</h1></td> </tr> </table> ^jsAction[$sMessage] } # end @login[] #################################################################### # Установка сессии @sessionSet[sLogin;sSession] ^if(def $sLogin && def $sSession){ ^MAIN:pSQL.void{ UPDATE ${MAIN:DB_NAME}_${sTABLE} SET `session`='$sSession' WHERE `nickname` = '$sLogin' } } # end @sessionSet[] #################################################################### # Очистка сессии @sessionClear[sSession] $sSession[^default[$sSession;$cookie:session]] ^if(def $sSession){ ^MAIN:pSQL.void{ UPDATE ${MAIN:DB_NAME}_${sTABLE} SET `session`='' WHERE `session` = '$sSession' } } # end @sessionClear[]