版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、案例会员管理设计图2概述会员管理的网页功能在现今网站构建上相当的重要,尤其是对于一些需要 付费来取得会员认证的公司和个人网站。为了避免误闯的用户及有心的黑客,会 员认证及管理的方式的确有其存在的必要。 因此,设计一个缜密的会员管理网页, 也是我们学习PHP的一个重点。系统面向三种用户,一是新用户,需要注册才能成为会员;二是会员用户, 可能需要修改资料和找回遗忘的密码;三是管理员用户,承担对会员资料的维护 和更新。系统架构首先要有个存放会员资料的数据库。根据用户的角色来设定系统的主要功能1 注册为新会员。2找回遗忘的密码。3 会员修改资料。4. 普通会员专区。5管理员对会员资料的管理。请求URL
2、用户工作流程图如图1所示:Web服务器会员管 理页面XI _注册为 新会员普通会员管理管理员页面写入提取写入会员信息数据库服务器提取和写入用户信息说明:1 用户向服务器发出访问请求;2 服务器提供的会员管理页面是以菜单方式提供用户选择;3新用户注册新会员,提供输入信息的表单并要求用户输入相关信息,写入数 据库;4.普通会员能登录到会员专区,通过用户ID和密码验证身份进入专区;通过电 子邮箱和住址来提取忘记的密码;或通过用户ID和密码验证身份进入修改个 人资料页面;5管理员作为网站的站长,也是通过用户 ID和密码验证身份进入其管理界面, 浏览会员资料和删除会员资料。三、系统设计1 逻辑结构设计根
3、据对系统架构的描述,可得系统的逻辑结构,如图 2所示。主页面.main .phpTop:系统标题title.html:规划窗口结构Left :菜单Right:显示select.html新会员注册n ewuser.html表单:新用户输入资料存储数据savedata.phpI验证身份|会员区member.php查询密码search.php验证身份|修改modify.php验证身份|管理mamager.php写入数据库 回显提示信息读取数据库 回显提示信息读取数据库 回显提示信息读取数据库 回显表单信息读取数据库 回显提示信息更新数据更新数据忘记密码:forget.php表单:身份验证会员登录:l
4、ogi n.php表单:身份验证会员登录:logi n.php表单:身份验证站长登录:logi n.php表单:身份验证注册为新会员:n ewuser.htm表单:用户资料update.php_写入数据库回显提示信息delete.php_读写数据库回显提示信息2 数据库设计在MySQL数据库服务器上建立名为 member数据,其中包含一个数据库表 member,各字段的定义和说明如下表:字段类型NULL说明备注idchar(20)否用户登录idemailchar(40)否用户电子邮件网址addresschar(60)用户住址passwordchar(20)否登录密码sexchar(2)是性别i
5、dxin t(11)否用户序列号auto i ncreme nt注:通过phpMyadmin建立,在MySQL的data文件夹中会自动创建一词数据库为名的文件夹,包含相关数据。本案例用到的SQL命令如下表命令格式含义SELECT * FROM member WHERE 条件表达式查询(读取)数据表的记录INSERT INTO member (字段组,)VALUE (对应值,)向数据表的表尾追加记录UPDATE member SET 字段=值,WHERE 条件表达式更新数据表的记录DELETE FROM member WHERE 条件表达式删除数据表的记录ALTER TABLE member D
6、ROP 字段名删除数据表的字段ALTER TABLE member ADD 字段名 数据类型创建数据表的字段3 界面设计主页面: main.php规划窗口界面标题行(title) - title.html菜单(select)-select.html显示(show)-newuser.html 等标题页:title.html显示系统的标题信息。菜单页:select.html包含五个超级链接的文本。分别是:登录为新会员、会员专区、忘记密码、修改数据、站长管理新会员注册:newuser.html包含以下表单,用表格组织如下所示存储数据:savedata.php显示成功注册的信息标题行用户id文本框(2
7、0)性别男女单选框Email文本框(40)住址文本框(60)输入密码密码框(10)*重新确认密码框(10)*送出资料(submit )清除重写(reset)会员注册:logi n. php包含以下表单,用表格组织标题行输入id文本框(20)输入密码密码框(10)*登录(submit)重新输入(reset)忘记密码:forget.php包含以下表单,用表格组织标题行输入Email文本框(40)输入地址文本框(60)查询(submit)重新输入(reset)会员修改数据:modify.php读取会员信息回显在表单中,等待会员修改其中的数据标题行用户id文本框(20)性别男女单选框Email文本框(
8、40)住址文本框(60)输入密码密码框(10) *重新确认密码框(10) *修改(submit)站长管理:mamager.php读取会员信息回显在表格中,等待站长修改,同时上方有导航条导航条编号姓名Email账号住址密码性别复选框N0编号用户IDEmail确定删除(submit)重新选取(reset)四、编码实现1. 主页面1) main.php这是会员管理网页的框架,使用HTML的框架标记,把页面划分为品型结构。主要理解HTML的框架标记的用法。 会员管理 !- FRAMESET-FRAME n ame=show src=n ewuser.htm这一页用框架,但您的浏览器不支持他们!-mai
9、 n.php -2) title.html这只是显示会员管理网页的标题。位于框页的上部。 会员管理网页 -title.html -3) select.html这是会员管理的导航菜单,通过超级链接,与各个功能页面链接。位于框页的下左部对会员和站长登录时,根据不同的编号确定登录后所要执行的程序来完成主要理解HTML的超链接标记的用法,尤其是含传送参数的情况 A HRef= newuser.htm登录新会员 会员专区 忘记密码 修改资料 站长管理 -select.html -4) newuser.html这是框页的下右部。主要是显示超链接的页面。初始页面是新会员注册页 面。通过表单收集会员的资料。为
10、了使页面整齐,使用的表格来布局页面。主要理解HTML的表单标记、表格标记的用法。明确表单处理方式和处理表单的程序,尤其要重视对表单中各个组件的name属性的定义不可忽略。还要注意两次输入密码的组件name属性要不同。 登录成新会员一一请先填写以下资料 id 性别 男 女 Email 住址 输入密码 重新输入 -newuser.html -2. 新会员数据处理savedata.php?phpin clude(ope ndata.php);$sql=select * from member where id=$id;$records=mysql_query($sql);if($id =)$errm
11、sg=ID字段不可为空白!;echo ;echo 错误信息 .$errmsg.;echo ;elseif($sex=)$errmsg=请选择性别!;echo ;echo 错误信息 .$errmsg.;echo ;elseif(!ereg(:al num:+:a In um:+.:al nu m:,$email)$errmsg=电子邮件地址错误!;echo ;echo 错误信息 .$errmsg.;echo ;elseif($addr=)$errmsg=住址字段不能为空白!;echo ;echo 错误信息 .$errmsg.; echo ; elseif(strle n( $password)1
12、0 or strle n( $password)6)$errmsg=请输入6-10个字符的密码!;echo ;echo 错误信息 .$errmsg.;echo ;elseif($password$c on firm)$errmsg=请重新确认密码!;echo ;echo 错误信息 .$errmsg.;echo ;elseif(mysql_fetch_row($records)$errmsg=这个账户已经有人使用了,请换新的ID !;echo ;echo 错误信息 .$errmsg.;echo ;else$errmsg=存储个人资料成功;$sql=i nsert into member(id,e
13、mail,address,password,sex)value ($id,$email,$addr,$password,$sex);mysql_query($sql);echo ;echo 注册信息 .$errmsg.;echo 恭喜你,你已经成功的登录成为新会员!;?-savedata.php -代码解读:这个程序组主要是用来逐层验证用户输入各字段的数据是否准确,并验证 在数据表中是否已有相同的id会员,若数据不准确或者id重复则出现相关的错 误信息。1) 连接数据库的代码写在一个公共模块opendata.php中,有利于代码复用, 这里注意使用include()函数把它包含到所要运用的程序
14、中。-ope ndata.php-2) 从数据库读取和写入数据,PHP是通过把SQL命令定义为字符串,然 后使用函数mysql_query()来实现的。3) 正则表达式:al nu m:+:al num:+.:a In um:是验证电子邮件地址的有效 方法。4)各个表单组件的输入要求可以用 JavaScript在 newuser.html中加以验证,这样做会提高处理的效率。这里通过对按钮组件的事件处理来实现的,这个按钮是自定义按钮,事件是on Click,当触发事件后,执行函数 history.back()返回上一页面,即newuser.html,要求用户重新输入。5)此程序中遇到的变量祥解变
15、量名取值含义$sqlSQL语句把SQL语句定义为字符串$records查询数据表的结果集与数据表对应的数据集合$id/$sex/$addr/$email$password/$c on firm非空字符串6-10个字符串前页表单中用户填写的数据$errmsg非空字符串反馈给用户的错误信息5)此程序中遇到的函数祥解函数用法含义Include文件名 ”放在网页的 _L* Ayr标签之刖;当解释器读到函数时,会把指定的文件读进来Mysql_query($sql)$sql是一个由SQL语句构成的字符串传入一个SQL语句给MySQLhistory.back()无参数返回上一个页面(跳转来的页面)Ereg(
16、正则表达式,$var)$var是字符串变量判断字符匹配Strle n( $var)$var是字符串变量求字符串的长度3. 查询密码这段程序的功能是让用户输入自己的 Email和住址来查询忘记的密码,只要 两者之中有一个为准确的数据即可。表单的处理程序seach.php便会找到并显示出用户的密码。1)填写查询条件:forget.php密码查询输入住址或者电子邮件账号来查询密码 输入 E-mail 输入住址 - forget.php - 与登录界面相似。在表单的下方的,其作用是把处 理程序中的错误信息显示出来。2)取回密码:search.php算法描述若用户的输入(Email或地址)为空,则出现错
17、误信息;若用户输入Emai不空,则用Emai作为条件查询,成功则返回密码;否则,用输入的地址作为条件查询,成功则返回密码,失败则返回无法找回的错误信息并返回前一页面,继续输入;若用户只输入地址,则用地址作为条件查询;成功则返回密码,失败则返回无法找 回的错误信息并返回前一页面,继续输入。这里的查询是:使用SELECT命令查询数据库中与输入的查询条件一致的记录;把记录到的密码存在变量 $check中;若$check不空,查询成功否则失败?in clude(ope ndata.php);if($email=” and $addr=)$errmsg=请输入地址或者电子邮件账号!;Header(Loc
18、ati on: forget.php?errmsg=$errmsg);echo ;if($email)$sql=select * from member where email=$email;$records=mysql_query($sql); list($user,$check,$add,$password,$sex)=mysql_fetch_row($records);if($check)echo 您的密码为 .$password.;elseif($addr)$sql=select * from member where address=$addr; $records=mysql_que
19、ry($sql);list($user,$email,$check,$password,$sex)=mysql_fetch_row($records); if($check)echo 您的密码为 .$password. ;elseecho 无法按您的输入找到您的密码,请检查输入是否有误! ;echo ;elseecho 无法按您的输入找到您的密码,请检查输入是否有误! ;echo ;elseif($addr)$sql=select * from member where address=$addr;$records=mysql_query($sql);list($user,$email,$ch
20、eck,$password)=mysql_fetch_row($records);if($check)echo 您的密码为 .$password.; elseecho 无法按您的输入找到您的密码,请检查输入是否有误! ;echo ;?-search.php -3)此程序中用到的变量祥解变量名取值含义$check字符串数据库中满足查询条件密码,为空时,说明输入的条件不正确4)此程序中用到的函数祥解函数用法含义Header(Locatio n: forget.php?errmsg=$errmsg)放在HTML标记之前:传递HTTP的标头List($user,$email,$check,$passw
21、ord)参数的数据类型可异同时处理一组变量Mysql_fetch_row($records)$records是执行查询语句获得的数据集取得记录,以列表形式返回数据4. 登录页面:log in .php当会员要进入专区服务、修改个人数据时,或者站长要维护会员信息时都要先登录,验明身份后才能进入相应的页面。这里,根据$login的值来决定执行的PHP程序。FORM actio n= method=post 输入 ID 输入密码 -login.php -代码解读:1)通过$login判断用户所要登录的页面,设置页面的标题和处理输入身份信 息的PHP程序,这里的$login是选择了链接后传送来的。2)
22、 显示表单,要求用户填写ID和密码,FORM中? echo $action; ? 动态地设定处理此表单的程序。3)此程序中用到的变量祥解。变量名取值含义$title字符串要登录页面的标题$act ion以PHP程序名为值的字符串要执行的PHP程序名5. 会员专区登录处理member.php这是程序是会员专用的网页,网页的内容可根据需要设计,加在“欢迎光 临会员网页”之后。?in clude(ope ndata.php);$sql=select * from member where id=$id;$records=mysql_query($sql);list($user,$email,$add
23、r,$check,$sex)=mysql_fetch_row($records);if($user=”)$errmsg=ID输入不正确或者尚未登录为新会员;header(Locati on :logi n. php?errmsg=$errmsg&logn=1);elseif($password$check)$errmsg=密码输入不正确! !;header(Locati on :logi n. php?errmsg=$errmsg&logn=1);? ,欢迎光临会员网页。-member.php -代码解读PHP代码部分是验证会员身份的算法描述:建立数据库链接; 读取与输入用户 id 相同的记录
24、; 存放在一列变量中; 若用户名为空,则 设置错误信息; 程序重新定位到登录页面,显示错误信息, (要求用户重新输入) 否则,若用户输入密码与数据库中的不一致,则 设置错误信息; 程序重新定位到登录页面,显示错误信息, (要求用户重新输入) (合法身份,显示欢迎信息)6数据修改登录处理包括两个程序 modify.php 和 update.php。1) modify.php 这段程序在确定了会员身份后,显示所填写的会员信息,供用户修改密码查询输入住址或者电子邮件账号来查询密码 输入 E-mail 输入住址 -modify.php -(1) PHP代码部分是验证会员身份的。算法与member.ph
25、p相同,但增加了 获取单选按钮的选中状态部分。(2)HTML代码部分产生一个表单,各个组件内的数据对应该会员在数据库存储的信息;用户可以在表单上直接修改,并重新确认密码,按下【修改】按钮 便能将此表单中的数据传送到update.php来处理。(3)此程序中用到的变量祥解变量名取值含义$boy空或 selected记录“男”单选按钮是否被选中$girl空或 selected记录“女”单选按钮是否被选中2) update.php这段程序与savedata.php类似,不同之处在于,此处对合法数据添加到数据库 中采用的是更新( UPDATE 命令)?in clude(ope ndata.php);$
26、sql=select * from member where id=$id;$records=mysql_query($sql);if($id=”)$errmsg=ID字段不可为空白!;echo ;echo 错误信息 .$errmsg.;echo ;elseif(!ereg(A:a In um:+:a In um:+.:a In um:,$email)$errmsg=电子邮件地址错误!;echo ;echo 错误信息 .$errmsg.;echo ;elseif($addr=)$errmsg=住址字段不能为空白!;echo ;echo 错误信息 .$errmsg.;echo ;elseif(s
27、trle n( $password)10 or strle n( $password)6)$errmsg=请输入6-10个字符的密码!;echo ;echo 错误信息 .$errmsg.;echo ;elseif($password$c on firm)$errmsg=请重新确认密码!;echo ;echo 错误信息 .$errmsg.;echo ;else$sql=update member set id=$id, email=$email, address=$addr, password=$password, sex=$sex where id=$id;mysql query($sql);
28、7 站长管理登录处理包括两个程序manager.php和delete.php1) manager.php这段程序在确定了站长身份后,显示所数据表中会员的信息,并选取某些数据进行删除。? /marklin clude(ope ndata.php);$sql=select * from member where id=admi nistrator;$records=mysql_query($sql);list($user,$semail,$addr,$check,$sex,$e n)=mysql_fetch_row($records); if($password$check and $enter1
29、true)$errmsg=输入管理员账号或密码错误!;Header(Locatio n:logi n.php?errmsg=$errmsg&log n=3); /markl$sql=select * from member ; /mark2 $records=mysql_query($sql);$total=mysql_ nu m_rows($records);$pagemax=10;$lastp=ceil($total/$pagemax);if ($page no$lastp)$page no=$lastp;elseif($page no $total)$n uml=$total;/mark
30、2$msg仁目前共有 . $total. 名会员,共 .$lastp. 页。”;mark3$msg2=本页是第 .$pageno. 页,;$msg2.=列出了第 .$numf. 至U.$ nu ml. 条记录。;if($page no!=1)$msg.= 第 1 页 ; else$msg.= 第 1 页;$msg.= | ;if($page no1)$msg.=A HRef=ma nager.php?page no=.($page no-1).&en ter仁true 上一页;$msg.= | ;if($page no$lastp)$msg.=A HRef=ma nager.php?page
31、no=.($page no+1).$msg.=&enter仁true下一页 . | ;if($page no !=$lastp)$msg.=A HRef=manager.php?pageno=.($lastp).&enter仁true最后页 ;else$msg.= 最后页 ;$sql=select * from member where (idx=$ numf and idx /mark3/mark4FORM acti on=man ager.php?e nter仁true&page no= method=post 输入页次: FORMactio n=delete.php?page no=&n
32、um f=&numl= method=post 编号 姓名 Email 账号 住址 密码 性别 ?while(list($id,$email,$addr,$password,$sex,$e n,$idx)=mysql_fetch_row($records)echo NO.$idx.;echo .$id.$email.$addr.$password.$sex.;?mark4-ma nager.php -(1) PHP代码的前部分是验证会员身份的。默认的管理员Id为administrator, 此条记录也建立在 member数据表中。如代码段中到mark1处。(2) 接下来是设置分页显示的参数。如代码段中到/mark2处。算法描述:从连接的数据库中读取数据表member所有的记录,存放在变量 $records中获取数据表中包含的记录数,存放在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论