php实现登录功能
创建登录表单
在HTML中创建一个表单,包含用户名和密码输入框。表单的action属性指向处理登录的PHP文件,method设置为POST。
<form action="login.php" method="POST">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
处理登录请求
在login.php文件中,接收表单提交的用户名和密码,并进行验证。
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
// 验证用户名和密码
if ($username === 'admin' && $password === '123456') {
$_SESSION['username'] = $username;
header('Location: dashboard.php');
exit();
} else {
echo '用户名或密码错误';
}
?>
使用数据库验证
更安全的做法是从数据库中验证用户信息。首先创建一个数据库连接。
<?php
$host = 'localhost';
$dbname = 'your_database';
$user = 'your_username';
$pass = 'your_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}
?>
在login.php中使用预处理语句查询数据库。
<?php
session_start();
require 'db_connect.php';
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header('Location: dashboard.php');
exit();
} else {
echo '用户名或密码错误';
}
?>
密码哈希
在注册用户时,使用password_hash函数对密码进行哈希处理。
<?php
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->execute([$username, $hashedPassword]);
?>
保护会话
在受保护的页面(如dashboard.php)中检查用户是否已登录。
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit();
}
echo '欢迎, ' . $_SESSION['username'];
?>
注销功能
提供一个注销按钮,销毁会话并重定向到登录页面。

<?php
session_start();
session_destroy();
header('Location: login.php');
exit();
?>






