La vérification de la connexion est une exigence commune dans le développement Web. Lorsqu'un utilisateur visite une page qui doit être connectée à la visualisation, nous devons généralement déterminer si l'utilisateur s'est connecté et effectuer un traitement correspondant en fonction des résultats du jugement. Si l'utilisateur n'est pas connecté, nous devons rediriger vers la page de connexion. À l'heure actuelle, la combinaison de la fonction d'en-tête et de la fonction ISSet () en PHP est un outil très pratique.
Cet article expliquera en détail comment utiliser la fonction en-tête () et iSSet () pour déterminer l'état de connexion et effectuer le processus complet de redirection.
La fonction d'en-tête () est utilisée pour envoyer les informations d'en-tête HTTP d'origine. Grâce à cette fonction, nous pouvons définir le code d'état HTTP, le type de contenu, le contrôle du cache et d'autres informations, et pouvons également effectuer une redirection de page.
Les usages courants sont:
header("Location: http://www.m66.net/login.php");
exit;
Le code ci-dessus redirigera le navigateur vers http://www.m66.net/login.php . sortie; est pour s'assurer que le script arrête l'exécution après la redirection pour éviter les interférences du code ultérieur.
La fonction ISSET () est utilisée pour détecter si une variable a été définie et sa valeur n'est pas nul . Il est souvent utilisé pour déterminer si l'utilisateur a été connecté ou si un champ de formulaire a été soumis.
if (isset($_SESSION['user_id'])) {
// Utilisateur connecté
}
En PHP, l'état de connexion est généralement maintenu par une session. Lorsque l'utilisateur se connecte, nous enregistrerons les informations pertinentes de l'utilisateur dans la session, comme user_id . Sur la page où vous devez vérifier l'état de connexion de l'utilisateur, nous pouvons utiliser isset () pour déterminer si la variable de session existe. S'il existe, cela signifie que l'utilisateur est connecté; S'il n'existe pas, cela signifie que l'utilisateur n'est pas connecté et que la redirection est requise.
Tout d'abord, assurez-vous de commencer la session en haut de la page. Vous pouvez utiliser session_start () pour démarrer la session. Cette fonction doit être appelée avant toute sortie.
<?php
session_start();
?>
Ensuite, nous pouvons utiliser isset () pour déterminer l'état de connexion de l'utilisateur. Supposons que nous enregistrons user_id dans la session.
<?php
if (!isset($_SESSION['user_id'])) {
// Utilisateur non connecté,Rediriger vers la page de connexion
header("Location: http://www.m66.net/login.php");
exit;
}
?>
Le code ci-dessus implémente la vérification de l'état de connexion. Si $ _Session ['user_id'] n'existe pas (c'est-à-dire que l'utilisateur n'est pas connecté), en-tête () sera exécuté pour la redirection de page vers la page de connexion.
Pour les utilisateurs déjà connectés, nous pouvons leur permettre d'accéder à la page cible ou d'afficher des informations de bienvenue, etc. Par exemple:
<?php
if (isset($_SESSION['user_id'])) {
echo "accueillir,utilisateur " . $_SESSION['user_id'];
}
?>
Voici un exemple complet montrant comment combiner Header () et ISSet () pour déterminer l'état de connexion et le rediriger:
<?php
session_start(); // Démarrer une session
// 判断utilisateur是否登录
if (!isset($_SESSION['user_id'])) {
// 如果utilisateur没有登录,Sautez à la page de connexion
header("Location: http://www.m66.net/login.php");
exit; // Arrêtez d'exécuter le code ultérieur après la redirection
}
// utilisateur已经登录,显示accueillir信息
echo "accueillir您," . $_SESSION['user_id'] . "!";
?>
La fonction d'en-tête () doit être appelée avant toute sortie : parce que l'en-tête () est utilisée pour modifier les informations d'en-tête HTTP, il ne peut y avoir de sortie (y compris les balises HTML, les espaces, l'écho, l'impression, etc.) avant d'appeler Header () . S'il y a déjà une sortie, PHP rapportera une erreur: "Impossible de modifier les informations d'en-tête - En-têtes déjà envoyées".
Fonction de sortie : après l'appel de l'en-tête ("Emplacement: ...") , sortie; doit être utilisé immédiatement pour empêcher l'exécution du code ultérieur, afin de s'assurer que la redirection ne sera pas interférée par d'autres opérations.
Gestion de session : Afin d'assurer l'exactitude des données de session, chaque page doit utiliser session_start () pour démarrer la session. S'il y a plusieurs endroits sur la page qui doivent déterminer l'état de connexion, vous pouvez extraire le code de jugement de connexion dans un fichier PHP séparé et l'inclure en incluant .
Cet article présente comment utiliser la fonction d'en-tête () et la fonction iSSet () dans PHP pour déterminer l'état de connexion et effectuer la redirection de la page. Enregistrez les informations de connexion par le biais de la session et déterminez s'il existe via ISSET (). La redirection des opérations avec la fonction d'en-tête () peut contrôler efficacement les droits d'accès aux utilisateurs et s'assurer que seuls les utilisateurs connectés peuvent accéder au contenu restreint.
Cette méthode convient à la plupart des scénarios d'application Web qui nécessitent une vérification de connexion. J'espère que cet article vous sera utile.