ASP常用的几个功能模块
2018-09-06 12:51
1,经常写些系统,那么一般都是从登录程序开始,每接一个系统就写一次登录,好麻烦。
干脆直接做个登录验证函数吧,对我来说,大都情况可以胜任了:)
[code]
<%
Functionchk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)dimcn_name,cn_pwdcn_name=trim(request.form(&requestname&))cn_pwd=trim(request.form(&requestpwd&))ifcn_name=orcn_pwd=thenresponse.Write(<scriptlanguage=javascript>alert(请将帐号密码填写完整,谢谢合作。);history.go(-1)</script>)endifSetrs=Server.CreateObject(ADODB.Recordset)sql=Select*from&tablename&where&namefield&=&cn_name&rs.opensql,conn,1,1ifrs.eofthenresponse.Write(<scriptlanguage=javascript>alert(没有该会员ID,请确认有没有被申请。);history.go(-1)</script>)elseifrs(&pwdfield&)=cn_pwdthensession(cn_name)=rs(&namefield&)response.Redirect(reurl)elseresponse.Write(<scriptlanguage=javascript>alert(提醒,您的帐号和密码是不吻合。注意数字和大小写。);history.go(-1)</script>)endifendifrs.closeSetrs=NothingEndFunction%>
[code]
参数说明:
chk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)
requestname为接受HTML页中输入名称的INPUT控件名
requestpwd为接受HTML页中输入密码的INPUT控件名
tablename为数据库中保存注册信息的表名
namefield为该信息表中存放用户名称的字段名
pwdfield为该信息表中存放用户密码的字段名
reurl为登录正确后跳转的页
引用示例如下:
<%callchk_regist(b_name,b_pwd,cn_admin,cn_name,cn_pwd,admin.asp)%>
2,经常有可能对某个事物进行当前状态的判断,一般即做一字段(数值类型,默认值为0)
通过对该字段值的修改达到状态切换的效果。那么,我又做了个函数,让自己轻松轻松。
<%Functionpvouch(tablename,fildname,autoidname,indexid)dimfildvalueSetrs=Server.CreateObject(ADODB.Recordset)sql=Select*from&tablename&where&autoidname&=&indexidrs.Opensql,conn,2,3fildvalue=rs(&fildname&)iffildvalue=0thenfildvalue=1elsefildvalue=0endifrs(&fildname&)=fildvaluers.updaters.closeSetrs=NothingEndFunction%>
参数说明:
pvouch(tablename,fildname,autoidname,indexid)
tablename该事物所在数据库中的表名
fildname该事物用以表明状态的字段名(字段类型是数值型)
autoidname在该表中的自动编号名
indexid用以修改状态的对应自动编号的值
引用示例如下:
<%dowhat=request.QueryString(dowhat)p_id=cint(request.QueryString(p_id))ifdowhat=tjandp_id<>thencallpvouch(cn_products,p_vouch,p_id,p_id)endif%><%ifrs(p_vouch)=0then%>>推荐<%else%>>取消推荐<%endif%>
3,为很多中小企业写站点,一般产品展示是个大项目,那么做成的页面也就不同。
要不就是横排来几个,要不就是竖排来几个,甚至全站要翻来覆去的搞个好几次,麻烦也很累。
索性写个函数能缓解一下,于是就成了下面
<%functionshowpros(tablename,topnum,fildname,loopnum,typenum)Setrs=Server.CreateObject(ADODB.Recordset)sql=Selecttop&topnum&*from&tablenamers.Opensql,conn,1,1ifrs.eofandrs.bofthenresponse.Write(暂时无该记录)elseresponse.Write()fori=1tors.recordcountif(imodloopnum=1)thenresponse.writeendifselectcasetypenumcase1response.Write()response.Write(rs(&fildname&))response.Write()response.Write(方式1之&i&记录)此处的“方式1”可以替换显示为其余字段的值response.Write()如果字段比较多,继续添加新个表格行来显示response.Write()case2response.Write()response.Write(rs(&fildname&))response.Write()response.Write()response.Write(方式2之&i&记录)response.Write()response.Write()endselectif(imodloopnum=0)thenresponse.writeendifrs.movenextnextresponse.Write()endifrs.closeSetrs=Nothingendfunction%>
参数说明:showpros(tablename,topnum,fildname,loopnum,typenum)
whichpro为选择何类型的产品种类
topnum表示提取多少条记录
fildname表示调试显示的字段,具体应用的时候可以省去该参数,在函数内部直接使用
loopnum表示显示的循环每行的记录条数
typenum表示循环显示的方法:目前分了两类,横向并列、纵向并列显示同一数据记录行的不同记录
引用示例如下:
<%ifrequest.form(submit)<>thentopnum=request.form(topnum)loopnum=request.form(loopnum)typenum=request.form(typenum)elsetopnum=8loopnum=2typenum=1endif%><%callshowpros(cn_products,topnum,p_name,loopnum,typenum)%>
上一篇:ASP文件上传原理分析及实现实例
下一篇:禁止站外提交表单