不懂先生

一次通宵淦代码经历(电脑120维修登记系统)
序言给电脑120写的基于php的维修登记系统于2022/1/12完成,但是毫无安全系数可言,于是改用了tp框架.2...
扫描右侧二维码阅读全文
28
2022/03

一次通宵淦代码经历(电脑120维修登记系统)

序言

给电脑120写的基于php的维修登记系统于2022/1/12完成,但是毫无安全系数可言,于是改用了tp框架.2022/1/23日下午两点起床后便开始撸代码,到晚上发小喝酒,本来因为在全心写代码说好不去的,但是发小们挨个打电话,心里有点过不去,就去了,到了晚上11点回到家,继续淦起了我的代码,tp也是最近刚看完,不熟悉,过程很慢而且bug频出,但越写越来劲,直到天亮。
早上6点爸妈起床,看见我还在“玩电脑”,狠“骂”一通,让我赶紧去睡觉,但我没怂,继续淦我的代码,7点左右基本代码淦完了,我妈问我吃早饭不,我顺便吃了在假期内第一顿早饭(挂面加三个鸡蛋),属实有点多,但是吃的只剩下渣渣。到了8点多,维修登记查询系统雏形完成,看看成品吧。

成品

维修登记系统

26441-dlghg7obmm.png

维修信息查询系统

44800-cpttdecrm0r.png

查询结果

90681-dz4858z3kee.png

未完成

  1. 维修信息查询登录(√)
  2. 维修现场图片上传(√)
  3. 上传限制(√)
  4. 漏洞扫描(√)
  5. 数据可视化(√)

续文

不说了,睡了睡了

2022/2/2日更新

  1. 对用户提交的数据做了前后端以及数据库的限制,防止出现注入
  2. 对维修人员栏做了限制,提交的维修人必须是内部成员,提交数据时以空格隔开
  3. 数据查询模块添加了维修图片查看功能
  4. 对提交的非法数据前后端都做出提示,提交数据格式正确才能存入数据库
  5. 增加了内部成员维修次数统计
  6. 数据库添加了图片存在本地的路径,方便对提交的无效图片进行清理
  7. 添加了登记用户IP和UA登记。
  8. 添加了对提交内容的处理,htmlspecialchars处理html字符,防止出现注入
  9. 添加了上传图片预览功能

成品

数据查询添加图片查看功能

15689-aojqp4j66pu.png

2022/2/3日更新

登录界面

  1. 修改了js添加默认时间逻辑,添加了维修时间选择模块,支持默认填充当前时间
  2. 添加了维修类型,值班室维修、上门维修,将电脑问题改为15个字
  3. 之前的判断图片是否上传的逻辑错误,点击上传图片后即使不上传也不会提示错误,今日将上传图片限制改为从后端检测,另外修改了点击重置,上传图片不会重置问题。
  4. 修改了成员维修次数统计功能,改为上门维修和值班室维修
  5. 修改了维修人员栏提交内容限制,提交的维修人员必须是内部成员,并且单次不能提交重复的成员

管理界面

  1. 修改了后台登录页面,看起来更加高大尚
  2. 添加了用户设置权限功能,不同权限的用户登录后所拥有的功能不同
  3. 增加了成员维修次数查询、删除维修登记表数据、添加电脑120成员、删除电脑120成员、添加系统用户、删除系统用户功能,增加了防止重复添加、删除不存在用户的限制,并且通过js将按钮文字修改为查询类别所相关信息
  4. 处理了后台模块提交查询内容为空的情况

相关图片

登记页面

22022-cv8trw0gmpc.png

后台登录页面

45143-lbzm695r5g.png

管理界面

52314-30hm4s4l2ir.png

维修次数查询

47682-rgxq1ycq4z.png

2022/2/5日更新

  1. 修复了维修时间选择模块,点击输入框取消手机输入法弹出bug

2022/2/8日更新

修复了点击表单页面会变大的bug

2022/2/17日更新

数据可视化模块

  1. 添加了总维修次数,各类型电脑问题维修次数展示
  2. 添加了个人维修排行榜(前十)
  3. 添加了上门维修次数排行榜(前十)
    17150-xtins4v64fq.png

2022/2/17日更新

登记页面

修复了图片上传模块预览显示的bug(点击上传,如果不上传会出现空白)

数据可视化模块

  1. 增加了数据实时显示
  2. 增加了当前年份个月维修次数
  3. 增加了电脑问题类型占比(饼状图)

2022/2/19日更新

管理界面

