Логин хранится в куках. Точнее, там хранится md5(login.password.random), т.е. получить логин-пароль в чистом виде из куки нельзя.
Новый random создается (и кука перезаписывается) при каждой перезагрузке страницы.
Это позволяет быть уверенным, что если на ЭТОМ компе залогинился, то "автологинная кука" на всех остальных компах стала недействительной.
Другими словами, при включенной фишке автологин будет работать только на ОДНОМ последнем по времени доступа компе.
Фишка отключаема. Если отключить, то автологин на любом компе сохраняется до принудительного выхода (logoff) либо истечения срока хранения куки.
Админка выглядит следующим образом:
1.JPG 58.61К 16 Количество загрузок:
Установка:
----------
1. копируем файлы
cookies.js -> data/[шаблон]/
autologin.php -> core/includes/processor
addon.php -> core/includes/admin
modules_cookielogin.php -> core/includes/admin/sub/
modules_cookielogin.tpl.html -> core/tpl/admin/
Файл addon.php нужен ОДИН РАЗ для создания в таблицах новых полей.
После первого же захода в админку его можно удалить, если он не удалился сам.
2. в файле default.tpl.html перед строкой
<div class="marg"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=yandex">{$smarty.const.ADMIN_STRING_YANDEX}</a></div>
вставляем
{* BEGIN cookielogin *}
<div class="marg"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=cookielogin">Автологин</a></div>
{* END cookielogin *}
3. в файле core/tpl/admin/menu.tpl.html перед строкой
<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=yandex">{$smarty.const.ADMIN_STRING_YANDEX}</a></td></tr></table>
вставляем
{* BEGIN cookielogin *}
<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=cookielogin">Автологин</a></td></tr></table>
{* END cookielogin *}
4. в файле core/includes/admin/modules.php перед строкой
array("id"=>"yandex", "name"=>"Яндекс.Маркет" )
вставляем
# BEGIN cookielogin
array("id"=>"cookielogin", "name"=>"Автологин"),
# END cookielogin
5. в файле index.php
5.1. строку
if ( in_array($_GET["do"], array( "captcha", "cart", "rss", "compare", "yandex", "invoice_jur", "invoice_phys", "stat", "get_file" ))) {
заменяем на
# BEGIN cookieligin
#if ( in_array($_GET["do"], array( "captcha", "cart", "rss", "compare", "yandex", "invoice_jur", "invoice_phys", "stat", "get_file" ))) {
if ( in_array($_GET["do"], array( "captcha", "cart", "rss", "compare", "yandex", "invoice_jur", "invoice_phys", "stat", "get_file", "autologin"))) {
# END cookieligin
5.2. чуть ниже перед строкой
//init Smarty
вставляем
# BEGIN cookieligin
if (!isset($_SESSION['log'])
&& isset($_COOKIE['autologin'])
&& $row = db_fetch_assoc(db_query("SELECT Login, cust_password FROM ".CUSTOMERS_TABLE." WHERE MD5(CONCAT(Login,cust_password,random))='".xToText($_COOKIE['autologin'])."'".(CONF_COOKIE_LOGIN_ADMIN?"":" AND TRIM(actions) =''")." LIMIT 1")))
regAuthenticate($row['Login'], cryptPasswordDeCrypt($row['cust_password'],null), false);
# END cookieligin
6. в файле head.tpl.html где-нибудь после загрузки jquery (строка типа
<script type="text/javascript" src="http://ajax.googleap...n.js"></script>
или <script type="text/javascript" src="http://code.jquery.c...n.js"></script>)
вставляем
{* BEGIN cookieligin *}
<script type='text/javascript' src='data/{$smarty.const.TPL}/cookies.js'></script>
{literal}
<script>
function cookielogin(formname)
{
$.ajax({
url: '/index.php?do=autologin&login='+$("#user_login").val()+'&password='+$("#user_pw").val(),
type: "GET",
error: function(req, text, error) {alert('AJAX error: ' + text + ' | ' + error);},
success: function (answer)
{
if (answer == '0') deleteCookie('autologin');
else setCookie('autologin', answer, {/literal}{$smarty.const.CONF_COOKIE_LOGIN_LIFETIME}{literal}, '/');
formname.submit();
}
});
}
</script>
{/literal}
{* END cookieligin *}
7. заменяем файл authorization.tpl.html либо модифицируем свой аналогичным образом.
------------------
После всего этого в админке в разделе "Модули" появится новый модуль "Автологин".
Уровень доступа к этому модулю "Общие настройки" (это для тех, у кого кроме админов с полным доступом и клиентов есть еще пользователи с разными уровнями доступа в админке).