PHP开源 | 厂区电动车上牌登记系统V1.1

标签

PHP, MySQL, 电动车管理, 上牌系统, 开源系统, 身份证水印, 企业内部系统, Bootstrap, PDO, 车辆登记

一、系统简介

厂区电动车上牌登记系统是一款面向企业内部使用的电动车、电动摩托车、三轮车、四轮车登记管理平台。系统支持员工车辆信息录入、身份证照片上传(自动水印防盗)、多条件查询、数据导出等功能,适用于工厂、园区、社区等车辆管理需求。

系统版本:V1.1
技术栈:PHP 7.0+ / MySQL 5.6+ / Bootstrap 4 / PDO
授权方式:免费开源,可用于个人学习、企业内部使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、核心功能

2.1 车辆登记模块
支持4种车辆类型:两轮电动自行车、两轮电动摩托车、三轮电动车、四轮电动车
自动生成车牌编号(GC0001格式,可配置前缀)
完整表单验证:身份证18位校验、手机号格式、车架号/电机号长度检查
支持5张图片上传:身份证正反面、购车凭证、车辆正侧面照片
上传进度条实时显示

2.2 身份证水印防盗(重点功能)
上传身份证照片自动添加平铺水印
水印覆盖整张图片,即使裁剪也无法恢复完整信息
支持网格线叠加,增强防篡改能力
后台可自定义水印开关和文字内容
无中文字体服务器自动切换英文水印

2.3 信息查询模块
支持4种查询方式:车牌号、身份证号、车架号、手机号
实时Ajax查询,身份证号自动校验格式
查询结果展示完整车辆信息,含照片缩略图
点击图片可查看大图

2.4 后台管理系统
数据看板:展示登记总数、正常/注销数量、各类型车辆统计
分页列表:支持查看、注销车辆记录
系统设置:水印开关、文字内容配置
Excel导出:导出全部登记数据
操作日志:记录管理员关键操作

2.5 安全特性
参数化查询,防SQL注入
表单XSS过滤
密码bcrypt加密存储
管理员登录验证
车架号、身份证号唯一性校验

三、技术架构

3.1 目录结构

vehicle-registration/
├── index.php              首页-车辆登记表单
├── search.php             信息查询页
├── print.php              打印功能
├── config.php             核心配置文件
├── install.php            一键安装向导
├── database.sql           数据库结构文件
├── admin/
│   ├── index.php          后台管理主页
│   └── login.php          管理员登录
├── api/
│   ├── submit.php         登记提交接口
│   ├── query.php          查询接口
│   └── export.php         Excel导出接口
└── assets/
    ├── css/style.css       样式文件
    ├── js/validate.js     前端验证脚本
    └── uploads/            上传文件目录

3.2 数据库设计

vehicles表 车辆登记记录

| 字段 | 类型 | 说明 |
||||
| id | INT | 主键自增 |
| plate_number | VARCHAR(20) | 车牌号/登记编号 |
| owner_name | VARCHAR(50) | 车主姓名 |
| id_card | VARCHAR(18) | 身份证号(唯一) |
| phone | VARCHAR(11) | 手机号 |
| vin | VARCHAR(50) | 车架号(唯一) |
| motor_number | VARCHAR(50) | 电机号 |
| vehicle_type | TINYINT | 车辆类型(1-4) |
| department | VARCHAR(100) | 所属部门 |
| proof_image | VARCHAR(255) | 证明照片路径 |
| front_image | VARCHAR(255) | 正面照片路径 |
| side_image | VARCHAR(255) | 侧面照片路径 |
| id_card_front | VARCHAR(255) | 身份证正面路径 |
| id_card_back | VARCHAR(255) | 身份证背面路径 |
| register_date | DATETIME | 登记日期 |
| status | TINYINT | 状态(1正常/0注销) |

admins表 管理员账户

| 字段 | 说明 |
|||
| id | 主键 |
| username | 用户名(唯一) |
| password | bcrypt加密密码 |
| real_name | 真实姓名 |
| last_login | 最后登录时间 |

