当前位置:首页>编程日记>正文

PHP家庭账单系统,PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统.

PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统.

特别说明

目前版本,其中一个函数文件content.php源码没有开放,后续处理好了再考虑开放,所以目前这个文件是加密状态。

将文件上传到服务器时,若使用的客户端是FlashFXP,请务必设置上传模式为:二进制,否则会导致安装之后界面出现白屏。

若服务器禁用获取磁盘大小的函数,可能导致安装不顺,直接网址上加参数跳过即可。

程序名称

PHP+SQLite 多用户记账程序

PHP家庭账单系统,PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统. 配图01

安装说明

将程序放到指定目录,可以根目录,可以二级目录

运行/install/,或者直接输入域名都可以自动判断,未安装的会进入安装界面

一路next(什么协议那些没有弄)

输入数据库地址、端口、数据库名、账号、密码等参数(安装测试数据的功能屏蔽掉)

网站名称就是安装之后的系统名称,可以在安装之后在data/config.php 里面修改,其他内容不建议修改

注意,默认会记录安装时的域名,这个域名唯一的用处就是找回密码的邮件,如果安装之后没有换过域名,不用理会,否则需要在data/config.php 里面修改

找回密码是通过发邮件找回,需要配置SMTP,配置见:inc/smtp_config.php(包括找回密码的邮件模板,也是在这个文件修改)

其他文件,不建议修改,除非你看得懂

作者

功能介绍

登录界面 功能是没变,全部改成Ajax请求,做了一系列的安全措施。 另外界面模仿了WP的后台登录界面进行调整,所以很容易看到WP的影子。因为使用JQ模拟form提交,之前还不能支持键盘提交,昨天给加了回车键提交,实在是不能再爽。

记账页 将收入和支出合并使用Tab显示,默认是支出。另外就是支出记录之后还是默认为支出,收入记录之后还是默认为收入。优化页面内容输出,使用统一的SQL进行输出,页面就执行foreach直接将内容展示,实在是不能再爽。代码量少了很多。编辑页面使用Bootstrap弹出的窗口进行修改,弹出时将列表的数据通过json格式传递到弹出层,减少查询数据库。只有保存的时候才update,因为在列表的时候已经将数据查询出来,没必要编辑的时候还要再查询。以前是写法是编辑的时候还要根据ID查询一次,根本不考虑数据库的查询优化。

近期统计 使用一个查询语句,传入开始时间和结束时间进行查询结果。代码上是简洁,但实际上执行了16次查询,感觉这里需要再优化。至于剩余的金额,就是收入-支持进行页面计算,不进行数据查询了。

年度统计 感觉年度统计是优化得最好的。每个分类只需要一次查询,后续的数据全部是根据分类的查询结果进行页面的JS计算,不会再查数据库,做这个功能的时候,做过几个版本,目前这个版本算是比较满意的。

导入导出 基本上就是页面样式的改动,功能没做大调整。不过代码还是优化了,对于不符合条件的数据,直接跳过,最后再弹出提示,成功多少条,失败多少条。这个功能之前是没有的。

查询修改 这个页面改得比较多,支持多条件查询,翻页,弹出层编辑数据等一系列优化。

用户编辑 优化界面,阉割掉删除用户数据的功能,暂时不想开放。

安全方面 登录上做了安全过滤、错误次数限制、记账金额校验、密码长度校验等,引入安全过滤函数。使用统一的get和post过滤一系列安全函数进行过滤。登录密码使用加盐算法,注册时候生成一次盐,改动密码又生成一次盐,只要不是长期不改密码的,理论上密码的安全系数是比较高的。

系统安装 可以自定义账户密码。


http://www.coolblog.cn/news/5c1c129e80338f72.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • Mac原生Terminal快速登录ssh
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • mysql commit 机制_1024MySQL事物提交机制
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • 2019-9
  • jquery 使用小技巧
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • linux批量创建用户和密码
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • js常用阻止冒泡事件
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • 气泡图在开源监控工具中的应用效果
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • 【设计模式】 模式PK:策略模式VS状态模式
  • JS实现-页面数据无限加载
  • CSS小技巧——CSS滚动条美化
  • 最新DOS大全
  • Django View(视图系统)
  • 阿里巴巴分布式服务框架 Dubbo
  • 阿里大鱼.net core 发送短信
  • 程序员入错行怎么办?
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 两张超级大表join优化
  • Arm芯片的新革命在缓缓上演
  • 第九天函数
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • 《看透springmvc源码分析与实践》读书笔记一
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • 通过Spark进行ALS离线和Stream实时推荐
  • 行为模式之Template Method模式