一、系统简介
厂区电动车上牌登记系统是一款面向企业内部使用的电动车、电动摩托车、三轮车、四轮车登记管理平台。系统支持员工车辆信息录入、身份证照片上传(自动水印防盗)、多条件查询、数据导出等功能,适用于工厂、园区、社区等车辆管理需求。
系统版本: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.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 员工端操作流程
打开登记页面,填写车牌号(可点击自动生成)
填写车主姓名、身份证号、手机号
填写车架号、电机号,选择车辆类型
上传5张照片(身份证正反面、证明、车辆正侧面)
点击提交,系统自动验证并保存
提交成功后自动弹出打印窗口
5.2 管理员操作流程
登录后台管理系统
查看数据看板了解登记概况
可对车辆进行注销操作
可导出Excel进行离线备份
可在设置中修改水印配置
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;
}
}
















暂无评论内容