2013-03-05 3 views
0

Я работаю с страницей login.php. при входе пользователей успешно, система сохранит их имена пользователей в session.like ниже код:php не может прочитать значение сеанса

if ($user != null) { 
    $_SESSION['username'] = $user["username"]; 
    $_SESSION['userid'] = $user["id"]; 
    return 0; 
} 

Тогда страница будет находиться в main.php. main.php прочтет сессию, как показано ниже код:

session_start(); 
if (isset($_SESSION['username']) == false || empty($_SESSION['username'])) 
{ 
    // transfer into login page 
} 
else 
{ 
    echo $_SESSION['username']; 
} 

Основная страница не может прочитать $ _SESSION [ «имя пользователя»], значение равно нулю. Что мне теперь делать?

+4

ли вы положили 'session_start();' на верхней части страницы, где вы 'SET' значения сеанса. т.е. login.php? –

+0

Что возвращает var_dump ($ _ SESSION)? –

+0

if (! Isset ($ _ SESSION ['username']) || empty ($ _ SESSION ['username'])) –

ответ

2

Вы должны добавить session_start() на странице условий проверки $user.

session_start(); 
if ($user != null) 
{ 
    $_SESSION['username'] = $user["username"]; 
    $_SESSION['userid'] = $user["id"]; 
    return 0; 
} 
+0

Из кода $ user всегда будет NULL, верхний код отсутствует! –

+0

@WaqarAlamgir, как вы можете так сказать. ?? или вы можете сказать, может быть $ user is null –

+0

Это работает. Есть ли ярлык для того, чтобы не писать «session_start()» везде? В настоящее время я пишу этот код во включенном файле. –

1

Вы должны добавить session_start() при использовании SESSION переменной

session_start(); //at the beginning of file 

if ($user != null) { 
    $_SESSION['username'] = $user['username']; 
    $_SESSION['userid'] = $user['id']; 
    return 0; 
} 

, а затем

session_start(); 

if (isset($_SESSION['username'])) { 
    // transfer into login page 
} 
else 
{ 
    echo $_SESSION['username']; 
} 
1

Если вы хотите переменной сеанса пользователя. вы должны начать сеанс перед использованием переменной сеанса.

session_start(); 
if ($user != null) { 
    $_SESSION['username'] = $user["username"]; 
    $_SESSION['userid'] = $user["id"]; 
    return 0; 
} 
0
session_start(); 
if (count($user)>0 and is_array($user)) { 
    $_SESSION['username'] = $user["username"]; 
    $_SESSION['userid'] = $user["id"]; 

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