PHP, различные страницы индекса в зависимости от роли пользователя - PullRequest
0 голосов
/ 26 октября 2018

Я создал две пользовательские роли в базе данных mysql, Стандартный пользователь и Внешний пользователь. Если в систему входит обычный пользователь, он получает доступ к index.php по умолчанию. Что я хочу сделать, так это то, что когда внешний пользователь входит в систему, он получает доступ к другой странице (external.php). Я поместил $ userrole = "Внешний (Стандартный пользователь) соответственно на каждой странице. Ниже приведен файл login.js:

$(document).ready(function () {
    "use strict";
    $("#submit").click(function () {

        var username = $("#myusername").val(), password = $("#mypassword").val();
        var remember;

        if ($("#remember").is(":checked")){
            remember = 1;
        } else {
            remember = 0;
        }

        if ((username === "") || (password === "")) {
          $("#message").fadeOut(0, function (){
            $(this).html("<div class=\"alert alert-danger alert-dismissable\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>Please enter a username and a password</div>").fadeIn();
        });

        } else {
            $.ajax({
                type: "POST",
                url: "ajax/checklogin.php",
                data: {"myusername": username, "mypassword": password, "remember": remember },
                dataType: 'JSON',
                success: function (html) {

                    if (html.response === 'true') {
                       location.reload();
                        return html.username;
                    } else {
                        $("#message").fadeOut(0, function (){
                            $(this).html(html.response).fadeIn();
                        })
                    }
                },
                error: function (textStatus, errorThrown) {
                    console.log(textStatus);
                    console.log(errorThrown);
                    $("#message").fadeOut(0, function (){
                        $(this).html("<div class='alert alert-danger'>" + textStatus.responseText + "</div>").fadeIn();
                    })
                },
                beforeSend: function () {
                    $("#message").fadeOut(0, function (){
                        $(this).html("<p class='text-center'><img src='images/ajax-loader.gif'></p>").fadeIn();
                    })
                }
            });
        }
        return false;
    });
});

А это файл ajax checklogin.php

    <?php

    ob_start();
    require '../../vendor/autoload.php';

    try {
        // Define $myusername and $mypassword
        $username = $_POST['myusername'];
        $password = $_POST['mypassword'];

        // To protect MySQL injection
    $username = stripslashes($username);
    $password = stripslashes($password);

    $response = '';
    $loginCtl = new PHPLogin\LoginHandler;
    $lastAttempt = $loginCtl->checkAttempts($username);
    $max_attempts = PHPLogin\AppConfig::pullSetting("max_attempts", "unsigned");

    //First Attempt
    if ($lastAttempt['lastlogin'] == '') {
        $lastlogin = 'never';
        $loginCtl->insertAttempt($username);
        $response = $loginCtl->checkLogin($username, $password);
    } elseif ($lastAttempt['attempts'] >= $max_attempts) {

      //Exceeded max attempts
        $loginCtl->updateAttempts($username);
        $response = $loginCtl->checkLogin($username, $password);
    } else {
        $response = $loginCtl->checkLogin($username, $password, $_POST['remember']);
    };

    if ($lastAttempt['attempts'] < $max_attempts && $response != 'true') {
        $loginCtl->updateAttempts($username);
        $jsonResp = json_encode(['username'=>$username, 'response'=>$response]);
        echo $jsonResp;
    } else {
        $jsonResp = json_encode(['username'=>$username, 'response'=>$response]);
        echo $jsonResp;
    }

    unset($resp, $jsonResp);
    ob_end_flush();
} catch (Exception $e) {
    error_log($e->getMessage());
    echo json_encode($e->getMessage());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...