function checkLoggedIn () {
// Return early if we are not logged in. Also, by using empty we
// avoid warnings of the 'undefined index' kind.
if (empty($_SESSION['logged_in'])) {
return false;
}
$handle = YourDbClass::getConnection();
$result = $handle->select()->from('session_id')
->where('session_id=?', $_SESSION['SID'])
->columns('ip');
$check = $result->fetchAll();
if ($check[0]->ip != $_SERVER['REMOTE_ADDR']) { //user has changed networks
// or someone is trying
// to switch cookies on us
return false;
}
return true;
}
Ваш код выглядит довольно хорошо для меня. Я обернул его в функцию, чтобы вам не нужно было дублировать его на каждой странице, просто требуется ваш util.php или все, что вы хотите, чтобы вызвать вашу библиотеку функций. Затем просто вызовите checkLoggedIn (). Если он возвращает false, пользователь не вошел в систему, и вы можете отправить страницу с ошибкой, выйти или что-то еще. Если он вернет true, вы можете продолжить.