2016-03-21 3 views
-3

У меня есть 2 файла, на мой основной index.php у меня есть:PHP Войти состояние сеанса не меняется

<?php 
session_start(); 
$_session['login']=false; 
?? 

У меня есть другой PHP файл, где я хранить Navbar в этом файле PHP я есть

if ($_SESSION['login']==true) { ?> 
    show this menu.. user is logged in. 
    <?php }else { <? 
    show this one, not logged in. 
    <?php } ?> 

в моем login.php я просто:

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

так почему это, что, когда я называю файл login.php (по нажатию кнопки), что С.Е. Состояние ssion не изменяется?

+2

$ _session! = $ _SESSION. PHP-переменные чувствительны к регистру. – Devon

+3

'$ _session' является суперглобальным и ДОЛЖЕН быть в верхнем регистре. –

+0

За исключением вышесказанного, почему вы объявляете тэг php для КАЖДОЙ ОДНОЙ ЛИНИИ? – frosty

ответ

0

Во-первых, все файлы, которые вы используете $ _SESSION необходимо вставить перед всем кодом «session_start()»

0

Суперглобальные в PHP должны быть записаны в верхнем регистре. Поэтому это должно быть в верхнем регистре:

$_session['login']=false; 

Как это:

$_SESSION['login']=false; 
1

$_session является суперглобальный и должны быть в верхнем регистре.

Ссылка:

и проверив на наличие ошибок бросили бы вам кое-что об этом.

вы также должны убедиться, что сессия была начата во всех файлов с помощью сессий.

Ссылка:

Вы также 2x ?? который я не, если это часть вашего реального кода.

Если да, то это необходимо прочитать как ?>.

Sidenote:

Это всегда лучше, чтобы проверить, если сеанс установлен, а затем просто проверить, если это true|false.

т.е .:

if (isset($_SESSION['login']) && $_SESSION['login']==true) 

или (не пусто)

if (!empty($_SESSION['login']) && $_SESSION['login']==true) 
0

хорошо выглядит как я решить мою проблему .. один из тех моментов FACEPALM. Я не проверял, был ли сеанс уже установлен, и поэтому я возвращал его обратно в 0, когда index.php обновился.спасибо, что позволил мне знать, что это должно быть в столицах, не знал об этом. поэтому добавив это в начало моего index.php, он решил:

<?php 
session_start(); 
if (!isset($_SESSION['login'])) { 
    $_SESSION['login']=0; 
} 

?> 
+0

что-то, о чем я думал, даже до того, как увижу ваш ответ ;-) просто сформулировал немного по-другому. –

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