4.3用户注册功能
4.3 用户注册功能
用户登录系统是为数据库中已有的老用户登录用的,一个用户管理系统还应该提供新用户注册用的页面,对于新用户来说,通过单击index.php页面上的“注册新用户”超链接,进入到名为register.php的页面,在该页面可以实现新用户注册功能。
4.3.1 用户注册页面
register.php页面主要实现用户注册的功能,用户注册的操作就是向数据库的member表中添加记录的操作,完成的页面如图4-45所示。
图4-45 用户注册页面样式
01 执行菜单栏“文件”→“新建”命令,在网站根目录下新建一个名为register.php的网页并保存。
02 在Dreamweaver中,使用制作静态网页的工具完成如图4-46所示的静态部分。这里要说明的是,注册时需要加入一个“隐藏域”并命名为authority,设置默认值为0,即所有的用户注册的时候默认是一般访问用户。
图4-46 register.php页面静态设计
注意
在为表单中的文本域对象命名时,由于表单对象中的内容将被添加到member表中,可以将表单对象中的文本域名设置的与数据库中的相应字段名相同,这样做的目的是当该表单中的内容添加到member表中时会自动配对,文本“重复密码”对应的文本框命名为password1。隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用设置时定义的名称和值发送到服务器上。
03 还需要设置一个验证表单的动作,用来检查访问者在表单中填写的内容是否满足数据库中表member中字段的要求。在将用户填写的注册资料提交到服务器之前,就会对用户填写的资料进行验证。如果有不符合要求的信息,可以向访问者显示错误的原因,并让访问者重新输入。
04 执行菜单栏“窗口”→“行为”命令,则会打开“行为”面板。单击“行为”面板中的按钮,从打开的行为列表中选择“检查表单”,打开“检查表单”对话框,如图4-47所示。
图4-47 设置“检查表单”对话框
注意
本例中,我们设置username文本域、password文本域、password1文本域、answer文本域、truename文本域、address文本域为“值:必需的”、“可接受:任何东西”,即这几个文本域必须填写,内容不限,但不能为空;tel文本域和qq文本域设置的验证条件为“值:必需的”、“可接受:数字”,表示这2个文本域必须填写数字,不能为空;e-mail文本域的验证条件为“值:必需的”、“可接受:电子邮件地址”,表示该文本域必须填写电子邮件地址,且不能为空。
05 设置完成后,单击“确定”按钮,完成对检查表单的设置。
06 在“文档”窗口中单击工具栏上的按钮,转到代码编辑窗口,然后在验证表单动作的源代码中修改如下的代码,主要是实现中文汉化的功能:
编辑代码完成后,单击工具栏上的按钮,返回到“文档”窗口。
此时,可以测试一下执行的效果,当两次输入的密码不一致,然后单击“提交”按钮,则会打开一个提示信息框,图4-48中的警告信息告诉访问者两次密码输入不一致。
图4-48 提示信息框
07 在该网页中添加一个“插入”的服务器行为。执行菜单栏“窗口”→“服务器行为”命令,打开“服务器行为”面板。单击该面板上按钮,在弹出的下拉菜单中选择“插入记录”选项,则会打开“插入记录”对话框。
图4-49 执行“插入记录”操作
08 在对话框中进行设置,并将网页中的表单对象和数据库中表member中的字段一一对应起来,设置完成后该对话框如图4-50所示。
图4-50 “插入记录”对话框
09 设置完成后,单击“确定”按钮,关闭该对话框,返回到“文档”窗口。此时的设计样式如图4-51所示。
图4-51 插入记录后的效果图
10 用户名是用户登录的身份标志,用户名是不能够重复的,所以在添加记录之前,一定要先在数据库中判断该用户名是否存在,如果存在,则不能进行注册。在Dreamweaver中提供了一个检查新用户名的服务器行为,单击“服务器行为”面板上按钮,在弹出的菜单中,执行“用户身份验证”→“检查新用户名”命令,如图4-52所示。
图4-52 “检查新用户名”命令
此时,会打开一个“检查新用户名”对话框,在“用户名字段”下拉列表框中选择username字段,在“如果已存在,则转到”文本框中输入regfail.php。表示如果用户名已经存在,则转到regfail.php页面,显示注册失败信息,该网页将在后面编辑。设置完成后的对话框显示如图4-53所示。
图4-53 “检查新用户名”对话框
11 设置完成后,单击该对话框中的“确定”按钮,关闭该对话框,返回到“文档”窗口。在“服务器行为”面板中增加了一个“检查新用户名”行为,再执行菜单栏“文件”→“保存”命令,将该文档保存到本地站点中,完成本页的制作。
4.3.2 注册成功和失败
为了方便用户登录,应该在regok.php页面中设置一个转到index.php页面的文字链接,以方便用户进行登录。同时,为了方便访问者重新进行注册,则应该在regfail.php页面设置一个转到register.php页面的文字链接,以方便用户进行重新登录。本节制作显示注册成功和失败的页面信息。
01 执行菜单栏“文件”→“新建”命令,在网站根目录下新建一个名为regok.php的网页并保存。
02 regok.php页面如图4-54所示。制作比较简单,其中将文本“这里”设置为指向index.php页面的链接。
图4-54 注册成功regok.php页面
03 如果用户输入的注册信息不正确或用户名已经存在,则应该向用户显示注册失败的信息。这里再新建一个regfail.php页面,该页面的设计如图4-55所示。其中将文本“这里”设置为指向register.php页面的链接。
图4-55 注册失败regfail.php页面
4.3.3 注册功能的测试
设计完成后,就可以测试该用户注册功能的执行情况了。
01 打开IE浏览器,在地址栏中输入http://127.0.0.1/member/register.php,打开register.php文件,如图4-56所示。
图4-56 打开的测试页面
02 可以在该注册页面中输入一些不正确的信息,如漏填username、password等必填字段,或填写非法的E-mail地址,或在确认密码时两次输入的密码不一致,以测试网页中验证表单动作的执行情况。如果填写的信息不正确,则浏览器应该打开提示信息框,向访问者显示错误原因,如图4-57所示是一个提示信息框示例。
图4-57 出错提示
03 在该注册页面中注册一个已经存在的用户名,如果输入design,用来测试新用户服务器行为的执行情况。然后单击“确定”按钮,此时由于用户名已经存在,浏览器会自动转到regfail.php页面(如图4-58所示),告诉访问者该用户名已经存在。此时,访问者可以单击“这里”链接文本,返回register.php页面,以便重新进行注册。
图4-58 注册失败页面显示
04 在该注册页面中填写正确的注册信息。单击“确定”按钮。由于这些注册资料完全正确,而且这个用户名没有重复。浏览器会转到regok.php页面,向访问者显示注册成功的信息,如图4-59所示。此时,访问者可以单击“这里”链接文本,转到index.php页面,以便进行登录。
图4-59 注册成功页面
在MySQL中打开用户数据库文件member,查看其中的member表对象的内容。此时可以看到,在该表的最后,创建了一条新记录,其中的数据就是刚才在网页register.php中提交的注册用户的信息,如图4-60所示。
图4-60 表member中添加了一条新记录
至此,基本完成了用户管理系统中注册功能的开发和测试。在制作的过程中,可以根据制作网站的需要适当加入其他更多的注册文本域,也可以给需要注册的文本域名称部分添加星号(*),提醒注册用户注意。