当前位置:首页 > PHP

php实现登录页面

2026-02-15 22:08:54PHP

PHP 登录页面实现

数据库准备 创建一个用户表用于存储用户信息,例如:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

HTML 表单 创建登录表单页面(login.html):

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    <h2>Login Form</h2>
    <form action="login.php" method="post">
        <label>Username:</label>
        <input type="text" name="username" required><br><br>

        <label>Password:</label>
        <input type="password" name="password" required><br><br>

        <input type="submit" value="Login">
    </form>
</body>
</html>

PHP 处理脚本 创建登录处理脚本(login.php):

<?php
session_start();
$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "your_database";

$conn = new mysqli($host, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$username = $_POST['username'];
$password = $_POST['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['user_id'] = $row['id'];
        $_SESSION['username'] = $row['username'];
        header("Location: welcome.php");
    } else {
        echo "Invalid password";
    }
} else {
    echo "User not found";
}

$conn->close();
?>

安全增强措施 使用预处理语句防止SQL注入:

php实现登录页面

$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();

密码哈希 在注册时使用password_hash()安全存储密码:

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

会话管理 创建欢迎页面(welcome.php)验证会话:

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.html");
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h2>Welcome, <?php echo $_SESSION['username']; ?></h2>
    <a href="logout.php">Logout</a>
</body>
</html>

注销功能 创建注销脚本(logout.php):

php实现登录页面

<?php
session_start();
session_unset();
session_destroy();
header("Location: login.html");
exit();
?>

验证码功能 添加验证码可防止暴力破解:

// 在登录表单中添加
<img src="captcha.php" />
<input type="text" name="captcha" required>

// captcha.php 生成验证码图片
session_start();
$code = rand(1000, 9999);
$_SESSION['captcha'] = $code;
// 使用GD库生成图片

记住我功能 使用cookie实现持久登录:

if (isset($_POST['remember'])) {
    setcookie('username', $username, time()+60*60*24*30);
    setcookie('password', $password, time()+60*60*24*30);
}

错误处理 显示友好的错误信息:

if (empty($username) || empty($password)) {
    $error = "All fields are required";
}

HTTPS 安全 确保在生产环境中使用HTTPS协议传输登录数据。

标签: 页面php
分享给朋友:

相关文章

vue 实现页面注册

vue 实现页面注册

Vue 实现页面注册功能 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,通常命名为 Register.vue。该组件包含用户名、邮箱、密码等输入字段,以及提交按钮。 <templ…

php实现打印功能

php实现打印功能

PHP实现打印功能的方法 在PHP中实现打印功能可以通过多种方式完成,包括直接输出到浏览器、生成PDF文件、调用打印机接口等。以下是几种常见的方法: 直接输出HTML内容 PHP可以通过echo或…

js实现页面跳转

js实现页面跳转

使用 window.location.href 通过修改 window.location.href 实现页面跳转,直接赋值目标 URL 即可。 window.location.href = '…

css如何制作页面模糊

css如何制作页面模糊

使用 backdrop-filter 属性 通过 backdrop-filter 属性可以直接为元素背后的区域添加模糊效果。该属性需要浏览器支持(如 Chrome、Edge、Safari)。示例代码:…

h5实现登录页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面

实现H5登录页面跳转 在H5中实现登录页面跳转可以通过多种方式完成,以下是几种常见方法: 使用window.location.href window.location.href = '目标页面…

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…