2012-01-23 4 views
0

У меня две страницы logout.php с сеансом. 1 для панели пользователя, а другая - панель администратора. Так что я использовал следующий код для выхода.PHP выходите с вопросом сеанса

Для выхода из системы администратора.

<?php 
include("include/session.php"); 
include("db.php"); 
unset($_SESSION['uname_ad']); 
?> 

Для выхода из системы пользователя

<?php 
include("include/session.php"); 
include("db.php"); 
unset($_SESSION['uname']); 
?> 

Так безопасен ли он подписать с PHP?

ответ

3

Я бы уничтожить всю сессию ...

session_destroy();

+0

Спасибо за ваш ответ @Daid Nguyen. Но если я использую session_destroy(), то обе переменные будут уничтожены. Так что пользователь и администратор выходят из системы. – user1161867

+0

любой ответ @ Давид Нгуен. – user1161867

+0

Почему бы их рассматривать отдельно? –

2

Я думаю, вы также можете использовать

session_destroy(); 
header("location:index.php"); 
+2

Всегда вызывайте 'exit'' после перенаправления заголовка 'Location'. – FtDRbwLXw6

+0

Спасибо за ваше предложение @arascanakin. – user1161867

0

Это может быть немного безопаснее использовать другой session_name как для вашего администратор и пользовательские сеансы. Таким образом, вы можете уничтожить целую сессию пользователя/администратора и не повлиять на другую.

Он будет использовать отдельный файл cookie для администратора и пользователя, и вы можете войти в систему одновременно как администратор, так и пользователь, но оба сеанса будут изолированы друг от друга.

См session_name()

+0

Если я уничтожу сессию с session_destroy(), то обе переменные будут уничтожены. Так что пользователь и администратор выходят из системы. Как сделать это для разделения – user1161867

+0

Технически, поскольку вы меняли бы имя сеанса между сеансами администратора и пользователя, только один из них использовался бы одновременно. Поэтому, если вы использовали admin с именем session_name ('admin'), session_destroy() уничтожает имя сеанса администратора только потому, что он активен. Другой остался один. – drew010

0

Вы должны всегда regenerate the session identifier при изменении прав доступа пользователя, поэтому, если вы собираетесь поддерживать оба администратора и сеанса пользователя данные в пределах одной и той же сессии, вы должны регенерировать идентификатор, когда один или другие журналы из ,

+0

@ drrcknish..can u дайте мне пример, пожалуйста ... – user1161867

+0

@ user1161867: Попробуйте сами. Проведите небольшое исследование. Если вы все еще не можете понять это, покажите нам, что вы пробовали, а что нет, и мы поможем вам. – FtDRbwLXw6

+0

Другими словами, уничтожить и воссоздать сеанс –

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