Рабочая авторизация на сайте через API в DLE
Не знаю, как сейчас обстоят дела со встроенным API в CMS DataLife Engine, но в релизах ветки 10.* и 11.* точно есть одна проблема. А именно – при использовании метода:
$dle_api->external_auth($login, $password);
вместо реальной авторизации происходит простая проверка корректности логина и пароля указанного пользователя.
Очень странно, что в официальной документации этот метод описывается как «Авторизация по логину и паролю», хотя на деле, как я уже сказал ранее, происходит проверка корректности указанных данных.
Уверен, что многие, кто кастомизирует этот движок, столкнулись с этой проблемой, как, собственно, и я.
Весьма красивое решение мне удалось найти, создавая один из своих модулей, и выглядит оно так:
ini_set('error_reporting', 0); ini_set('display_errors', 0); define('DATALIFEENGINE', true); define('ROOT_DIR', substr(dirname(__FILE__), 0, -12)); define('ENGINE_DIR', ROOT_DIR.'/engine'); if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { include ENGINE_DIR.'/data/config.php'; require_once ENGINE_DIR.'/modules/functions.php'; include ENGINE_DIR.'/api/api.class.php'; $login = (string)$_POST['login']; // Логин пользователя $password = (string)$_POST['password']; // Пароль пользователя if($dle_api->external_auth($login, $password)) { $_POST['login_name'] = $login; $_POST['login_password'] = $password; $_POST['login'] = 'submit'; dle_session(); require_once ENGINE_DIR.'/modules/sitelogin.php'; echo ''; // Обновляем страницу после авторизации > else { echo 'Данные не верны!'; > >
В этот PHP-скрипт (обработчик, который нужно размещать в папке /engine/ajax/ вашего сайта) через AJAX передаются данные, которые проверяются на корректность авторизации (через API) и уже посредством стандартной функции CMS происходит авторизация на сайте.
Стоит отметить, что способ универсален и не зависит от версии CMS.
Если что-то вам показалось непонятным – не стесняйтесь и задавайте свои вопросы в комментариях.
Хак Отдельная страница авторизации для DLE
Хак представляет из себя отдельную страницу авторизации пользователей сайта. Установка очень проста и потребует минимум изменений.
Для начала разместите файлы в свои места, login.php в папку /engine/modules/, а файл шаблона в в папку с шаблоном /templates/skin/ Затем добавьте запись в файле /engine/engine.php ниже switch ( $do ) напишите
case "name_module" : include (DLEPlugins::Check(ENGINE_DIR . '/modules/login.php')); // Для версий движка 13 и выше. include ENGINE_DIR . '/modules/login.php'; // Для версии движка ниже 13. break;
Где name_module используйте любое название страницы но главное, чтобы оно не совпадало с другими страницами и затем новая страница будет доступна по адресу http://sitename/index.php?do=name_module
P.S.1 У меня так и названа login
P.S.2 В зависимости от версий движка, код в login.php может быть немного другим, это относиться в основном к авторизации через социальные сети.
В файле login.php есть два тега
Их я использую для ajax вызова формы авторизации. И назначение их я думаю не должно вызывать вопросов. Можете поправить по себя или удалить если у Вас нету красивых модульных окошек.
if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '{class>', "ajax-login" ); else $tpl->set( '{class>', "" ); if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '{btnClose>', "set( '{btnClose>', "" );
Обращение к странице при помощи ajax точно такое же как и обычный вход. На ссылку с адресом на страницу можно повесить получение формы входа, а если js дал сбой или по ссылке нажали средней кнопкой мыши то будет стандартная страница.
Чисто отсебятина, я использую скрипт Magnific Popup и там у меня проблемки с добавлением кнопки на закрытие окна, пришлось её добавить в сам шаблон. Так вот её можно не использовать и удалить вовсе.
Стилизуйте формы и шаблоны самостоятельно, Удачи в установке.
Автор: TeraMoune
Версия DLE: любая
Авторизация на php dle
Пожалуйста, используйте свои учетные данные для входа в систему.
Если вы не являетесь участником, пожалуйста, зарегистрируйтесь .
- PREMIUM РАЗДЕЛ
- XenForo
- XenForo релизы
- XenForo стили
- XenForo модификации
- wordpress Релизы
- wordpress Шаблоны
- wordpress плагины
- Скрипты рулеток
- Скрипты магазинов
- Скрипты соц-сети
- Другие скрипты
- Мониторинг
- Автодонат
- Релизы
- Шаблоны
- Модули
- Хаки
- Все для Gamepl
- Все для Hostinpl
- Все для Litepanel
- Все для Enginegp
- Другие панели
- Шаблоны панелей
- Гайды по хостингам
FREE PLUMS
Хак DLE Отдельная страница авторизации для сайта
Установить хак для DLE Отдельная страница авторизации для вашего сайта, просто вариант и решение, позволит вам сделать отдельную страницу на основе технологии ajax, чтобы добавить отдельную страницу авторизации пользователей площадке. Хак Отдельная страница авторизации для DLE, удобное решение, установка выполнятся просто и потребует минимум изменений.
Придется добавить файлы скрипта в свои места, login.php в папку /engine/modules/, а файл login_page.tpl в папку вашего шаблона /templates/Ваш-шаблон/.
Установка хака Отдельная страница авторизации для DLE:
Добавьте запись в файле /engine/engine.phpcase "name_module" : include (DLEPlugins::Check(ENGINE_DIR . '/modules/login.php')); // Для версий движка 13 и выше. include ENGINE_DIR . '/modules/login.php'; // Для версии движка ниже 13. break;
Где name_module можно изменить на название страницы, но главное, чтобы название не совпадало с похожими страницами, тогда новая страница будет доступна по адресу.
P.S.1 У меня так и названа login
P.S.2 В зависимости от версий движка, код в login.php может быть немного другим, это относиться в основном к авторизации через социальные сети.
В файле login.php есть два тега
Код автором применялся для ajax вызова формы авторизации. Назначение данных тегов не должно вызывать вопросов. Можно отредактировать на своё усмотрение, или удалить, если у Вас нету красивых модульных окошек.
if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '', "ajax-login" ); else $tpl->set( '', "" ); if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '', "set( '', "" );
Обращение к странице выполняется при помощи ajax, ничем не отличается при обращение для обычного входа. На ссылку адреса страницы вы можете повесить получение формы входа, а если будет проблема с js или по ссылке кликнули средней кнопкой мыши, то откроется стандартная страница.
Стоит добавить, автор применил скрипт Magnific Popup и там возникла проблема с добавлением кнопки , если пользователь захочет закрыть окно при установленном данном хаке, ничего не осталось, как добавить кнопку в файл шаблона. Ещё одно решение удалить её вовсе, окно само продет, если кликнуть кнопкой в пустое пространство страницы.
Стили формы и шаблоны придется выполнить самостоятельно, всё хорошего в установке.
Автор: TeraMoune
Версия datalife engine: любаяУ вас нет доступа к скачиванию файлов с нашего сервера
Хак для DLE Ajax авторизация входа на сайт
Работает хак для DLE Ajax авторизация на версии. Вот такой вариант авторизации https://dle9.com/ предлагаем, как вариант замена стандартной системы входа на сайт. Хак DLE Ajax авторизация на веб-ресурсе в всплывающем окне, при этом, при не правильном вводе пароля и логина или превышения ошибок — сообщение выходит уже в модальном окне. Как это показано на картинках ниже авторизация входа на сайт будет происходить в таком окне.
Хаки для DLE Ajax авторизация входа на сайт
Установка
1. Открываем файл index.php, ищем:if(($_POST['login'] == "submit") AND ($_POST['ajax'] == "1")) < $tpl->result['main'] = $login_message; >
2. Открываем engine/nodules/sitelogin.php, после:
if( isset( $_POST['login'] ) AND $_POST['login_name'] AND $_POST['login_password'] AND $_POST['login'] == "submit" )
$db->query( "UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='', logged_ip='" . $_IP . "' WHERE user_id='$member_id[user_id]'" ); $is_logged = TRUE;
msgbox( $lang['login_err'], $lang['login_err_1'] );
$login_message = $lang['login_err_1'];
msgbox( $lang['login_err'], $lang['login_err_2'] );
$login_message = $lang['login_err_2'];
msgbox( $lang['login_err'], $lang['ip_block_login'] );
$login_message = $lang['ip_block_login'];
3. В ваш .js файл вставляем в самый конец:
function sitelogin()< var uname=$("input[name='login_name']").val(); var upassword=$("input[name='login_password']").val(); $.post("/index.php",,function(data)< if (data == "logged") < DLEalert("Авторизация прошла успешно", "Авторизация на сайте"); setTimeout(function() < location.href=""; location.reload(); >, 1500); > else < DLEalert(""+data+"", "Ошибка авторизации"); >>); >
4. Кнопка входа должна быть такого вида:
Единственный плюс это обработка ошибок без обновления страницы, но как правило ошибки бывают не так часто, поэтому смысл делать такой хак, который не снижает нагрузку и тем более не ускоряет работу сайта для клиента.
Идея хорошая, но исполнение на троечку.
Если стоят редиректы для index.php на основной адрес сайта - хак не работает. Так же, если мы вводим правильный пароль, выскакивает окно, мол, мы успешно авторизовались, но личный кабинет так и не появляется, приходится обновлять страницу, так что по-сути никакой прелести аякса то и нет.Предлагаем ознакомится хак datalife engine Ajax авторизация входа на сайт
Хак DLE Отдельная страница авторизации для сайта
Установить хак для DLE Отдельная страница авторизации для вашего сайта, просто вариант и решение, позволит вам сделать отдельную страницу на основе технологии ajax, чтобы добавить отдельную страницу авторизации пользователей площадке. Хак Отдельная страница авторизации для DLE, удобное решение, установка выполнятся просто и потребует минимум изменений.
Придется добавить файлы скрипта в свои места, login.php в папку /engine/modules/, а файл login_page.tpl в папку вашего шаблона /templates/Ваш-шаблон/.
Установка хака Отдельная страница авторизации для DLE:
Добавьте запись в файле /engine/engine.phpcase "name_module" : include (DLEPlugins::Check(ENGINE_DIR . '/modules/login.php')); // Для версий движка 13 и выше. include ENGINE_DIR . '/modules/login.php'; // Для версии движка ниже 13. break;
Где name_module можно изменить на название страницы, но главное, чтобы название не совпадало с похожими страницами, тогда новая страница будет доступна по адресу.
P.S.1 У меня так и названа login
P.S.2 В зависимости от версий движка, код в login.php может быть немного другим, это относиться в основном к авторизации через социальные сети.
В файле login.php есть два тега
Код автором применялся для ajax вызова формы авторизации. Назначение данных тегов не должно вызывать вопросов. Можно отредактировать на своё усмотрение, или удалить, если у Вас нету красивых модульных окошек.
if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '{class>', "ajax-login" ); else $tpl->set( '{class>', "" ); if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '{btnClose>', "set( '{btnClose>', "" );
Обращение к странице выполняется при помощи ajax, ничем не отличается при обращение для обычного входа. На ссылку адреса страницы вы можете повесить получение формы входа, а если будет проблема с js или по ссылке кликнули средней кнопкой мыши, то откроется стандартная страница.
Стоит добавить, автор применил скрипт Magnific Popup и там возникла проблема с добавлением кнопки , если пользователь захочет закрыть окно при установленном данном хаке, ничего не осталось, как добавить кнопку в файл шаблона. Ещё одно решение удалить её вовсе, окно само продет, если кликнуть кнопкой в пустое пространство страницы.
Стили формы и шаблоны придется выполнить самостоятельно, всё хорошего в установке.
Автор: TeraMoune
Версия datalife engine: любаяСкачать хаки DLE для изменения в лучшую сторону возможности вашего сайта, файлы с инструкцией описанной в данной статье доступны всем по следующей ссылке