View on GitHub

Purewebin

BMS(Books Management System) by PHP and Mysql

Download this project as a .zip file Download this project as a tar.gz file

PureWebIn

简单的图书管理系统 完成一个小型的图书管理系统。不会很难, 不要担心,在上课结束后我会统一说明要求。

写在任务之前 正常的管理系统都有crud(create、read、update、delete)操作,为了简化程序,这里只需要read操作 本次任务可以不使用数据库,所以数据以json的格式预存到本地,当然使用数据库更佳。 系统的视觉稿在附件中可以得到,为了大家方便,这次仅用png图片格式,大家只要做出大致效果就ok。当然你可以设计自己的图形界面 如管理员登陆身份验证,你只需要发一个get请求到本地服务器,然后取本地管理员的数据进行比较验证 如图书所有信息可以以json的数据格式存在一个js文件中,然后需要时发相应的get请求获取 登陆页

包括用户名和密码两个用户字段 前端表单验证包括邮箱格式 后台登陆验证管理员身份,是管理员进入系统,否则停留登陆页,并给予提示。 所有书籍展示页

支持分页功能 支持类型检索 单本书籍展示页

展示的书籍详情页应该至少包括作者(author)、出版日期(pubDate)、书名(name)、价格(price)、类型(type)、书籍标示(id)等信息 需要展示书籍的所有字段信息 一本书籍有多个图片展示,点击图片切换时添加CSS3动画切换效果,具体效果可以自定义 检索功能

在书籍展示页添加一个搜索框 搜索框监听keyup事件,当keyup时,向后台发送一个请求,同时将搜索框中的内容与本地预存的数据进行模糊匹配,在检索结果页面展示相应检索信息 写在任务之后

当你到公司工作你会发现,几乎所有的公司都有一套内部完整的体系,从前端到后端,这些框架可能是自主编写的,也可能取材于开源框架,然后做一些修改,但对与大部分新人来说,都是全新的、没接触过的内容,在熟悉的过程中,你必须不断地查文档、检索资料、独立完成这一过程 本次任务语言不限、框架不限,但提交之前请附上你的系统运行的各界面截图、环境安装说明、使用文档 对于没有头绪的同学你可以使用以下框架之一: Angular Backbone 提交内容包括:

可运行系统相关的所有文件 回答以下问题,以pdf格式提交 开发过程中你遇到的问题以及如何解决 对于一些功能你的优化 程序和pdf文件压缩打包并以姓名+学号+联系方式方式命名发至kgtong@163.com,提交截止时间为11月28日, 根据大家完成的作品我们会挑选出一批同学加入我们,有任何问题可以回复此邮件。

PureWeber期待你的加入~


本代码为进入PureWeb之前的测试,小白正在努力中ing……打算进入PureWeb学习

图书管理系统

---设计实现文档 姓名 xxx

学号 xxxx

学院 计算机科学与技术

日期 2014-11-28

哈尔滨工业大学 pureweber

一、 测试环境

系统:Windows7 X64(sp1)

运行环境:Wamp(Apache2.2.21+PHP5.3.10+MySQL5.2.20)

测试浏览器:Chrome38(x64) 和 360安全浏览器(7.2.1)

二、 功能设计

  1. Install

程序安装模块,将分为两种安装模式:1.自行建立数据库,导入提供的.sql语句。2.运行install.php脚本,自行安装数据库(数据库的user和password需要自行修改配置文件)

  1. Login

实现基本登录页面,如果没有输入内容则返回提示,如果有输入内容则进行判断,正确则进入系统,否则返回登录页面。

  1. Create

此模块为图书的添加模块,包含信息有书名(bookname)、作者(bookauthor)、简介(bookdes)、类型(booktype)、出版日期(bookdata)、定价(bookprice)。

  1. Delete

此模块为图书的删除模块、运行后将直接删除图书信息。

  1. Update

图书更新模块、填写新数据,将直接更新数据库内容。并将提示刚才的填写是否进行了更新操作。完成操作之后将返回主界面。

  1. Read

图书详细信息模块,实现方式基本和Update基本一样。

  1. 分类检索

图书分类检索模块,将按照不同的图书类别(booktype)进行分类展示。

  1. 图片切换特效

用css3等前端技术展示图书切换效果。达到良好的视觉影响效果。

  1. KeyUp查询

用keyup对按键进行扫描,进行对图书按照搜索关键词进行全局搜索。

  1. 分页

执行分页操作,即当图书较多的时候以分页的形式展示。

三、 代码结构

——|css

——|css|style.css

——|image|1.jpg

——|image|2.jpg

——|image|3.jpg

——|image|4.jpg

——|image|5.jpg

——|image|arrow.png

——|js|jquery-1.7.1.min.js

——|js|loginjudge.js

——|js|Modernizr.js

——|php|add.php

——|php|conn.php

——|php|login.php

——|php|search-auto.php

——|php|uodate.php

——|add.php

——|book.list.php

——|delete.php

——|index.php

——|install.php

——|update.php

四、 功能实现

  1. Install

a) 1.手动建立数据库

事先导出sql类型的数据库文件,然后用phpmyadmin等工具进行数据库的导入(数据库名为:bookmanage)。配置文件在(php/conn/php)

