24.8 会员信息模块设计
视频讲解:光盘TMlx24会员信息模块设计.exe
24.8.1 会员信息模块概述
图24.20 会员中心
用户登录后,即可看到会员信息模块。在这里,可以进行查看或修改个人信息及密码、查看购物车和安全退出等操作。本节只对会员信息模块中的“会员中心”和“安全退出”进行讲解,关于“查看购物车”将在商品模块中进行介绍。会员信息模块的运行效果如图24.20所示。
24.8.2 会员信息模块技术分析
在会员信息模块中,以SESSION变量中存储的用户名称为条件,从会员信息表中查询出会员信息,并且将会员信息存储到模板变量中,最后在模板页中输出会员信息。member.php的代码如下:
【例24.21】代码位置:光盘TMsl24member.php
<?php /* 查找用户资料 */ if(isset($_SESSION['member'])){ $sql = "select * from tb_user where name = '".$_SESSION['member']."'"; $arr = $admindb->ExecSQL($sql, $conn); if(isset($_GET['action']) && $_GET['action'] == 'modify'){ $smarty->assign('check', "find"); $smarty->assign('pwdarr', $arr); }else{ $smarty->assign('check', "notfind"); $smarty->assign('pwdarr', $arr); } } ?>
member.php文件中查询出的数据是会员信息模板功能实现的根本。
24.8.3 会员中心
当单击“会员中心”超链接时,会回传给当前页一个page值,当前页根据这个page值来载入member.php文件。
1.创建PHP页面
与登录模块设计不同,本节首先来创建PHP页面。因为该模块中的模板需要使用数据库中的数据及一些动态信息,这些都需要在PHP页中先行获取及处理,然后再传给模板页。会员中心页面的代码请参考技术分析中的内容。
2.创建模板页
该模块包括查看信息模板及修改密码模板,都存储于member.tpl模板文件中。
【例24.22】代码位置:光盘TMsl24systemtemplatesmember.tpl
<link rel="stylesheet" href="css/member.css" /> <script language="javascript" src="js/member.js"></script> {if $check=="find" } <p align="left">{$smarty.session.member}> > > <a href='? page=hyzx' id="mem"> 查看信息 </a>> > > <a href='? page=hyzx&action=modify' id="mem">修改密码</a></p> <table id="member"width="300"border="0"cellpadding="0"cellspacing="0"> <form id="member" name="member" method="post" action="modify_pwd_chk.php" onSubmit="return pwd(member)"> <tr> <td height="25" colspan="2" align="center" valign="middle" id="first"><font color="#f0f0f0">修改密码 </font></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">原密码:</td> <td height="25" align="left" valign="middle" id="right"><input id="old" name="old" type="password" /></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">新密码:</td> <td height="25" align="left" valign="middle" id="right"><input id="new1" name="new1" type="password" /></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">确认密码:</td> <td height="25" align="left" valign="middle" id="right"><input id="new2" name="new2" type="password" /></td> </tr> <tr> <td height="30" colspan="2" align="center" valign="middle"><input id="enter" name="enter" type="submit" value="修改" /></td> </tr> </form> </table> {else} <p align="left">{$smarty.session.member}> > > <a href='? page=hyzx' id="mem">查看信息</a>> > > <a href='? page=hyzx&action=modify' id="mem">修改密码</a></p> {section name=pwd_id loop=$pwdarr} <table id='member' width="500" border="0" cellpadding="0" cellspacing="0"> <form id="member" name="member" method="post" action="modify_info_chk.php" onSubmit="return mem(member)" > <tr> <td height="25" colspan="2" align="center" valign="middle" id="first"><font color="#f0f0f0">{$pwdarr [pwd_id].name}信息(不可更改信息)</font></td> </tr> <tr> <td width="25%"height="25"align="right"valign="middle"id="left"> 会员编号:</td> <td height="25" align="left" valign="middle" id="right"> {$pwdarr[pwd_id].id}</td> </tr> <tr> <td width="25%"height="25"align="right"valign="middle"id="left"> 会员名称:</td> <td height="25" align="left" valign="middle" id="right"> {$pwdarr[pwd_id].name}</td> </tr> <tr> <td width="25%"height="25"align="right"valign="middle"id="left"> 密保问题:</td> <td height="25" align="left" valign="middle" id="right"> {$pwdarr[pwd_id].question}</td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">密保答案:</td> <td height="25" align="left" valign="middle" id="right"> {$pwdarr[pwd_id].answer}</td> </tr> <tr> <td width="25%"height="25"align="right"valign="middle"id="left"> 注册时间:</td> <td height="25" align="left" valign="middle" id="right"> {$pwdarr[pwd_id].addtime}</td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">消费总额:</td> <td height="25" align="left" valign="middle" id="right"> {$pwdarr[pwd_id].consume}</td> </tr> <tr> <td height="25" colspan="2" align="center" valign="middle" id="first"><font color="#f0f0f0">{$pwdarr [pwd_id].name}信息(可更改信息)</font></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">真实姓名:</td> <td height="25" align="left" valign="middle" id="right"><input id="realname" name="realname" type="text" value="{$pwdarr[pwd_id].realname}" /> <input type="hidden" name="userid" value="{$pwdarr[pwd_id].id}" /> <font color="red">*</font></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">身份证号:</td> <td height="25" align="left" valign="middle" id="right"><input id="card" name="card" type="text" value="{$pwdarr[pwd_id].card}" /> <font color="red">*</font></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">移动电话:</td> <td height="25" align="left" valign="middle" id="right"><input id="tel" name="tel" type="text" value= "{$pwdarr[pwd_id].tel}"> <font color="red">*</font> </td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">固定电话:</td> <td height="25" align="left" valign="middle" id="right"><input id="phone" name="phone" type="text" value="{$pwdarr[pwd_id].phone}" /> <font color="red">*</font></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">Email:</td> <td height="25" align="left" valign="middle" id="right"><input id="email" name="email" type="text" value="{$pwdarr[pwd_id].Email}" /></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">QQ号:</td> <td height="25" align="left" valign="middle" id="right"><input id="qq" name="qq" type="text" value="{$pwdarr[pwd_id].QQ}" /></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">邮编:</td> <td height="25" align="left" valign="middle" id="right"><input id="code" name="code" type="text" value="{$pwdarr[pwd_id].code}" /></td> </tr> <tr> <td width="25%" height="25" align="right" valign="middle" id="left">地址:</td> <td height="25" align="left" valign="middle" id="right"><input id="address" name="address" type="text" value="{$pwdarr[pwd_id].address}" /> <font color="red">*</font></td> </tr> <tr> <td height="30" colspan="2" align="center" valign="middle"><input name="enter" type="submit" id="enter" value="修改" /> <input name="reset" type="reset" id="reset" value="重置" /></td> </tr> </form> </table> {/section} {/if}
3.创建脚本文件
该模块的脚本文件和用户注册模块类似,都是对信息的合法性进行验证,如信息是否为空、是否符合规范等,这里不再赘述。
4.创建处理页
当信息验证通过后,系统将跳转到处理页进行信息处理。本模块处理页分信息修改和密码修改两个页面。首先介绍信息修改页,代码如下:
【例24.23】代码位置:光盘TMsl24modify_info_chk.php
<?php session_start(); header("Content-type: text/html; charset=UTF-8"); //设置文件编码格式 require("system/system.inc.php"); //包含配置文件 $sql = "update tb_user set realname='".$_POST['realname']."', card='".$_POST['card']."', tel='".$_POST['tel']."', phone= '".$_POST['phone']."', Email='".$_POST['email']."', QQ='".$_POST['qq']."', code='".$_POST['code']."', address='".$_ POST['address']."' where id = '".$_POST['userid']."'"; $arr = $admindb->ExecSQL($sql, $conn); if($arr) echo "<script>alert(’修改成功’); location=('index.php'); </script>"; else echo "<script>alert(’修改失败’); history.go(-1); </script>"; ?>
密码修改页的操作流程也十分类似,只是更新的数组要小得多,只有一个字段。修改密码页代码如下:
【例24.24】代码位置:光盘TMsl24 modify_pwd_chk.php
<?php session_start(); header("Content-type: text/html; charset=UTF-8"); //设置文件编码格式 require("system/system.inc.php"); //包含配置文件 $sql="select * from tb_user where name = '".$_SESSION['member']."' and password='".md5($_POST['old'])."' "; $arr=$admindb->ExecSQL($sql, $conn); //判断用户名和密码是否正确 if($arr){ $sql = "update tb_user set password='".md5($_POST['new1'])."' where name = '".$_SESSION['member']."' and password='".md5($_POST['old'])."'"; //更新密码 $arr = $admindb->ExecSQL($sql, $conn); echo "<script>alert(’密码修改成功!'); window.location.href='index.php'; </script>"; }else{ echo "<script>alert(’密码修改失败!'); window.location.href='index.php'; </script>"; } ?>
24.8.4 安全退出
当用户需要离开网站时,可以单击“安全退出”超链接来调用logout()函数,当用户确认退出后,则跳转到logout页面,销毁session并回到首页。安全退出所涉及的页面及代码如下:
【例24.25】代码位置:光盘TMsl24jsinfo.js
function logout(){ if(confirm("确定要退出登录吗? ")){ //输出选择框,用户可以单击“确认”或“取消”按钮 window.open('logout.php', '_parent', '', false); //如果用户确认退出,则打开logout.php页 }else return false; }
【例24.26】代码位置:光盘TMsl24 logout.php
<?php session_start(); header("Content-type: text/html; charset=UTF-8"); //设置文件编码格式 session_destroy(); echo '<script>alert(’用户已安全退出!'); location=('index.php'); </script>'; ?>
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。