在 PHP 程序中,登錄頁面跳轉后確保內容正常顯示是非常重要的。為了實現這個功能,我們需要在 PHP 文件中使用會話控制和條件判斷來確保用戶登錄后能夠看到相應的內容。
首先,我們需要創建一個簡單的登錄頁面和一個包含登錄驗證的 PHP 文件。假設我們有一個登錄頁面 login.php 和一個處理登錄驗證的文件 checklogin.php。現在我們來編寫這兩個文件的內容。
1. login.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login Page</title> </head> <body> <h2>Login Form</h2> <form action="checklogin.php" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username" required><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password" required><br><br> <input type="submit" value="Login"> </form> </body> </html>
登錄后復制
2. checklogin.php
<?php session_start(); // 模擬數據庫中存儲的用戶名和密碼 $valid_username = 'admin'; $valid_password = '123456'; // 獲取用戶輸入的用戶名和密碼 $username = $_POST['username']; $password = $_POST['password']; // 驗證用戶名和密碼 if ($username === $valid_username && $password === $valid_password) { $_SESSION['username'] = $username; // 將用戶名存儲在會話中 header('Location: dashboard.php'); // 登錄成功跳轉到dashboard.php } else { echo 'Invalid username or password'; // 驗證失敗,輸出錯誤信息 } ?>
登錄后復制
3. dashboard.php
<?php session_start(); if (!isset($_SESSION['username'])) { header('Location: login.php'); // 如果沒有登錄,則跳轉到登錄頁面 } $username = $_SESSION['username']; // 從會話中獲取用戶名 ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dashboard</title> </head> <body> <h2>Welcome, <?php echo $username; ?></h2> <p>This is the dashboard page.</p> </body> </html>
登錄后復制
在這段代碼中,我們首先創建了一個簡單的登錄頁面 login.php,用戶需要輸入用戶名和密碼后提交表單。提交后,會將表單數據發送到 checklogin.php 文件中進行驗證。如果用戶名和密碼匹配,會將用戶名存儲在會話中,并跳轉到 dashboard.php 頁面。在 dashboard.php 頁面中,我們首先啟動會話,并通過會話中存儲的用戶名來判斷用戶是否已經登錄,如果沒有登錄則跳轉回登錄頁面。
這樣,當用戶登錄成功后,就可以訪問到 dashboard.php 頁面,并顯示歡迎信息。這就是如何在 PHP 中實現登錄頁面跳轉后確保內容正常顯示的方法。