Backstory
Раньше я размещал свой сайт на выделенном сервере GoDaddy. Обычно я (при успешном входе пользователя в систему) применяю что-то к переменной _SESSION
, чтобы определить, что пользователь успешно вошел в систему, например
if ($_SESSION['user_logged_in'] == true) {
// did stuff here
}
. Обычно я применяю что-то подобное в верхней части страницы, чтобы если пользователь не вошел в систему, он перенаправит их куда-то еще, например ...
<?php
if ($_SESSION['user_logged_in'] != true) {
// direct them to log in
header("Location: http://www.example.com/login");
die();
} else {
// user is logged in so show them stuff
}
?>
Я перехожу из GoDaddy в AWS и создаю свой собственный экземпляр EC2 с Apache и т. д. , Теперь, когда я обращаюсь к страницам, когда пользователь не вошел в систему, я получаю сообщения об ошибках типа
Notice: Undefined index: user_logged_in in /var/www/html/index.php on line X
Я понимаю, почему я получаю это сообщение, поскольку технически, поскольку пользователь не вошел в систему, а переменная сеанса не имеет был создан.
но ....
Мой первый вопрос: есть ли в apache параметр, который игнорирует, установлена ли переменная сеанса, чтобы не отображать ошибку? Я никогда не получал это сообщение, когда был с GoDaddy, поэтому я предполагаю, что так.
Во-вторых, каковы риски безопасности, связанные с неиспользованием чего-то вроде if (isset($_SESSION['variable'])
для определения, существует ли переменная сеанса или нет?
Не будет ли использование чего-то вроде if ($_SESSION['user_logged_in'] != true) {
тем же самым?