2014-11-27 4 views
0


проверить, если сессия существует и имеет определенное значение

я пытаюсь проверить, если сессия существует и имеет определенное значение (2), чтобы показать часть веб-сайта, и если не он должен вернуть вас к другой страница.

До сих пор я получил это:

$_SESSION["deel"] = "2"; //set session deel to 2 
$result = array("error" => false, "html" => null); 
$result["error"] = false; 
$result["html"] = "<h3>Session information:"; 
$result["html"] .= "<a href='/shop/?,69'>$_SESSION[class2C]</a>"; 
$result["html"] .= "</h3>"; 

после этого перейти к другой странице:

if (!isset($_SESSION['deel']) || $_SESSION['deel'] == '2') 
{ show the shit } 
else 
{ redirect } 

Однако, это ничего не делать и просто показывает меня « shit "
Что я здесь делаю неправильно?

Заранее спасибо.

+2

Как насчет session_start() перед использованием сеанса? – Rizier123

+0

это только часть общего скрипта, и да, сеанс начинается. в вышеприведенных сценариях и в этом файле. – Justin

+1

Тогда почему вы проверяете, установлен ли сеанс ['deel'] ИЛИ он равен 2? Так что если он не установлен, вы показываете sh * t, но если он установлен и равен 2, вы также показываете sh * t – Rizier123

ответ

2

Ваше состояние неправильно

if (!isset($_SESSION['deel']) || $_SESSION['deel'] == '2') 
    ^      ^^ 

средств, если сеанс не установлен или если он установлен, то значение равно 2, это будет справедливо, даже если нет сессии. Вы должны сделать:

if (isset($_SESSION['deel']) && $_SESSION['deel'] == 2) 

Это также может быть получена из собственного заявления

я пытаюсь проверить, если сессия существует и имеет определенное значение (2)

    ^ ^  ^
if (isset($_SESSION['deel']) && $_SESSION['deel'] == 2) 
+0

damnit, им все еще запутывает! Isset и isset .. не знал, что || в этом случае я думал, что я был чем-то похожим на && – Justin

+0

. К сожалению, вам необходимо пройти этот пост http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php –

+0

' ! 'прежде чем что-то значит« НЕ ». '&&' означает 'AND',' || 'означает' OR'. Это сообщение, которое я упомянул, объясняет все это ясно –

Смежные вопросы