…">
当前位置:首页 > 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;

数据库集成(可选)

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

php实现登录上传图片

// 连接数据库
$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
分享给朋友:

相关文章

h5实现上传图片

h5实现上传图片

实现H5图片上传的基础方法 使用HTML5的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。基本实现代码如下: <inpu…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php长连接实现

php长连接实现

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

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…