In der Webentwicklung ist die Umleitung von Seiten nach der Benutzeranmeldung eine sehr häufige Funktion. Mit PHP können wir den Anmeldestatus des Benutzers über Session_Start () verwalten und dann die Header () -Funktion kombinieren, um die Seitenumleitung zu realisieren. In diesem Artikel wird erläutert, wie diese Funktion Schritt für Schritt implementiert werden kann.
Session_start ()
Session_Start () ist eine Methode, die in PHP verwendet wird, um eine Sitzung zu starten. Es speichert Benutzerinformationen auf der Serverseite, z. B. Benutzername, Benutzer -ID usw., um denselben Benutzer in mehreren Anforderungen zu identifizieren.
Header ()
Header () ist eine Funktion, die von PHP zum Senden von RAW -HTTP -Header -Informationen verwendet wird. Eine der gemeinsamen Verwendungen besteht darin, einen Standort -Header zu senden, mit dem der Browser auf eine andere Seite springen kann.
Müssen beachten:
Header () muss aufgerufen werden, bevor Sie etwas ausgeben, einschließlich Leerzeichen oder HTML.
Session_Start () sollte ebenfalls vor einer Ausgabe aufgerufen werden.
Angenommen, wir haben ein einfaches Anmeldeformular, und nachdem wir erfolgreich angemeldet sind, müssen wir auf die persönliche Homepage des Benutzers springen.
<?php
// Offen session
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Benutzeranmeldung</title>
</head>
<body>
<form method="post" action="login_process.php">
Benutzername: <input type="text" name="username"><br>
Passwort: <input type="password" name="password"><br>
<input type="submit" value="Einloggen">
</form>
</body>
</html>
<?php
session_start();
// 模拟的Benutzername和Passwort
$correct_username = 'admin';
$correct_password = '123456';
// Holen Sie sich die eingereichten Daten
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// 检查Benutzername和Passwort是否正确
if ($username === $correct_username && $password === $correct_password) {
// Einloggen成功,aufstellen session
$_SESSION['username'] = $username;
// Springen Sie auf die Benutzer -Homepage
header('Location: https://m66.net/user_home.php');
exit;
} else {
// Einloggen失败,跳转回Einloggen页
header('Location: https://m66.net/login.php?error=1');
exit;
}
?>
<?php
session_start();
// 检查是否已Einloggen
if (!isset($_SESSION['username'])) {
// 如果没有Einloggen,跳转到Einloggen页面
header('Location: https://m66.net/login.php');
exit;
}
$username = $_SESSION['username'];
?>
<!DOCTYPE html>
<html>
<head>
<title>Willkommen,<?php echo htmlspecialchars($username); ?></title>
</head>
<body>
<h1>Willkommen回来,<?php echo htmlspecialchars($username); ?>!</h1>
<p><a href="logout.php">退出Einloggen</a></p>
</body>
</html>
<?php
session_start();
session_unset();
session_destroy();
// 跳转回Einloggen页面
header('Location: https://m66.net/login.php');
exit;
?>
Rufen Sie Header () und Session_start () vor der Ausgabe auf
Solange auf der Seite (einschließlich HTML, Leerzeichen, Linienbrüche usw.) Ausgabe vorhanden ist, meldet Header () und Session_start () einen Fehler. Stellen Sie sicher, dass sie oben in der Datei aufgerufen werden.
Sicherheit <br> Im Beispielcode werden der Benutzername und das Passwort tot geschrieben. In den tatsächlichen Projekten sollten sie aus der Datenbank abgerufen werden und die Verschlüsselung (z. B. password_hash () und password_verify ( ) verwendet werden.
Melden Sie sich an <br> Reinigen Sie die Sitzung beim Verlassen, andernfalls existiert der Benutzerstatus noch, auch wenn Sie zur Anmeldeseite zurückkehren.