Я написал блок кода, чтобы определить, вошел ли пользователь в систему, и их сеанс не был отключен. Если они не вошли в систему или они неактивны, они отправляются на страницу logout.php, которая обновляет базу данных и разрушает сеанс, а затем возвращает их на страницу входа.Как предотвратить выполнение PHP-кода после перенаправления заголовка?
Вопрос, который у меня есть, далее по странице - это код для выполнения различных действий, когда пользователь отправляет формы. Поскольку перенаправление header() - это фактически первый бит кода на странице, и я ожидаю, что сервер будет работать через код сверху вниз, это немного умудрит меня, если я удалю submit на форме и выйду из системы, потому что Я был неактивен, когда я возвращаюсь к внесенным изменениям. Этого не должно быть.
Код:
//check if the userID has been set (is set at login)
if(isset($_SESSION['userID'])){
//some code here to get variables from the DB
//then check that the last recorded activity was not more than x minutes ago
if(time() - $_SESSION['lastActivity'] < 1800){
//update the $_SESSION['lastActivity'] variable
} else {
header('Location: logout.php'); //inactive, send to logout page
}
} else {
header('Location: logout.php'); //not logged in, send to logout page
}
if(isset some post variable){
//update database
}
Это последнее, если оператор не должен работать, если я не вошли в систему или не обновлять страницу в более чем 30 минут, но это делает. Может ли кто-нибудь помочь мне, почему и как его предотвратить? Я имею в виду, я знаю, что могу обернуть весь последующий код в условии if (isset ($ _ SESSION ['userID])), но это кажется громоздким, и, безусловно, первый блок кода должен иметь дело с пользователями, которые не вошли должным образом в систему?
Заранее спасибо
** [exit()] (http://php.net/manual/en/function.exit.php) ** – andrew