php实现登入
PHP 登录实现方法
创建登录表单
使用 HTML 创建一个简单的登录表单,包含用户名和密码字段。表单的 action 属性指向处理登录的 PHP 文件,method 设置为 POST。
<form action="login.php" method="POST">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<button type="submit">登录</button>
</form>
数据库连接
在 login.php 文件中,首先需要建立与数据库的连接。这里使用 MySQLi 扩展作为示例。
<?php
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
验证用户输入
获取表单提交的用户名和密码,并进行基本的清理以防止 SQL 注入。

$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($conn, $username);
$password = mysqli_real_escape_string($conn, $password);
查询数据库
在数据库中查询匹配的用户名和密码。密码应该以哈希形式存储,使用 password_verify 进行验证。
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row['password'])) {
echo "登录成功";
} else {
echo "密码错误";
}
} else {
echo "用户名不存在";
}
设置会话
登录成功后,使用 PHP 的 session_start 创建一个会话,并存储用户信息。

session_start();
$_SESSION['username'] = $username;
$_SESSION['loggedin'] = true;
密码哈希
在注册用户时,密码应该使用 password_hash 进行哈希处理。
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
安全性增强
为了增强安全性,可以考虑以下措施:
- 使用 HTTPS 协议
- 实现 CSRF 保护
- 设置登录尝试限制
- 使用预处理语句防止 SQL 注入
完整示例代码
<?php
session_start();
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($conn, $username);
$password = mysqli_real_escape_string($conn, $password);
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row['password'])) {
$_SESSION['username'] = $username;
$_SESSION['loggedin'] = true;
header("Location: welcome.php");
} else {
echo "密码错误";
}
} else {
echo "用户名不存在";
}
}
$conn->close();
?>
登出功能
创建一个 logout.php 文件来处理用户登出,销毁会话并重定向到登录页面。
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit();
?>
通过以上步骤,可以实现一个基本的 PHP 登录系统。根据实际需求,可以进一步扩展功能,如记住我、密码重置等。






