Comment puis-je empêcher un utilisateur d'accéder à une page quand ils ne sont pas connectés? Je veux qu'il soit redirigé vers la page de connexion. Je sais que cela a quelque chose à voir avec des sessions. P>
4 Réponses :
Quand il se connecte - stocker une variable de session. Ensuite, au début de chaque page si le login est OK p>
Cela fonctionne comme ceci: p>
Bien sûr, tout est très très simple. Dans votre session, vous pouvez conserver un objet utilisateur complexe, ou quoi que ce soit. Bonne chance codage. P>
Que diriez-vous si vous voulez le faire pour un utilisateur pour une certaine URL? S'ils sont connectés ou non.
Comme Svetlozar Angelov a souligné que le code suivant fonctionnerait bien: Cependant .. em> cela ne garantirait pas réellement la page contre les utilisateurs qui souhaitaient vraiment accès. Vous devez faire quelques ajustements: P> if (!isset($_SESSION['nID']))
{
header("Location: login.php");
die();
}
Suivez ces étapes: P>
Créer une page login.php accessible à tout le monde où un utilisateur entre son nom d'utilisateur et son mot de passe dans un formulaire. Ce formulaire doit être soumis à Login.php lui-même. (action = 'login.php'). Inclure également une variable cachée de votre formulaire qui suit si le formulaire a été soumis. P>
Si la variable cachée est définie, vérifiez si le nom d'utilisateur ( Si ce n'est pas le cas, rechargez le login.php comme ceci: p>
Inclure maintenant login.php dans chaque page utilisateur que vous créez. Supposons que vous écriviez une application de messagerie, créez une boîte de réception.php comme celle-ci p>
maintenant, login.php vérifiera si la variable de session 'utilisateur' est définie et autorise l'accès aux utilisateurs autorisés uniquement. P> _ POST ['User'] code>) existe dans votre dB et que le mot de passe correspond au nom d'utilisateur. Si tel est le cas, stockez le nom d'utilisateur dans une variable de $ _session comme celle-ci: p>
$ _ session ['nom d'utilisateur'] = $ _post ["utilisateur ']; code> p>
écho 'en-tête ("login.php")'; // Vous n'auriez pas dû faire écho à rien avant cette code> p>
inclure ("login.php") code> p>
Comment savez-vous si les utilisateurs sont actifs ou non? Quelles variables sont définies?
1 astuce supplémentaire si vous n'êtes pas encore implémenté: Après avoir vérifié si la session d'utilisateur existe ou non, vérifiez si la variable postale provenait d'une demande et d'un accès direct. Le but est d'empêcher l'accès direct public de votre page PHP (si elles ont un aperçu de l'informatique) et des fonctions indésirables ont été exécutées.