CMS DataLife Engine - Система управления сайтами

Sign in to follow this  
qqignatqq

Почему не могу авторизироваться с помощью dle.api?

Recommended Posts

 

Здравствуйте. Есть php файл такого вида:

<?php
include ('engine/api/api.class.php');
$request = $dle_api->external_auth( $_POST['ajaxname'],  $_POST['ajaxpass']);
if ($request == true)
    echo 'Вы успешно Авторизировались';
elseif ($request == false)
    echo 'Ошибка! Логин или пароль не совпали!';

На сайте его встречается такой js 

    $(function(){
        $('#ajaxlogin').on( "submit", function(e) {
            e.preventDefault();
            $.ajax({
                type: "POST",
                url: "ajaxlogin.php",
                data: $('#ajaxlogin').serialize(),
                success: function(data){
                    alert(data);
                }
            });
        });
       });

Создал форму, ввожу логин и пароль, возвращается true, обновляю страницу, а я как был гостем, так и остался. Почему так? Где ошибка?

Share this post


Link to post
Share on other sites
1 час назад, qqignatqq сказал:

Создал форму, ввожу логин и пароль, возвращается true, обновляю страницу, а я как был гостем, так и остался.

Потому что в вашем коде нет никакой авторизации, вы проверяете только введенные данные и все. Вместо 

echo 'Вы успешно Авторизировались';

вам нужно собственно написать PHP код, который будет устанавливать куки браузера, потом из куков проверять авторизацию и т.д.

Share this post


Link to post
Share on other sites
3 минуты назад, celsoft сказал:

Потому что в вашем коде нет никакой авторизации, вы проверяете только введенные данные и все. Вместо 


echo 'Вы успешно Авторизировались';

вам нужно собственно написать PHP код, который будет устанавливать куки браузера, потом из куков проверять авторизацию и т.д.

Ну и, извиняюсь за выражение, на*уй тогда в документации писать:

 

Цитата

$dle_api->external_auth( string $login, string $password);

Авторизация по логину и паролю. Возвращаемые значения: true - авторизация успешна, false - логин или пароль не верны.

???

  • Upvote 1

Share this post


Link to post
Share on other sites

В документации написано все правильно. Не путайте API для работы с базой данных, с другими функциями и действиями на сайте. Данная функция проверяет авторизацию по введенным данным с базой данных, и возвращает вам соответствующие значения, а дальше вам уже и нужно делать нужные вам действия. API дается для взаимодействия сторонних скриптов с DLE, а  не делает какие то действия вместо DLE. В DLE есть свои механизмы для авторизации, которые сделают все нужные действия непосредственно для DLE.

Share this post


Link to post
Share on other sites

Столкнулся с такой же проблемой. Лучше тогда описать это как "Проверка авторизации\данных", а не "Авторизация по логину и паролю".

  • Upvote 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this