上节课完成了公共图书库存查询功能。
这节课来完成用户个人信息查询功能。
编写用户个人信息查询功能
首先需要编写一个用户通过IC卡号和密码登录的功能,登录成功之后页面显示用户的信息,包括借阅历史清单以及目前待支付的总借阅费。
用户登录显示文件,user_login.php代码如下:
![36eb76420b71cf3b302f4fa5ec102c96.png](https://i-blog.csdnimg.cn/blog_migrate/101a623cd1888b880b570325c6297d95.jpeg)
![1dc5b02213a44428a667a3afcb277d75.png](https://i-blog.csdnimg.cn/blog_migrate/6b282ca87eeaa180cb83f5e9288c68e1.jpeg)
![b18eda38ffef004ddd19ca21dff70eff.png](https://i-blog.csdnimg.cn/blog_migrate/0eed91a5a5dcc91e8c888376ba6c52cc.jpeg)
用户登录页面处理文件,user_login_do.php代码如下:
![1f59422707fce3e690c3f61dff90d259.png](https://i-blog.csdnimg.cn/blog_migrate/86e4638e4e22757eb69e6db06585d562.jpeg)
![2c08060e8c2ca5682943e9b25e846711.png](https://i-blog.csdnimg.cn/blog_migrate/85921340329941fe8d54b20d06c560ef.jpeg)
用户个人信息显示文件,user_index.php代码如下:
![00e7a09cc6cc75bcb0e540341db534f1.png](https://i-blog.csdnimg.cn/blog_migrate/41b97df9ca762ecf34cb33d3ea61d212.jpeg)
![bd1e0cff9a73bb45dfcce552c45cf5c0.png](https://i-blog.csdnimg.cn/blog_migrate/2d256712d02ca246085cf35b4bf86cbe.jpeg)
用户个人信息页面处理文件,user_index_do.php代码如下:
![ed5b9e0817d2aea7460fe45b8aa84c0c.png](https://i-blog.csdnimg.cn/blog_migrate/a96171cb4062387042c301903c91fc27.jpeg)
数据库操作文件,entity.php代码修改如下:
![64d7191c5fb739f8f98bf3b25ee873e6.png](https://i-blog.csdnimg.cn/blog_migrate/3c5039cfca839ec2f58431d8b08d8d06.jpeg)
![dc710d442e5ee05c1ed13b4b81d3b1d1.png](https://i-blog.csdnimg.cn/blog_migrate/506b31cbe3fa3f84d1c5bde8aea7d033.jpeg)
![ac4cfc940e5d8cc8bc4d499677953ae7.png](https://i-blog.csdnimg.cn/blog_migrate/94b430f50582598159462c4dfa69e98c.jpeg)
测试用户个人信息查询功能
浏览器访问公共端图书库存查询页面:
![7085ed094414eaf57ad61d590b16b9fe.png](https://i-blog.csdnimg.cn/blog_migrate/4a55331ee5023a838bc2176d5bd3bcff.jpeg)
点击右上角的登录按钮:
![226288022af8ee72470ddf271ccd1803.png](https://i-blog.csdnimg.cn/blog_migrate/b6426a8e8c07969b73f946895ce0d575.jpeg)
然后输入用户的IC卡号和密码和验证码,然后点击“登录”按钮:
![41643eb2b47e44334ebcd5713f0d84c8.png](https://i-blog.csdnimg.cn/blog_migrate/0434bc9e97892ed4a80934214dceaee3.jpeg)
可以看到用户的个人信息,待支付借阅费信息,用户的借阅历史记录。
全部功能测试并修正代码
到这里为止,图书馆管理系统的全部的功能已经都完成了,可以开始按照之前的系统测试案例设计进行全面的功能测试。
学哥经过测试,发现以下问题:
1.check_auth权限检查有漏洞
在员工登录到后台之后,不同的员工根据权限设置可以访问不同的菜单和页面,但是在check_auth.php里面只是检查了是否有权限,并没有检查具体的页面权限,这就存在漏洞,某个员工登录之后,可以通过直接访问页面url,从而绕过权限限制。
例如,使用zhangsan账号登录,本来张三只有2个菜单的权限,就是“图书管理”和“库存管理”,然是如果zhangsan登录之后,直接在浏览器地址输入return_list.php,直接访问就可以访问这个页面,这就是有漏洞了。需要补充检查代码。
修改方案:
首先修改check_auth.php如下,检查每个页面相应的权限限制:
![2a23c8729480ea703afb3e49caf44e60.png](https://i-blog.csdnimg.cn/blog_migrate/0800c3316c4791413df4bde2f6795e2a.jpeg)
然后修改employee_list.php,将$top_menu_index=1;代码从下面移动到第一行代码,如下:
![a75d7a00110f6e0ce1db9794b5ff7efe.png](https://i-blog.csdnimg.cn/blog_migrate/6adbe39244daca99c746b879a400d964.jpeg)
然后按照上面的方法,修改其它所有的一览和详细页面,文件清单如下:
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文件如下:
![1a6179e391a3408b5767a5c771c92286.png](https://i-blog.csdnimg.cn/blog_migrate/b08bc7724cecc2701398e046a553217a.jpeg)
![56c5bcfe3e7510c279938eeca114eb88.png](https://i-blog.csdnimg.cn/blog_migrate/4674a1f10409e1f712a7af7dcf03242e.jpeg)
3.损毁丢失的书本的状态要修改为已损毁,这样就可以防止再次将这本书上架并被借出,从而产生逻辑错误。
修改entity.php文件如下:
![67bf550bc46a63eb1e215f443f9869fa.png](https://i-blog.csdnimg.cn/blog_migrate/800eaee03a643ecda7fdfba832b9de27.jpeg)
4.库存和用户管理的页面初始化的时候,要设置状态检索条件的初始值为“全部”。
修改stock_list_do.php文件如下:
![fc1bfeb3bccc3b1ea13f898e1930a0a5.png](https://i-blog.csdnimg.cn/blog_migrate/fb9541828655bd31f70139b46cfe8149.jpeg)
修改user_list_do.php文件如下:
![183595ccc68030cdaf905179231b6661.png](https://i-blog.csdnimg.cn/blog_migrate/a7c8c9e8a3eb0169758763577b5f0cdf.jpeg)