当前位置:首页 > PHP

php实现登录展示页面

2026-01-29 03:45:47PHP

PHP 登录展示页面实现

数据库连接与用户验证

创建 config.php 文件存储数据库连接信息:

<?php
$host = 'localhost';
$user = 'username';
$pass = 'password';
$db   = 'database_name';

$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

登录表单设计

创建 login.php 文件包含表单和基础样式:

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
    <style>
        body { font-family: Arial; background: #f4f4f4; }
        .container { width: 300px; margin: 0 auto; padding: 20px; background: #fff; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        input[type="text"], input[type="password"] { width: 100%; padding: 10px; margin: 8px 0; }
        input[type="submit"] { background: #333; color: #fff; border: none; padding: 10px; width: 100%; }
    </style>
</head>
<body>
    <div class="container">
        <h2>Login</h2>
        <form action="authenticate.php" method="post">
            <input type="text" name="username" placeholder="Username" required>
            <input type="password" name="password" placeholder="Password" required>
            <input type="submit" value="Login">
        </form>
    </div>
</body>
</html>

用户认证处理

创建 authenticate.php 处理登录逻辑:

<?php
require 'config.php';

$username = $_POST['username'];
$password = $_POST['password'];

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

if ($result->num_rows > 0) {
    $user = $result->fetch_assoc();
    if (password_verify($password, $user['password'])) {
        session_start();
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['username'] = $user['username'];
        header("Location: dashboard.php");
    } else {
        echo "Invalid password";
    }
} else {
    echo "User not found";
}
$stmt->close();
$conn->close();
?>

受保护页面示例

创建 dashboard.php 展示登录后内容:

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

注销功能实现

创建 logout.php 处理注销:

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

安全增强建议

密码应使用 PHP 的 password_hash() 函数存储:

$hashed_password = password_hash($plain_password, PASSWORD_DEFAULT);

防止 SQL 注入必须使用预处理语句,所有用户输入需通过 htmlspecialchars() 过滤输出。敏感页面应强制 HTTPS 连接,可设置会话过期时间:

ini_set('session.cookie_lifetime', 86400);

数据库表结构参考

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

php实现登录展示页面

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

相关文章

vue实现关闭页面

vue实现关闭页面

关闭当前页面的方法 在Vue中关闭当前页面可以通过JavaScript的window.close()方法实现。该方法会关闭当前浏览器窗口或标签页。 methods: { closePage()…

css制作锁屏页面

css制作锁屏页面

使用CSS制作锁屏页面 锁屏页面通常包含一个背景、时间显示以及可能的解锁按钮或输入框。以下是实现锁屏页面的关键CSS代码和结构。 HTML结构 <!DOCTYPE html> <h…

vue实现单页面

vue实现单页面

Vue 实现单页面应用(SPA)的方法 Vue.js 是一个渐进式框架,适合构建单页面应用(SPA)。以下是实现 SPA 的核心步骤和关键配置。 安装 Vue 和 Vue Router 确保已安装…

vue实现组织架构页面

vue实现组织架构页面

Vue 实现组织架构页面 数据准备 组织架构通常以树形结构展示,需要准备嵌套的节点数据。例如: data() { return { orgData: { id: 1,…

php长连接实现

php长连接实现

PHP 长连接实现方法 长连接(Keep-Alive)允许客户端与服务器在一次TCP连接中发送和接收多个HTTP请求/响应,减少重复建立连接的开销。以下是PHP中实现长连接的几种方式: 配置HTTP…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…