Не используйте суперглобальный массив $_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 ); |