69704-ycdlafesjvh.png
修复了总维修表查看图片预览栏报错(允许的内存大小 268435456 字节用尽(尝试分配 22319104 字节)),方式为修改php.ini文件内memory_limit,将其大小设置为更大

2022/2/21日更新

登记页面

  1. 添加了问题类型选择模块,选择其他之后电脑问题填写模块显示出来
  2. 修复了重复提交的bug

数据可视化模块

  1. 修改了问题类型查询字段,改为提交的问题类型查询
  2. 将正式成员和学习小组成员分别展示维修次数和上门维修次数
    83302-95q9fshc655.png

69704-ycdlafesjvh.png

2022/3/1日更新

登记页面

  1. 表单提交方式改为POST提交
  2. 修复了登记页面csrf、xss、get提交乱码漏洞
  3. 上传图片模块改为异步上传,添加了上传限制条件,必须先填写正确的维修人才可以上传成功
  4. 维修类型模块将结果上传到数据库,为admin模块提供方法

管理界面

  1. 后台大幅度更新,采用layuimini模板,使后台可视化更加清晰
  2. 后台设计了维修登记表、维修次数表、成员管理、用户管理、系统更新日志并附带嵌套了登记页面和数据展示页面
  3. 维修登记表、维修次数表、内部成员管理、系统用户管理做了数据添加和修改功能
  4. 维修登记表、系统用户管理、内部成员管理做了多选删除和删除功能,维修次数表不给予删除功能,维修登记表删除时对应维修人维修次数也会对应减少
  5. 维修登记表、维修次数表、内部成员管理、系统用户管理添加了搜索功能,支持模糊查询及单条件查询
  6. 编辑模块做了给子页面传值

2022/3/4日更新

管理界面

  1. 后台登录页面修改了背景图的css,使得背景图在电脑端和手机端都可以铺满全屏
  2. 添加了数据表格分页功能
  3. 添加了用户权限功能,不同用户所拥有的功能不同
  4. 添加了session,对接口调用用户进行登录检查以及权限审核,只有用户对以及权限对才可以进行接口内操作
  5. 修改了图标样式
  6. 首页右上角添加了用户:欢迎您!欢迎语
  7. 添加了用户退出功能,退出后清空session
  8. 限制了用户修改密码权限,只可以修改当前用户密码
  9. 后台登录页面进行限制,必须填账号密码,账号密码错误返回提示
  10. 对添加系统用户模块提交内容进行验证,账号必须包含数字和字母且长度大于6,密码为强密码,必须包含字母大小写并且长度大于8,可以包含特殊字符
  11. 添加了添加内部成员限制,不能重复添加

2022/3/5日更新

登记页面

  1. 对必填项做了空值精确提示
  2. 对提交成功的用户设置一个直达电脑120官网的按钮
  3. 设置了表单必填项提示*
  4. 修改了后端判断逻辑,精确到每个问题,并返回错误原因

2022/3/7日更新

登记页面

  1. 对每个接口的条件判断进行了优化,从之前的从数据库查询改为判断session('login_user')是否存在,对于维修数据表接口、维修次数表接口、电脑120内部成员表接口、系统用户表接口只判断session('login_user'),对于addedit类接口判断session('login_user')+session('permissions'),判断session是否存在,并且是否是管理员权限,非管理员权限的用户无权限使用该接口,未登录用户直接提示未登录。
  2. 对上传图片模块做了优化,原来上传到服务器是以时间为文件夹名,剩下的md5码为文件名进行存储,现在改为统一的目录下存储,防止有人用同一图片刷内存。
  3. 上传图片成功后js将上传图片按钮禁用,重置后可再上传。
  4. 图片改为居中预览
  5. 修改了按钮颜色

管理界面

  1. 添加了验证码验证功能,防止恶意攻击
  2. 修改欢迎语,后台对用户type进行判断,老师则显示xx老师,欢迎您!电脑120成员则显示xx同学,欢迎您!
  3. 修复了系统公告点击,再点击查看跳转到其他网页bug
    53053-gg8wab0f4f.png

数据可视化

  1. 排行榜展示为整数

2022/3/09日更新

登记模块

  1. 修改了按钮颜色
  2. 修改了移动端适配效果
  3. 修改了上传图片模块,必须先填写维修人,维修人填写正确即可上传图片,否则禁用上传按钮
  4. 修复了修改上传图片模块带来的Application error message漏洞

管理界面

  1. 修改了上传图片文件名,改为加密后的文件名
  2. 隐藏了用户密码
  3. 修复了用户登录界面小眼睛显示或隐藏密码bug

2022/3/11日更新

