2013-12-07 6 views
0

У меня есть код ниже, который не дает никаких ошибок, но он только когда-либо отображает кнопку «Выход», мне больше нечего сказать.PHP IF для отображения HTML на основе session isset

<?php 
    if(isset($_SESSION)):?> 
      <a href="endsession.php"><div class= "buttons feature">Logout</div></a> 
    <?php  
    else:?> 
     <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'"><div class= "buttons feature">LOGIN</div></a> 

    <?php endif; 
?> 

Кнопка Выход работает:

<?php 
session_start(); 
session_destroy(); 
?> 

И у меня есть код в моей главной странице, которая отображает значения, хранящиеся в сессии, на основе, если сеанс Исеть, так что я знаю, что это разрушает сессии , и когда я вошел в систему, он установлен.

Я просто не понимаю, почему он всегда отображает только html из if, если сеанс не существует.

Я, наверное, сделал глупую ошибку, извините, если у меня есть.

Все оцененная помощь -Tom

+1

Сессии также включают в себя имя, как '$ _SESSION [ 'имя'] ', так что вы вероятно, не установил это. Например '$ _SESSION ['name'] = 'Something';', а затем использовать его позже с 'echo $ _SESSION ['name']'. – Aborted

+0

Это проверка сессии в целом, я не проверяю определенную переменную сеанса, которую я установил. Также я не совсем понимаю, что вы имеете в виду, вы говорите, что сеансы имеют имя, а затем просто «как $ _SESSION» вместо «like $ _SESSION ['Name']" – Vereonix

+0

Переменная '$ _SESSION' всегда задана, но вы действительно должны использовать его, как массив, и передавать ключи со значениями в нем, чтобы ваша логика имела смысл. \ – Aborted

ответ

-1

Переменная $_SESSION всегда устанавливается - независимо от того, если вы настроите сессию или нет. Вы должны действительно что-то сделать в массиве $_SESSION, чтобы получить результаты. Например, после успешного входа в систему выполните следующие действия:

$_SESSION['is_logged_in'] = true; 

И тогда вы можете проверить

if(isset($_SESSION['is_logged_in'])) 

где вы хотите (вместо вашего if(isset($_SESSION))).

+0

ах спасибо, я знал, что это будет глупая ошибка. – Vereonix

+0

Не беспокойтесь, попробовал, но сказал, что мне нужно подождать 4 минуты. – Vereonix

+0

Это не описывает, как фактически отображать HTML-код в случае «истинного». – 8protons

0

попробовать это

if(isset($_SESSION) AND $_SESSION):?> 

       <a href="endsession.php"><div class= "buttons feature">Logout</div></a> 
     <?php  
     else:?> 

     <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'"><div class= "buttons feature">LOGIN</div></a> 

     <?php endif; ?> 
0

Установка $_SESSION

session_start(); 
$_SESSION['logged_in'] = true; 

проверки $_SESSION:

session_start(); 
if(isset($_SESSION['logged_in'])){ 
    echo "logged in"; 
} 
Смежные вопросы