上节课完成了公共图书库存查询功能。 这节课来完成用户个人信息查询功能。 编写用户个人信息查询功能 首先需要编写一个用户通过IC卡号和密码登录的功能,登录成功之后页面显示用户的信息,包括借阅历史清单以及目前待支付的总借阅费。 用户登录显示文件,user_login.php代码如下: 用户登录页面处理文件,user_login_do.php代码如下: 用户个人信息显示文件,user_index.php代码如下: 用户个人信息页面处理文件,user_index_do.php代码如下: 数据库操作文件,entity.php代码修改如下: 测试用户个人信息查询功能 浏览器访问公共端图书库存查询页面: 点击右上角的登录按钮: 然后输入用户的IC卡号和密码和验证码,然后点击“登录”按钮: 可以看到用户的个人信息,待支付借阅费信息,用户的借阅历史记录。 全部功能测试并修正代码 到这里为止,图书馆管理系统的全部的功能已经都完成了,可以开始按照之前的系统测试案例设计进行全面的功能测试。 学哥经过测试,发现以下问题: 1.check_auth权限检查有漏洞 在员工登录到后台之后,不同的员工根据权限设置可以访问不同的菜单和页面,但是在check_auth.php里面只是检查了是否有权限,并没有检查具体的页面权限,这就存在漏洞,某个员工登录之后,可以通过直接访问页面url,从而绕过权限限制。 例如,使用zhangsan账号登录,本来张三只有2个菜单的权限,就是“图书管理”和“库存管理”,然是如果zhangsan登录之后,直接在浏览器地址输入return_list.php,直接访问就可以访问这个页面,这就是有漏洞了。需要补充检查代码。 修改方案: 首先修改check_auth.php如下,检查每个页面相应的权限限制: 然后修改employee_list.php,将$top_menu_index=1;代码从下面移动到第一行代码,如下: 然后按照上面的方法,修改其它所有的一览和详细页面,文件清单如下: employee_detail.php books_list.php books_detail.php stock_list.php stock_detail.php user_list.php user_detail.php borrow_list.php return_list.php fillcard_list.php order_list.php 2.新建用户的收押金订单,删除时排除此订单删除用户并删除此订单 修改entity.php文件如下: 3.损毁丢失的书本的状态要修改为已损毁,这样就可以防止再次将这本书上架并被借出,从而产生逻辑错误。 修改entity.php文件如下: 4.库存和用户管理的页面初始化的时候,要设置状态检索条件的初始值为“全部”。 修改stock_list_do.php文件如下: 修改user_list_do.php文件如下: