本文是对《PHP and MySQL Web Development》 第5版27章中项目的总结。
1.分析所需功能
列出主要功能模块:登录、注册、忘记密码、重设密码、登出、书签浏览、书签增加、书签删除、书签推荐
确定模块之间的先后转移关系:
2.分解所需模块
将模块的逻辑和内容分开:
- 内容写在function_form.php中
- 逻辑写在function.php中
设置专门文件用于:
- 连接数据库
- 输入数据检验
- 用户身份验证
- 浏览器输出
该项目所有文件可以分为以下几类:
1.数据定义文件:bookmarks.sql
用于建立所需数据库和数据表。
2.数据库连接文件:db_fns.php
用于连接数据库。保存着数据库用户的用户名和密码。
3.输入数据检验文件:user_auth_fns.php
用于检验输入数据。检验POST变量的值是否为空,email输入是否合法。
4.用户身份验证文件:user_auth_fns.php
用于验证用户是否能够注册、登录、修改密码、重设密码,以及用户是否已经登录。
由多个相应功能的函数组成,函数接收参数,连接数据库进行查询,返回查询结果或抛出异常。
5.书签操作文件:url_fns.php
用于对书签url进行查询、增加、删除与推荐。功能实现方法与上一类相似。
6.浏览器输出文件:output_fns.php
用于显示所有种类的浏览器输出:
网页名称、页内标题、各种表单、页内URL、网站信息、用户菜单、页尾。
每个函数实现一个种类部位的浏览器输出,函数根据需要可以接收参数,在HTML中插入php显示,也可以通过php输出HTML元素。
7.包含常被引用文件集的文件:bookmark_fns.php
8.9.表单文件及对应的逻辑处理文件
表单文件 | login.php | change_passwd_form.php | register_form.php | forgot_form.php | add_bm_form.php |
---|---|---|---|---|---|
逻辑处理文件 | member.php | change_passwd.php | register_new.php | forgot_passwd.php | add_bms.php |
其它逻辑处理文件:
delete_bms.php、recommend.php
logout.php
表单文件的特点:
1.包含对bookmark_fns.php中output_fns.php文件中函数的引用(即一些浏览器输出函数)
2.对于登录后才能填写的表单,包含会话开始函数session_start()
和检验用户是否已注册会话函数check_valid_user()
。
逻辑处理文件的特点: 处理表单提交的数据
1.包含对bookmark_fns.php中output_fns.php文件中函数的引用(即一些浏览器输出函数)
2.包含会话开始函数session_start()
。
3.接收POST变量的信息。
4.对表单是否填满、输入是否合法进行判断。
5.继而调用用户身份验证函数,如果验证通过,则显示相关信息。
6.捕捉所有抛出的异常,合理的显示在浏览器上。
3.主要模块关键思路
1.数据库连接模块:
连接数据库,返回mysqli对象。
function db_connect() {
$db = new mysqli('localhost', 'username'