2010-12-07 5 views
1

У меня вопрос о системах входа в систему PHP. Возможно ли иметь систему входа в другую систему входа в систему.Двойной вход в систему PHP

Вот пример: Я заходил на сайт и PHP создавал сеанс. Затем я хочу получить доступ к другой странице с более высоким уровнем безопасности, поэтому я попрошу пользователя повторно ввести имя пользователя/пароль, чтобы получить доступ к этой странице.

Можно ли это сделать, используя разные сеансы или ту же сессию? было бы здорово, если исходный сеанс не будет завершен, поэтому, как только пользователь закончит на странице с более защищенным контентом, он сможет продолжать использовать предыдущие страницы.

Надеюсь, что это имеет смысл, любая информация, которая могла бы указать мне в правильном направлении, была бы очень признательна!

ответ

1

Это можно сделать, используя тот же сеанс.

Просто сделайте что-нибудь подобное, как только они войдут во вторую область.

$_SESSION['secondArea'] = TRUE; 

Вы можете unset(), чтобы они вышли из второй зоны.

3

Уверенный возможен. Просто сохраните, какой пользователь аутентификации уже выполнил.

Как:

$_SESSION['auth_type'] = 'first one'; // when user logged in first time 
$_SESSION['auth_type'] = 'more secured one'; // when user logged in second time time 

После этого вы можете проверить, что имели вид пользователя аутентификации:

if ($_SESSION['auth_type'] == 'first one') { 
    // ask for second auth here 
} 

Etc ...

0

Если вы хотите, чтобы ваше пользователю войти в систему еще раз каждый раз, когда просматривают содержимое, вы можете использовать форму входа в систему POST, а затем перед отображением данных на странице проверьте POSTed username и pa ssword перед отображением содержимого.

например. (в псевдокоде)

if request is a POST and username and password are valid: 
    display content 
else: 
    display login form 
0

Вы можете использовать тот же сеанс, определенный одним и тем же файлом cookie на его стороне. Но просто установите и проверьте разные переменные сеанса, чтобы представить различные статусы входа: $_SESSION['hasUserAccess'] и $_SESSION['hasAdminAccess'].

Возможно, например: $_SESSION['accessStatus'], который может иметь такие значения, как 'public', 'user', 'admin'.

0

Если вы хотите обеспечить его еще больше, я бы рекомендовал использовать MD5 для сеанса.

$_SESSION['userAuth'] = 'here-md5-hash'; 

Зашифровать MD5 и сохранить его (только для имени пользователя), а затем сохранить его. Итак, ваш сервер знает дешифрование.

Это очень затрудняет его перехват.

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