Не используйте суперглобальный массив $_SESSION напрямую.
1 2 | $_SESSION['user'] = $user;$user = $_SESSION['user']; |
Данный способ может породить ряд проблем.
1) Каждый раз при получении пользователя придется проверять на существование данный ключ массива
1 2 3 | if ( isset($_SESSION['user']) ){} |
10 раз обращаетесь к массиву — 10 раз придется использовать isset()
2) Конфликт имен. Сайт может состоять из различных модулей. Например Админка может представлять отдельный модуль. И соответственно может получиться так что $_SESSION['user'] может использоваться и на самом сайте и в админке (с разной логикой).
Избежать подобного можно следующим образом:
(код из видеоурока)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | define('APP_ID' , 'application_admin');function setSession($key, $value){ $k = APP_ID . '_' . $key; $_SESSION[$k] = $value; return true;}function getSession($key){ $k = APP_ID . '_' . $key; if( isset($_SESSION[$k]) ) { return $_SESSION[$k]; } return false;}setSession('userName', 'Ivan');echo 'UserName = ' . getSession('userName');print_r($_SESSION); |