当前位置:首页 > 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中实现页面刻度通常涉及动态渲染刻度线、数值标签及交互逻辑。可通过CSS绝对定位结合Vue的数据绑定能力实现。以下是具体方法: 刻度组件结构 创建一个Vue组件(如Sc…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

h5页面实现扫一扫

h5页面实现扫一扫

调用设备摄像头实现扫描功能 在H5页面中实现扫一扫功能通常需要调用设备的摄像头,并通过JavaScript解析摄像头捕获的图像。以下是几种常见的实现方法: 使用HTML5的getUserMedia…

vue实现结算页面

vue实现结算页面

Vue 实现结算页面的方法 数据绑定与表单验证 使用 Vue 的 v-model 实现表单数据的双向绑定,确保用户输入的数据能够实时更新到 Vue 实例中。例如,绑定收货地址、支付方式等表单字段。…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…