Мне интересно, действительно ли это безопасно, что я сделал. Однако есть одна ошибка, например, выход из системы. Меня зовут после isset.
здесь для входа в систему, и это успешно. → login.php
session_start();
if($loginRow === 1) {
$_SESSION['login'] = true;
$_SESSION['username'] = $username;
header ("Location: index");
} else {
echo "Invalid Login Information";
}
А также получить имя пользователя внутри. Это хорошо работает. → index.php
session_start();
if($_SESSION['login'] = "1") {
echo $_SESSION['username'];
echo "<a href=\"logout\"> Logout </a>";
} else {
echo "<a href=\"register\"> Register </a>";
}
и выход из системы → logout.php
session_start();
unset($_SESSION['login']);
$_SESSION['login'] = 0;
header ("Location: index");
Почему после того, как я вышел из системы, мое имя все еще там? Я думал, что он разрушен? А также вы можете проверить, есть ли способ сделать его более безопасным? Направляй меня, спасибо!
Я знаю, что я не добавил расширение, потому что использую htaccess. Так что это не проблема.
сначала вы пропустите == в этой строке if($_SESSION['login'] = "1") {
//if($_SESSION['login'] == "1") {
а также отключить $_SESSION['username']
logout.php добавить это
unset($_SESSION['username']);
У вас есть ошибка здесь: if($_SESSION['login'] = "1")
Это должно быть, if($_SESSION['login'] === TRUE)
Единственный = просто устанавливает его в 1, который всегда будет возвращаться правда
Это должно быть, if($_SESSION['login'] == 1)
или if($_SESSION['login'] == true)
или if($_SESSION['login'])