当前位置:首页 > PHP

php实现登录上传图片

2026-02-14 05:25:16PHP

PHP 实现登录上传图片

用户登录功能实现

创建一个登录表单 login.php,包含用户名和密码输入字段。表单提交到 login_check.php 进行验证。

<!-- login.php -->
<form action="login_check.php" method="post">
    <input type="text" name="username" placeholder="用户名">
    <input type="password" name="password" placeholder="密码">
    <button type="submit">登录</button>
</form>

login_check.php 中验证用户凭据(示例使用硬编码验证,实际应查询数据库):

// login_check.php
session_start();
$valid_username = 'admin';
$valid_password = 'password123';

if ($_POST['username'] === $valid_username && $_POST['password'] === $valid_password) {
    $_SESSION['logged_in'] = true;
    $_SESSION['username'] = $_POST['username'];
    header('Location: upload.php');
} else {
    echo '登录失败';
}

图片上传功能实现

创建 upload.php 文件,检查用户是否已登录,并显示图片上传表单:

// upload.php
session_start();
if (!isset($_SESSION['logged_in']) || !$_SESSION['logged_in']) {
    header('Location: login.php');
    exit;
}
?>

<form action="upload_handler.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image" accept="image/*">
    <button type="submit">上传图片</button>
</form>

处理上传的 upload_handler.php 文件:

// upload_handler.php
session_start();
if (!isset($_SESSION['logged_in']) || !$_SESSION['logged_in']) {
    header('Location: login.php');
    exit;
}

$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["image"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

// 检查是否为真实图片
if (isset($_POST["submit"])) {
    $check = getimagesize($_FILES["image"]["tmp_name"]);
    if ($check !== false) {
        $uploadOk = 1;
    } else {
        echo "文件不是图片。";
        $uploadOk = 0;
    }
}

// 检查文件大小(限制为2MB)
if ($_FILES["image"]["size"] > 2000000) {
    echo "文件太大。";
    $uploadOk = 0;
}

// 允许特定文件格式
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") {
    echo "只允许 JPG, JPEG, PNG 文件。";
    $uploadOk = 0;
}

// 检查上传状态并移动文件
if ($uploadOk == 0) {
    echo "文件未上传。";
} else {
    if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
        echo "文件 " . htmlspecialchars(basename($_FILES["image"]["name"])) . " 上传成功。";
    } else {
        echo "上传文件时出错。";
    }
}

安全注意事项

确保 uploads/ 目录存在且有写入权限:

mkdir uploads
chmod 755 uploads

限制上传文件类型和大小,防止恶意文件上传。在生产环境中,应使用更严格的安全措施,如:

  • 数据库存储用户凭据并进行安全哈希处理
  • 文件重命名防止目录遍历攻击
  • 添加 CSRF 保护
  • 对上传文件进行病毒扫描

php实现登录上传图片

标签: 上传图片php
分享给朋友:

相关文章

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php实现图片上传

php实现图片上传

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

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php搜索功能实现

php搜索功能实现

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