管理界面

  1. 修改了数据库存储密码的格式,改为md5之后的密码存入,防止偷取数据库表干坏事
  2. 添加了维修次数找回功能,防止恶意删除数据后不能很好恢复维修次数数据

2022/3/12日更新

登记界面

  1. 维修时间限制只能是当前已过去的时间
  2. 增加了夜间模式
  3. 增加了追随系统配色,深色和浅色
    96424-erq1rkbf2ho.png

管理界面

  1. 用户的添加、编辑和用户自己修改密码都改成将前端的密码经过md5之后再传入后端
  2. 修复了非管理员却可以看到首页系统用户管理
  3. 数据修改、添加在前端增加了格式的验证
  4. 修复了thinkphp5 Array and string offset access syntax with curly braces is deprecated,tp5使用的php版本不能太高,php7.4不支持大括号,找到thinkphp\library\think\db\Query.php文件
    63799-krkaluxctd.png

将这里的大括号改为 []。当然还是推荐使用较低版本的php

  1. Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0
    解决方法:在php.ini里将always_populate_raw_post_data=-1隐藏warning,打开php.ini 开启 always_populate_raw_post_data = 1 重启php
  2. 修复了内容搜索bug,点击搜索会出现高延迟现象,解决方法为将判断请求方式由是否是post改为是否为ajax,加快搜索效率
  3. 对维修总表时间修改模块做出限制,只能选择过去时
  4. 成员届数由个人输入改为选择

数据可视化界面

  1. 添加了维修次数模块手机端适配

2022/3/13日更新

登记界面

  1. 修改了整体的颜色搭配、增加了圆角
  2. 修改了input边框样式
  3. 解决了手机端时间选择滑块不能滑动问题

后台管理

  1. 修改了log页面margin

数据可视化

  1. 对其他电脑端可视化模块都添加了移动端适配

2022/3/17日更新

登记界面

  1. 对上传成功的图片文件名存到session,与提交的表单一一对应,替换了之前文件名传到前端再传回来的方式,更加安全
  2. 维修人模块去除维修人填写错误提示信息,填对方可上传图片
  3. input 限制了填写的最大长度
  4. 添加了token验证,防止恶意程序提交
  5. 上传的图片存储到public目录,并对上传的文件重新命名,接收的文件名加随机参数再进行MD5作为最后存储的文件名,防止恶意扫描图片
  6. 修改了进度天出现时间,只有上传开始后才显示进度条
  7. 解决了tp5默认函数接收不到post参数问题

后台管理

  1. 添加了维修图片查看功能,点击文件名即可查看图片

2022/3/18日更新

登记界面

  1. 修复了选择电脑问题类型为其他输入电脑问题,再选择其他问题是电脑问题不能清零漏洞

2022/3/19日更新

登记界面

  1. 修复了多次填写维修人,只要第一次正确,之后随便填都可以上传图片的漏洞
  2. 修复了维修人不在数据库中却可以上传图片的漏洞

2022/3/23日更新

登记界面

  1. 修改了手机号输入模块内容,只填写数字
  2. 做了ipad适配

后台管理

  1. 修改了搜索及编辑框输入字符个数的限制

2022/3/24日更新

后台管理

  1. 修改验证码逻辑,账号密码错误2次以后需要填写验证码

2022/3/27日更新

登记界面

  1. 对夜间模式色彩搭配做了调整
  2. 限制了维修时间选择,不能选择超过当前时间

后台管理

  1. 去除了提示按钮
  2. 修改了默认导出文件名,改为当前栏目名
  3. 维修图片自适应大小
  4. 去除了首页系统功能
  5. 去除了加载动画
  6. 添加了维修次数表点击次数出现维修表相关数据功能

2022/3/28日更新

后台管理

  1. 将表格及搜索框head文字统一
  2. 添加了点击电话号拨号功能
  3. 对弹出层和表格大小做了一定程度自适应屏幕大小
  4. 对表格样式做了美化

2022/3/29日更新

后台管理

  1. 对编辑页面select不能默认选择父页面传过来的值做出修复

2022/3/30日更新

登记界面

  1. 提交成功后对保存的文件名session进行清除,防止下次提交出现未提交而出现文件名

2022/3/31日更新

登记界面

数据可视化

 1. 增加了日志编写自动发布功能
 2. 对搜索框内容进行优化l
 3. 将管理员从后台隐藏
 4. 修改了维修表编辑页面“其他”选项弹出电脑问题bug

2022/4/2日更新

后台管理模块

  1. 优化了路由

小序

最近忙着给系统完善功能暂时没时间做更新,之后将会补充上

Last modification:April 7th, 2022 at 01:00 am

Leave a Comment