…">
当前位置:首页 > PHP

php实现登录上传图片

2026-01-29 07:17:20PHP

PHP实现登录与图片上传功能

登录功能实现

创建登录表单HTML文件(login.html):

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

处理登录的PHP文件(login.php):

<?php
session_start();
$valid_username = "admin";
$valid_password = "123456";

if ($_POST['username'] == $valid_username && $_POST['password'] == $valid_password) {
    $_SESSION['logged_in'] = true;
    header("Location: upload.php");
} else {
    echo "用户名或密码错误";
}
?>

图片上传功能实现

创建上传表单HTML文件(upload.php):

<?php
session_start();
if (!isset($_SESSION['logged_in']) || !$_SESSION['logged_in']) {
    header("Location: login.html");
    exit;
}
?>
<form action="upload_handler.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <button type="submit">上传图片</button>
</form>

处理上传的PHP文件(upload_handler.php):

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

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

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

// 检查文件大小
if ($_FILES["image"]["size"] > 500000) {
    die("文件太大");
}

// 允许特定格式
$allowed_types = ["jpg", "png", "jpeg", "gif"];
if (!in_array($imageFileType, $allowed_types)) {
    die("只允许JPG, JPEG, PNG和GIF格式");
}

// 上传文件
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
    echo "文件". htmlspecialchars(basename($_FILES["image"]["name"])). "上传成功";
} else {
    echo "上传失败";
}
?>

安全注意事项

创建uploads目录并设置权限:

mkdir uploads
chmod 755 uploads

在upload_handler.php中添加更多安全检查:

// 防止目录遍历攻击
if (strpos($_FILES["image"]["name"], '../') !== false) {
    die("非法文件名");
}

// 生成唯一文件名防止覆盖
$new_filename = uniqid() . '.' . $imageFileType;
$target_file = $target_dir . $new_filename;

数据库集成(可选)

如果需要将上传记录存入数据库:

// 连接数据库
$conn = new mysqli("localhost", "username", "password", "database");

// 存储上传记录
$stmt = $conn->prepare("INSERT INTO uploads (filename, upload_time) VALUES (?, NOW())");
$stmt->bind_param("s", $new_filename);
$stmt->execute();
$stmt->close();
$conn->close();

php实现登录上传图片

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

相关文章

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaS…

php实现定时任务

php实现定时任务

PHP 实现定时任务的几种方法 在 PHP 中实现定时任务可以通过多种方式完成,具体选择取决于项目需求和服务器环境。以下是常见的实现方法: 使用 Cron 任务 Cron 是 Linux 系统中常用…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素(不移…

php购物车实现

php购物车实现

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

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

基于php的设计与实现

基于php的设计与实现

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