在PHP中实现简单的登录验证,通常涉及以下几个步骤:
以下是一个简单的示例代码,展示了如何实现这一过程:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login Form</title>
</head>
<body>
<h2>Login Form</h2>
<form action="login.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>
<?php
// 连接到数据库
$servername = "localhost";
$username = "root";
$password = ""; // 如果你的数据库有密码,请在这里填写
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 检查表单是否已提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 获取用户输入的用户名和密码
$username = $_POST['username'];
$password = $_POST['password'];
// 准备SQL查询
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
// 输出用户信息
$row = $result->fetch_assoc();
if ($row['password'] == $password) {
// 密码匹配,登录成功
echo "Login successful! Welcome, " . $username . ".";
} else {
// 密码不匹配,登录失败
echo "Invalid password.";
}
} else {
// 用户名不存在
echo "No such user.";
}
// 关闭数据库连接
$stmt->close();
$conn->close();
}
?>
确保你已经创建了一个数据库和一个用户表,并且表中有一个字段用于存储密码(通常使用哈希值)。
CREATE DATABASE myDB;
USE myDB;
CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(255) NOT NULL
);
将HTML表单保存为一个文件(例如login.html
),将PHP处理脚本保存为login.php
,并确保它们位于同一个Web服务器目录中。然后通过浏览器访问login.html
,尝试登录。
password_hash()
)来存储和验证密码。prepare
和bind_param
)可以有效防止SQL注入攻击。