2.8 注册模块设计
视频讲解
2.8.1 注册模块概述
图2.23 用户注册模块的运行结果
BCTY365网上社区系统为了更好地与广大网民朋友进行交流和沟通,创建了一个会员注册模块。通过会员注册模块,可以有效地对用户信息进行采集,并将合法的用户信息保存到指定的数据表中,实现与用户的长期沟通和交流。既然设置了会员注册模块,那么在系统中就要为会员提供一些特殊的权限。在本系统中注册会员可以拥有如下权限:在本社区的论坛中发布和回复帖子、在技术支持模块中发表留言、在升级下载模块中下载软件升级包等,而且可以进行修改密码和找回密码。会员注册模块的运行结果如图2.23所示。
2.8.2 注册模块技术分析
在会员注册模块中,必不可少的就是要对用户输入的信息进行判断,首先判断用户填写的注册信息中哪些是必须填写的,哪些可以不填写,然后进一步判断输入的信息是否合理合法,例如,判断输入邮编的格式是否正确,判断输入邮箱的格式是否正确等。对表单中提交的数据进行判断最常用的办法就是使用JavaScript脚本,也可以使用正则表达式。下面讲解在本模块中如何通过JavaScript实现表单提交数据验证。
操作原理是:在form表单中调用onsubmit事件,通过该事件调用指定的JavaScript脚本,执行chkinput()自定义函数,实现对表单中提交数据的验证。在JavaScript脚本中,实现对表单中提交的数据进行判断,判断输入的内容是否为空以及格式是否正确,如果正确则继续执行,否则将弹出提示对话框,并将鼠标的焦点指定到出错的位置。具体的JavaScript脚本代码如下:
上述代码中,只是列举了JavaScript中的部分内容,并且在对电话号码进行判断时,只是判断其是否为空,没有进一步判断电话号码的格式是否正确。如果想要更加准确地判断电话号码的格式是否正确,可以采用下面的方法:通过正则表达式的preg_match()函数,在表单提交处理页中对电话号码进行判断。
preg_match()函数的语法格式如下:
int preg_match(string pattern, string subject [, array matches [, int flags]])
preg_match()函数的参数说明如表2.7所示。
表2.7 preg_match()函数的参数说明
通过preg_match()函数判断电话号码的格式是否正确的方法如下:首先定义一个用于判断电话号码格式的正则表达式。代码如下:
/^(\d{3}-)(\d{8})$|^(\d{4}-)(\d{7})$|^(\d{4}-)(\d{8})$/
正则表达式的功能分析如下:使用“^”和“$”对字符串进行边界的限制,对区号从字符串的开始进行匹配,对其他号码从字符串的末尾开始进行匹配;将括号“()”中的内容作为一个原子使用;使用“\d”来匹配一个数字,区号为3或4个数字,其他数字为7或8个;使用“{}”来对前字符进行重复匹配;使用“|”对匹配的模式进行选择,分成3个模式。
然后将该正则表达式应用到preg_match()函数中,对表单提交的电话号码进行判断,如果正确则继续执行,否则弹出提示信息,并返回到表单提交页。代码如下:
2.8.3 注册模块的实现过程
注册模块使用的数据表:tb_user
注册模块的实现过程非常简单,首先阅读注册服务条款,然后填写用户注册的用户名和密码,提交后由系统判断输入的用户名是否被占用,如果未被占用则可以继续注册,填写详细的注册信息,将数据提交到表单处理页进行处理,最后将用户注册的信息保存到指定的数据表中。用户注册模块的实现过程主要由3个文件完成:register.php用于输出注册服务条款,以及填写注册的用户名和密码,并且判断注册的用户名和密码是否被占用;getuserinfo.php文件用于填写详细的注册信息,并且在表单中应用数字验证码技术;savereginfo.php文件用于对表单中提交的数据进行处理,将数据保存到指定的数据表中。
在savereginfo.php文件中,首先连接数据库,然后获取表单中提交的数据,并且判断提交的用户名是否被占用,最后将提交的数据进行处理,并将数据保存到指定的数据表中。程序代码如下:
例程05 代码位置:资源包\TM\02\bcty365\savereginfo.php