在Web開發中,用戶登錄和註銷是最基本也是最重要的功能之一。本文將通過一個簡單的示例,詳細介紹如何使用PHP函數實現完整的用戶登錄和退出流程。
首先,需要建立一個數據庫來保存用戶的用戶名和密碼。以下是創建數據庫及數據表的示例SQL代碼:
CREATE DATABASE user_info; USE user_info; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL );
接著,需要一個登錄表單頁面,用於採集用戶輸入的賬號與密碼。
<!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <form action="login.php" method="POST"> <label for="username">Username:</label> <input type="text" name="username" id="username" required><br> <label for="password">Password:</label> <input type="password" name="password" id="password" required><br> <input type="submit" value="Login"> </form> </body> </html>
用戶提交表單後,將跳轉到登錄處理頁。這個頁面會校驗賬號密碼,並開啟Session。
<?php session_start(); // 獲取表單數據 $username = $_POST['username']; $password = $_POST['password']; // 連接數據庫 $mysqli = new mysqli('localhost', 'username', 'password', 'user_info'); // 查詢用戶信息 $query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = $mysqli-> query($query); // 判斷登錄狀態if ($result->num_rows == 1) { $_SESSION['username'] = $username; header('Location: welcome.php'); } else { echo 'Invalid username or password.'; } ?>
登錄成功後跳轉至歡迎頁,如果未登錄則自動重定向回登錄頁面。
<?php session_start(); if (isset($_SESSION['username'])) { $username = $_SESSION['username']; echo "Welcome, $username! "; echo '<a href="logout.php"> Logout '; } else { header('Location: login.php'); } ?>
用戶點擊註銷後,應清除Session並跳轉回登錄頁。
<?php session_start(); session_unset(); session_destroy(); header('Location: login.php'); ?>
通過PHP結合MySQL數據庫,可以快速實現一個簡單的用戶登錄與註銷功能。建議在實際項目中對密碼進行加密存儲(如使用password_hash() )、增加驗證碼功能,並使用預處理語句(Prepared Statements)防止SQL注入,以增強系統安全性。