| Новости | 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[]