Есть код
<? if ($_SESSION['steamid'] = "YES") {
echo '<a href="logout.php"><input type="image" src="img/logout.png"></a>';
}else { include ('steam_auth.php'); }?>
Оно всегда выдаёт картинку из img/logout.png
а в logoutp.php написано:
<?
session_start();
unset($_SESSION['steamid']);
session_destroy();
header ("Location: index.php");
exit;
?>
Почему у меня сессия не unset'ается?
Все верно ты присваиваешь YES потом чистишь сессию потом снова присваиваешь YES
У вас в первой строчке вместо оператора сравнения используется оператор присвоения:
<? if ($_SESSION['steamid'] = "YES") {
То есть вы каждый раз присваиваете переменной $_SESSION['steamid']
значение YES
, которое проверяется на истинность и поскольку строка YES
приводится к булеву типу и равно истине, то вы всегда ходите по кругу.
Нужно исправить проверку аутентификации путем добавления еще двух знаков равенства:
<? if ($_SESSION['steamid'] === "YES") {
Это частая ошибка, причем даже опытных разработчиков. Просто на внимательность проверка. В некоторых стандартах кодирования есть даже правило смены мест операндов. Вот если так написать ваше условие и допустить опечатку, то будет системная ошибка, которая сразу укажет место и сэкономит уйму времени:
<? if ("YES" === $_SESSION['steamid']) {
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Отказывается работать phpword при создании файла на основе шаблонаВыдаёт ошибки
Всем привет! Есть массив, который приходит на view:
Ковыряюсь со старым движком ShopScriptНа странице есть цикл