2010-12-07 4 views
1

J'ai une question concernant les systèmes de connexion PHP. Est-il possible d'avoir un système de connexion dans un autre système de connexion?Double connexion PHP System

Voici un exemple: Je me connecte à un site et PHP crée la session. Je veux ensuite accéder à une autre page avec un contenu plus sécurisé, donc je demande à l'utilisateur de retaper son nom d'utilisateur/mot de passe pour accéder à cette page. Est-ce que cela peut être fait en utilisant différentes sessions ou la même session?

Ce serait génial si la session d'origine n'est pas terminée, donc une fois que l'utilisateur finit sur la page avec le contenu plus sécurisé, il peut continuer à utiliser les pages précédentes. J'espère que cela a du sens, toute information qui pourrait me pointer dans la bonne direction serait grandement appréciée!

Répondre

1

Cela peut être fait en utilisant la même session.

Faites juste quelque chose comme ceci une fois qu'ils se sont connectés dans la deuxième zone.

$_SESSION['secondArea'] = TRUE; 

Vous pouvez unset() que lorsqu'ils se déconnectent de la seconde zone.

3

Bien sûr que c'est possible. Conservez simplement le type d'authentification que l'utilisateur a déjà effectué.

Comme:

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

Après cela, vous pouvez vérifier ce type d'utilisateur d'authentification ont eu:

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

Etc ...

0

Si vous souhaitez que votre utilisateur de se connecter dans une fois de plus chaque fois ils afficher le contenu, vous pouvez utiliser un formulaire de connexion POST, puis avant d'afficher les données sur la page, vérifiez le nom d'utilisateur POSTed et pa ssword avant d'afficher le contenu.

par exemple. (en pseudocode)

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

Vous pouvez utiliser la même session - identifiée par le même cookie de son côté. Mais il suffit de définir et de vérifier différentes variables de session pour représenter les différents états de connexion: $_SESSION['hasUserAccess'] et $_SESSION['hasAdminAccess'].

Ou peut-être: $_SESSION['accessStatus'] qui peut avoir des valeurs comme 'public', 'user', 'admin'.

0

Si vous voulez le sécuriser encore plus, je vous recommande d'utiliser MD5 pour la session. Crypter le MD5 et le stocker (pour le nom d'utilisateur uniquement), puis enregistrez-le. Votre serveur connaît donc le décryptage.

Cela rend très difficile à quelqu'un de l'intercepter.