Я создал две пользовательские роли в базе данных 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\">×</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());
}