复用函数之用户操作——减小您的工作量
很多网站都采用了会员制度,我们在新用户注册、用户验证、用户资料更改等地方都要写大量的代码。可是,您有没有发现,这些代码都是重复的呢? 【相关文章:(CopyOnWrite)在多线程环境中】 【扩展阅读:[原创] Questioning C# 】比如验证代码,不管是客户端还是服务器端,用户注册与用户资料更改的代码基本上都是雷同的,既然是雷同的,为什么我们不用函数重复调用呢? 【扩展信息:阅读《Programming Pearl】 对于一个程序,我们不能仅仅是知道如何去写,还要知道为什么要这样写,这样有什么好处,所以在这里必需说说设计思想。 我们知道,验证代码是重复的,我们就从这里下手,将这些代码写成函数再调用,并且将用户注册、资料修改、用户资料验证等与用户注册、资料更新有关的程序全部写在一个页面里,下面我们就以一个新用户注册为例。为了简代码,使读者能看得更清楚,我们将用户注册的条件缩小到两个:username,password,数据库表名为:user;用户名与密码都必输的;数据库连接代码这里就不写了; conn.asp文件包含数据库连接代码与验证函数;htmlencode()为验证用户输入资料的函数,这里也不给出了;前面序号为笔者为方便说明所加的;如果是用户修改资料,我们假设已经用户登陆并写入了cookies名为username。文件名:register.asp
为了简化代码,我们尽量不写与说明本主题无关的代码,请读者自己增加其它代码。<!--#include file="conn.asp"-->
<% dim rs,username,password,action,formaction,aginpass action=request.querystring("action") if action="change" then ´提交表单的的参数,服务器端将以此参数确定调用户函数 formaction="edit" ´更新用户 else formaction="newuser" ´新增用户 end if set rs=server.createobject("adodb.recordset")sub chkuser()
username=request.form("username") password=request.form("password") aginpass=request.form("aginpass") if action="newuser" and username="" then ... 下一页