🦑 乌贼多用户网页即时在线聊天室
v26.07.20
🎁 完全免费
一款基于 PHP 原生开发、无需数据库的轻量级多人在线聊天系统
📌项目简介
乌贼多用户网页即时在线聊天室 (v26.07.20) 是一款基于 PHP 原生开发、无需数据库的轻量级多人在线聊天系统。它采用文件存储机制,支持用户注册/登录、实时消息收发、文件上传分享、消息加密传输等核心功能,同时创新性地集成了智能提示音、消息通知、管理员控制等增强特性。系统设计简洁高效,部署便捷,非常适合作为企业内部通讯、社群交流或学习研究的轻量化解决方案。
PHP 7.4+
无需数据库
TXT 文件存储
AES-128-CBC
Bootstrap 5
端到端加密
开源免费
⚡核心功能模块
🔐 用户认证系统
- 注册与登录:完整的用户注册流程,支持用户名(含中文)和密码验证
- 密码加密:采用
password_hash() 进行安全加密存储,保障用户数据安全
- 会话管理:基于 PHP Session 实现登录状态保持,自动跳转控制
- 账户类型:内置管理员账户体系(admin, administrator, lgooxc, 123, root),拥有特殊权限
💬 实时聊天引擎
- 消息收发:基于 AJAX 轮询技术实现消息的实时推送与接收(2秒轮询间隔)
- 消息加密:采用 AES-128-CBC 算法对用户消息进行端到端加密,保障隐私安全
- 消息格式:支持普通文本、URL 自动识别链接、换行格式化
- 用户标识:每个用户自动分配独特的颜色标签(21种颜色),便于识别发言者
📁 文件分享系统
- 多类型支持:支持图片、音视频、文档、压缩包等 20+ 种文件格式
- 多媒体预览:图片自动缩略显示,音频/视频内置播放器
- 文件管理:上传文件统一存储在
/files/ 目录,支持在线查看和下载
- 安全限制:50MB 大小限制,文件类型白名单过滤
👑 管理控制功能
- 清空记录:管理员可一键清空所有聊天记录和上传文件
- 系统消息:管理员可发送系统级通知消息
- 权限控制:基于管理员列表的细粒度权限管理
✨用户体验增强
🔔 智能通知系统
- Toast 提示:新消息到达时显示美观的浮动通知条
- 消息提醒:自动识别非本人消息,触发通知提示
- 声音反馈:集成随机 MP3 提示音播放,增强交互体验
🎨 个性化设置
- 声音控制:用户可自由开关消息提示音,状态自动保存至本地存储
- 自动链接识别:消息中的 URL 自动转换为可点击链接
- 消息时间戳:每条消息显示精确的发送时间
🚀 交互优化
- 自动滚动:新消息到达时自动滚动至最新内容
- 不活跃检测:5分钟无操作自动提示并退出,保障账号安全
- 消息轮询:2秒间隔自动刷新,实现接近实时的通信体验
🏗️系统架构
🖥️ 前端层 (Frontend)
login.php · register.php · chat.php · chat.css · JavaScript (内联)
▼
⚙️ 后端层 (Backend)
PHP 业务逻辑 · Session 认证 · AES-128-CBC 加密 · 文件读写 · API 接口
▼
📦 数据层 (Data)
chat_data/users.txt · chat_data/messages.txt · files/ (上传文件) · mp3/ (提示音)
🌟功能特点一览
🔐端到端加密 · AES-128-CBC,密码不上传
💬公共聊天 · 多用户实时在线交流
📝用户系统 · 完整的注册/登录功能
📁文件分享 · 20+ 种文件格式支持
🎵声音提示 · 随机 MP3 提示音播放
🔊音量控制 · 用户自由开关提示音
👑管理员功能 · 一键清空记录
⏰自动退出 · 5分钟无操作自动退出
📱响应式设计 · 适配 PC 和移动端
🎨多彩气泡 · 21种用户颜色
🚀轻量部署 · 无需数据库,开箱即用
🔗URL识别 · 消息中的链接自动可点击
🔒安全特性
| 安全层级 | 实现方式 |
| 密码安全 | password_hash() + password_verify() 加密验证 |
| 消息安全 | AES-128-CBC 对称加密,密钥基于用户名派生 |
| 输入安全 | htmlspecialchars() 过滤 XSS 攻击 |
| 文件安全 | 类型白名单 + 大小限制 + 重命名存储 |
| 会话安全 | 服务端 Session 管理,防止会话劫持 |
| 权限控制 | 管理员白名单机制,功能分级授权 |
📂目录结构
/
├── chat.php # 聊天室主页面
├── login.php # 用户登录页面
├── register.php # 用户注册页面
├── logout.php # 退出登录处理
├── footer.php # 底部导航组件
├── ip.php # IP统计组件
├── gywz.php # 项目介绍页
├── chat_data/ # 数据存储目录
│ ├── users.txt # 用户账号数据
│ └── messages.txt # 聊天记录
├── files/ # 上传文件存储目录
├── mp3/ # 提示音文件目录
├── css/ # 样式文件
│ ├── bootstrap.min.css
│ └── chat.css
├── js/ # JavaScript文件
│ ├── bootstrap.bundle.min.js
│ └── popper.min.js
└── images/ # 图片资源
├── favicon.ico
├── logo.jpg
└── wz7.jpeg # 聊天背景图
🗄️数据存储结构
用户文件 (chat_data/users.txt)
用户名|加密密码
admin|$2y$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
user1|$2y$10$yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
消息文件 (chat_data/messages.txt)
[2026-07-20 14:30:25]|admin|enc:base64加密消息内容
[2026-07-20 14:30:30]|user1|enc:base64加密消息内容
[2026-07-20 14:30:35]|系统|👏admin 进入聊天
🖥️部署要求
| 项目 | 要求 |
| Web服务器 | Apache / Nginx |
| PHP版本 | PHP 7.4+ |
| PHP扩展 | OpenSSL, Session, Fileinfo |
| 目录权限 | chat_data/ 和 files/ 目录可写(755权限) |
| 浏览器 | 现代浏览器(支持 Web Crypto API) |
📥安装步骤
📌 快速开始
1. 上传源码至网站根目录
2. 设置 chat_data/ 和 files/ 目录权限为 755
3. 访问 http://你的域名/register.php 注册第一个账号
4. 访问 http://你的域名/login.php 登录聊天
👤默认管理员
⚠️ 重要提示
首次使用请登录 admin 账号,密码 123456,并及时修改密码。
用户名:admin
密码:123456
❓常见问题
Q:聊天记录存储在哪儿?
A:所有聊天记录加密后存储在 chat_data/messages.txt 文件中。
Q:如何备份数据?
A:直接备份 chat_data/ 和 files/ 两个目录即可。
Q:上传文件大小限制是多少?
A:默认限制为 50MB,可在 chat.php 中修改 $maxFileSize 变量。
Q:如何修改管理员账号?
A:在 chat.php 中找到 $adminUsers 数组,添加或删除用户名即可。
🎯适用场景
🏢企业内部通讯 · 团队协作、内部公告发布
👥社群运营 · 粉丝群、兴趣小组实时交流
📚在线教育 · 师生互动、答疑解惑
💻个人项目 · 学习 PHP 开发、研究实时通信
🗣️临时会议 · 快速搭建的临时讨论组
📋版本信息
当前版本:V.26.07.20
更新日期:2026年7月20日
授权方式:完全免费开源
适用场景:个人网站、小型团队、学习研究