Dans le développement Web, la redirection des pages après la connexion de l'utilisateur est une fonctionnalité très courante. À l'aide de PHP, nous pouvons gérer l'état de connexion de l'utilisateur via session_start () , puis combiner la fonction d'en-tête () pour réaliser la redirection de la page. Cet article expliquera comment implémenter cette fonction étape par étape.
session_start ()
Session_Start () est une méthode utilisée dans PHP pour démarrer une session. Il enregistrera les informations de l'utilisateur côté serveur, telles que le nom d'utilisateur, l'ID utilisateur, etc., afin d'identifier le même utilisateur dans plusieurs demandes.
en-tête ()
Header () est une fonction utilisée par PHP pour envoyer des informations d'en-tête HTTP brutes. L'une des utilisations courantes consiste à envoyer un en-tête d'emplacement , qui permet au navigateur de passer à une autre page.
Besoin de noter:
En-tête () doit être appelé avant de sortir quoi que ce soit, y compris les espaces ou le HTML.
Session_start () doit également être appelé avant toute sortie.
Supposons que nous ayons un formulaire de connexion simple, et après la connexion avec succès, nous devons passer à la page d'accueil personnelle de l'utilisateur.
<?php
// Ouvrir session
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Connexion de l'utilisateur</title>
</head>
<body>
<form method="post" action="login_process.php">
nom d'utilisateur: <input type="text" name="username"><br>
mot de passe: <input type="password" name="password"><br>
<input type="submit" value="Se connecter">
</form>
</body>
</html>
<?php
session_start();
// 模拟的nom d'utilisateur和mot de passe
$correct_username = 'admin';
$correct_password = '123456';
// Obtenez les données soumises
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// 检查nom d'utilisateur和mot de passe是否正确
if ($username === $correct_username && $password === $correct_password) {
// Se connecter成功,installation session
$_SESSION['username'] = $username;
// Sautez la page d'accueil de l'utilisateur
header('Location: https://m66.net/user_home.php');
exit;
} else {
// Se connecter失败,跳转回Se connecter页
header('Location: https://m66.net/login.php?error=1');
exit;
}
?>
<?php
session_start();
// 检查是否已Se connecter
if (!isset($_SESSION['username'])) {
// 如果没有Se connecter,跳转到Se connecter页面
header('Location: https://m66.net/login.php');
exit;
}
$username = $_SESSION['username'];
?>
<!DOCTYPE html>
<html>
<head>
<title>accueillir,<?php echo htmlspecialchars($username); ?></title>
</head>
<body>
<h1>accueillir回来,<?php echo htmlspecialchars($username); ?>!</h1>
<p><a href="logout.php">退出Se connecter</a></p>
</body>
</html>
<?php
session_start();
session_unset();
session_destroy();
// 跳转回Se connecter页面
header('Location: https://m66.net/login.php');
exit;
?>
Appel en tête () et session_start () avant la sortie
Tant qu'il y a une sortie sur la page (y compris HTML, Spaces, Line Breaks, etc.), Header () et Session_Start () rapporteront une erreur. Assurez-vous qu'ils sont appelés en haut du fichier.
Sécurité <br> Dans l'exemple de code, le nom d'utilisateur et le mot de passe sont écrits morts. Dans les projets réels, ils doivent être récupérés à partir de la base de données et du chiffrement utilisés (tels que mot de passe_hash () et mot de passe_verify () ).
Déconnectez <br> Assurez-vous de nettoyer la session à la sortie, sinon l'état de l'utilisateur existera toujours même si vous revenez à la page de connexion.
Étiquettes associées:
header