b) 2.运行install.php脚本进行数据库的建立

事先修改相关文件(install.php与php/conn.php)的数据库连接信息,然后在保证777权限的情况下运行install.php脚本,即可完成数据库建立于安装。

  1. Login

用JavaScript进行form表单input标签里面value内容的判断,如果数据为空,则返回alert提示信息,不进行后台交互。 如果均输入内容,将value值传送到php/login.php,进行判断,如果值和后台的值相同,则用JavaScript跳转到book_list.php;如果值不同,用JavaScript跳转到index.php。

  1. Create

图书添加模块,实现方式为:填写form表单,POST方式进行传送数据至php/add.php,执行相关SQL语句,进行Insert操作。

  1. Delete

图书删除模块,点击删除的button,POST传值ID至php/delete.php,执行SQL的delete操作。

  1. Update

图书更新模块,首先进行数据库的查询,在update.php进行显示之前的值,然后填写数据,点击button传值至php/update.php,进行数据库SQL的update操作。

  1. Read

图书展示模块,实现基本和Update一样。

  1. 分类检索

点击不同的分类,进行ID的GET传值,在SQL语句中加入where限制条件,进行限制查询。

  1. 图片切换效果

用css3和Jquery对图片切换效果进行修饰,目前切换效果为“爆炸”效果。

  1. KeyUp查询

当键盘进行KeyUp时,用JS(Jquery)向php/search-auto.php进行传值,实时显示查询效果,在SQL查询时,进行limit限制。

  1. 分页

把查询到的东西放在列表中,进行限制,选择输出的内容。(目前功能没有完全实现,分页可以显示,但点击相应的页数无法进行限定值的检索)

五、 功能测试

  1. 脚本建立数据库:

执行install.php脚本自动建立数据库

  1. 登录

  2. 图书检索

  3. 分类检索

  4. 图书删除

  5. 图书更新

  6. 图书增加

  7. 图片切换

  8. KeyUp搜索

  9. 分页

六、 设计不足

  1. 样式问题

对css的控制不好,导致样式显得单一,难以适应多变的浏览器。

对js没有较好的认识,导致对js的控制显得很是困难,最后运了jq的相关内容。

  1. 安全问题

没有做做相关的检查工作,存在SQL注入等漏洞。

  1. 代码问题

在开始阶段没有对程序做一个比较统一的认识,导致在开发过程中遇到很多比较纠结的东西

  1. 后续改进

程序对分页没有进行100%的完成,可在后序的过程中改进;页面的布局显得杂乱,可以进行修正;代码没有良好的注释和模块规划,显得不优雅。

七、 感想

在整个设计中,有很多地方显得很是不成熟,现做如下总结:

  1. 知识储备方面:自己对WEB的接触是从大一的Django开始,但当时做的事情很是低级,甚至连初级的html,css都不会写,粗略的完成了作业。对PHP的接触是从5月份开始,WordPress是我的入门导师,不过做的东西也就是用用别人的东西,基本上全部是抄袭,这儿加个代码,那儿加个代码,完全没有学习性。国庆试着改了一下别人的代码(基本上就是变量修改,html css修改),对MySQL的操作只是看看了,也不是很懂。这次的作业完全就是恶补多种东西,在W3CSCHOOL上看了一些PHP的东西,但都是比较基础了,后来发现Mysql的初级使用也不是很难,于是就放弃json,开始用Mysql。在整个过程中,时时碰到不会的问题,百度,谷歌,一些技术博客也就成了好朋友,先后看懂了一系列的操作(比如GET与POST传值,JQUERY实现搜索功能等)。开始明白这些工作的强大,一旦好好利用,就能在前人造的轮子上前进一大截,完全不需要其他人的帮助就可以在网络上完成知识的学习。

  2. 知识学习方面:发现一个重要的东西——用什么就学什么。我们学的东西非常多,但一个项目需要的东西是有限的,完全学会一个东西的代价是巨大的,可以在基本了解的基础上进行现学,如果精力比较集中的话,成功还是很可观的。

  3. 代码构思方面:一年半来一直有个很是错误的观念,写代码的时候想写什么就写什么,在这次的设计过程中充分的意识到这种方法的坏处-在需要的时候就发现前面做的是无用功,甚至是阻挡的东西。在以后的设计中一定要规划处准确的设计方案,这样设计开发才能有条不紊的进行。

  4. 学习结果方面:没有用任何框架(后面迫不得已用了JQ),完成了很基础的“图书管理系统”。虽然这个作业在各种语言上都是很基础的入门项目,但我觉得还是锻炼了我的很多能力,比如自学能力,寻找答案能力,甚至是deadline高能量能力……说的精确一点,学了一些css的布局问题,PHP的基础语法与PHP渔MySql的联合使用,比较简单的js操作等。

写在最后:这基本上是第一次独立的完成了一个小的项目设计,在整个过程中体验比较深刻。虽然对学长要求的东西没有完全实现(分页存在问题),但没有用任何的框架,都是用最基础的语言来实现的(JQ除外),整个过程完成之后感觉很是充实,毕竟学到了很多东西。 希望我能加入pureweber,更好的提升自己。