settings表 系统配置
添加链接描述
| 配置项 | 默认值 | 说明 |
|–|–||
| plate_prefix | GC | 车牌号前缀 |
| watermark_enabled | 1 | 水印开关 |
| watermark_text | 仅限本系统使用 禁止另作他用 | 水印文字 |

operation_logs表 操作日志

记录管理员所有关键操作,含操作人、对象、时间、IP地址

四、部署教程

4.1 环境要求

PHP 7.0 或更高版本
MySQL 5.6 或更高版本
PHP扩展:pdo、pdo_mysql、gd(可选,用于水印)
Web服务器:Apache/Nginx

4.2 快速部署步骤

Step 1:下载源码

将源码上传到网站根目录

Step 2:访问安装向导

浏览器打开 http://您的域名/install.php

Step 3:填写配置信息

数据库主机:localhost
数据库端口:3306
数据库名:vehicle_registration(会自动创建)
用户名:root
密码:您的MySQL密码

管理员账户:
用户名:admin
密码:admin888

Step 4:完成安装

点击"测试数据库连接",通过后点击"开始安装"

Step 5:访问系统

| 入口 | 地址 |
|||
| 前台登记 | http://您的域名/index.php |
| 后台管理 | http://您的域名/admin/ |
| 默认账号 | admin / admin888 |

4.3 Nginx配置(可选)

location / {
    try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

4.4 目录权限

确保以下目录有写入权限:
assets/uploads/ 用于存储上传的图片

五、使用说明

5.1 员工端操作流程

  1. 打开登记页面,填写车牌号(可点击自动生成)
  2. 填写车主姓名、身份证号、手机号
  3. 填写车架号、电机号,选择车辆类型
  4. 上传5张照片(身份证正反面、证明、车辆正侧面)
  5. 点击提交,系统自动验证并保存
  6. 提交成功后自动弹出打印窗口

5.2 管理员操作流程

  1. 登录后台管理系统
  2. 查看数据看板了解登记概况
  3. 可对车辆进行注销操作
  4. 可导出Excel进行离线备份
  5. 可在设置中修改水印配置

5.3 注意事项

身份证照片上传后会自动添加水印防盗
水印功能可在后台开启/关闭
车架号和身份证号不可重复登记
建议使用Chrome/Firefox浏览器访问

六、代码亮点

6.1 水印防盗实现

// 平铺水印覆盖整张图片
for ($y = -$height; $y < $height * 2; $y += $spacingY) {
    for ($x = -$width; $x < $width * 2; $x += $spacingX) {
        imagettftext($image, $fontSize, 0, $x, $y, $textColor, $fontFile, $waterText);
    }
}
// 网格线增强防篡改
for ($x = 0; $x < $width; $x += 100) {
    imageline($image, $x, 0, $x, $height, $gridColor);
}

6.2 身份证号码校验

// 加权因子校验18位身份证
$factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
$parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];

6.3 数据库单例模式

class Database {
    private static $instance = null;
    private $connection;
    private function __construct() {
        $dsn = "mysql:host=" . DB_HOST . ";port=" . DB_PORT . ";dbname=" . DB_NAME;
        $this->connection = new PDO($dsn, DB_USER, DB_PASS, $options);
    }
    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

七、开源协议

本系统可免费用于个人学习、企业内部使用。禁止用于商业牟利或公开传播。

八、更新日志

V1.1 (当前版本)
新增身份证照片平铺水印功能
新增网格线防篡改
优化水印在无中文字体时的兼容性
修复若干已知问题

V1.0
初始版本发布
支持车辆登记、查询、后台管理
支持Excel数据导出
支持多条件查询

九、界面预览

车辆登记页面
表单分组:基础信息、车辆核心信息、上传材料
实时表单验证
图片上传预览

后台管理页面
数据统计看板
分页列表展示
操作日志记录

水印效果
平铺文字水印覆盖全图
半透明网格线叠加
防裁剪、防盗用

下载地址:上牌系统下载

十、联系与支持

如有问题或建议,请联系开发者。

© 西数资源 版权所有

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