добрый день из gmt + 8 часовых поясов.
Я создал систему входа в систему / систему, теперь я хочу реализовать функцию, которая будет выбирать пользователей, поэтому я делаю столбец состояния в БД, 2 типазначений, блокировка => блокировка, активная => не блокировка.Я могу использовать crud метод для обновления статуса и вывода в таблицу.конечно, я могу заблокировать пользователя и изменить статус на lock , что работает нормально, но проблема в том, что заблокированный пользователь все еще имеет доступ к системе, так как сеанс все еще действителен, он / она должен закрытьбраузер или их сеанс завершен.на странице входа в систему я проверяю, заблокирован ли пользователь, затем могу войти.
, поскольку у пользователя все еще есть доступ, когда сеанс все еще действителен, я хочу ввести ajax , чтобы вызвать сервер для проверки состояния setInterval.на бэкэнде php: проверить, заблокирован ли пользователь, прервать сеанс, дать окно предупреждений и перенаправить.
но проблема теперь в том, что мой код не работает , вот мой вызов ajax, если я откомментирую //console.log('success '); успех будет сохранен в console.log, что означаетвызов - это успех.
<script>
function getUserStatus(){
$.ajax({
type: "POST",
url: 'ajax/ajax.php',
data: {username: '<?php echo $_SESSION['admin_username'] ;?>' },
success: function(response){
//console.log('success');
}
});
}
setInterval(function(){
getUserStatus();
},3000);
</script>
на моей странице ajax.php, я уверен, что соединение с БД работает,
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$admin_username = check_input($_POST['username']);
if( isLocked($admin_username) ){
session_destroy();
echo "<script>window.alert('you had been clicked out');window.location.href='../index.php';</script>";
}
}
функция, чтобы проверить, что пользователь заблокирован
function isLocked($username){
global $connection ;
$query = "SELECT status FROM table where name = '$username' ";
$result = mysqli_query($connection,$query);
confirm($result);
while( $row = fetch_array($result)){
if($row['status'] == 'locked' ){
return true;
}else{
return false;
}
}
}
, еслия напрямую получаю доступ к ajax.php через пользователя журнала, ниже действует действие.
if( isLocked($admin_username) ){
session_destroy();
echo "<script>window.alert('you had been clickedout');window.location.href='../index.php';</script>"; }
не уверен, что не так с моими кодами и как это исправить?
любая помощь / предложение будет высоко оценено.