当前位置:首页 > PHP

php 登录怎么实现

2026-01-29 02:43:56PHP

PHP 登录实现步骤

数据库准备 创建用户表,包含字段如 id, username, password(需哈希存储)。示例 SQL:

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

注册功能 处理用户注册时使用 password_hash 加密密码:

$hashed_password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->execute([$_POST['username'], $hashed_password]);

登录验证 验证用户输入与数据库匹配时使用 password_verify

php 登录怎么实现

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$_POST['username']]);
$user = $stmt->fetch();

if ($user && password_verify($_POST['password'], $user['password'])) {
    session_start();
    $_SESSION['user_id'] = $user['id'];
    header("Location: dashboard.php");
} else {
    echo "Invalid credentials";
}

会话管理 登录成功后启动会话并设置保护页面:

session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit();
}

安全增强

php 登录怎么实现

  • 使用预处理语句防止 SQL 注入
  • 启用 HTTPS 传输数据
  • 设置 session.cookie_httponlysession.cookie_secure
  • 登录失败时限制尝试次数

密码重置 通过邮件发送令牌实现:

$token = bin2hex(random_bytes(32));
$stmt = $pdo->prepare("UPDATE users SET reset_token = ?, token_expiry = DATE_ADD(NOW(), INTERVAL 1 HOUR) WHERE email = ?");
$stmt->execute([$token, $_POST['email']]);
// 发送含令牌链接的邮件

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

$selector = bin2hex(random_bytes(8));
$validator = random_bytes(32);
setcookie(
    'remember',
    $selector.':'.bin2hex($validator),
    time() + 86400 * 30,
    '/',
    'yourdomain.com',
    true,
    true
);

标签: php
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现图片上传

php实现图片上传

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

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…

php 实现锁

php 实现锁

PHP 实现锁的常见方法 文件锁(flock) 利用 flock 函数对文件进行独占锁定,适用于单机环境。 $fp = fopen("lockfile.lock", "w+"); if (flock…

php 实现聊天功能

php 实现聊天功能

PHP 实现聊天功能的方法 使用 WebSocket 和 Ratchet 库 WebSocket 是实现实时聊天的理想选择。Ratchet 是一个 PHP 库,用于处理 WebSocket 连接。…

php实现秒杀

php实现秒杀

PHP实现秒杀功能的关键技术 秒杀系统需要解决高并发、数据一致性、系统稳定性等问题。以下是PHP实现秒杀功能的核心技术方案: 数据库优化 使用InnoDB引擎的行级锁和事务特性,确保数据一致性。商品…