2013-07-10 2 views
-2

В php4 следующий синтаксис используется для сохранения значений в сеансах:сохранить массив в переменной сессии

<?php 
    $userSession[auth] = "ok"; 
    $userSession[loginid] = $loginId; 
    $userSession[firstName] = $firstName; 
    $userSession[lastName] = $lastName;   
    session_register("userSession"); 
?> 

Я хотел бы знать, что лучшие практики для использования сессий в php5.

+3

Этот вопрос, как представляется, не по теме, потому что речь идет о чтении руководства: http://php.net/manual/en/book.session.php – PeeHaa

+0

Как было отмечено в нескольких ответах ниже, вы должны сначала вызовите 'session_start()'. Причина в том, что 'session_register()' implictly вызывает 'session_start()'. Поскольку вы удаляете эту функцию (которая теперь удалена из PHP> = 5.4), вам нужно явно вызвать 'session_start()', прежде чем вы сможете работать с '$ _SESSION' –

+1

Кажется странным обозначать это как не по теме. Похоже, пользователь пытается обновить приложение php4 или раннего php 5, чтобы быть более совместимым с php 5 и хочет узнать лучшие практики для использования сеансов сейчас. – AndrewPK

ответ

2

Вместо загрузки массива в сессии таким способом, вы можете захотеть, чтобы просто рассмотреть вопрос о включении этих элементов в сама сессия:

session_start(); 
$_SESSION['auth'] = "ok"; 
$_SESSION['loginid'] = $loginId; 
$_SESSION['firstName'] = $firstName; 
$_SESSION['lastName'] = $lastName; 
+0

Спасибо за ответ! – Oualid

3

Вы можете просто сделать:

$_SESSION['userSession'] = $userSession; 

Как прокомментировал @Fallen, не забудьте сделать session_start() первым.

В качестве примечания, вы должны процитировать строки, используемые в качестве ключей в массиве:

$userSession["auth"] = "ok"; 
+1

OP: не забудьте начать сеанс :) – Fallen

+0

Спасибо за ответ! – Oualid

2

Вы не должны использовать session_register! Вы можете просто читать/писать с $_SESSION.

session_start(); 

$_SESSION['userSession'] = array(
    "auth" => "ok", 
    "loginid" => $loginId, 
    "firstName" => $firstName, 
    "lastName" => $lastName 
); 
+0

Спасибо за ответ! – Oualid

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