ASP常用的几个功能模块

2014 年 8 月 22 日3820

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%> zjjkw.cn 电脑网
[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%>

http://www.zjjv.com/

参数说明:
pvouch(tablename,fildname,autoidname,indexid)

tablename该事物所在数据库中的表名
fildname该事物用以表明状态的字段名(字段类型是数值型)
autoidname在该表中的自动编号名
indexid用以修改状态的对应自动编号的值

引用示例如下:
<%dowhat=request.QueryString("dowhat")p_id=cint(request.QueryString("p_id"))ifdowhat="tj"andp_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.write""endifselectcasetypenumcase"1"response.Write("")response.Write(rs(""&fildname&""))response.Write("")response.Write("方式1之"&i&"记录")''此处的“方式1”可以替换显示为其余字段的值response.Write("")''如果字段比较多,继续添加新个表格行来显示response.Write("")case"2"response.Write("")response.Write(rs(""&fildname&""))response.Write("")response.Write("")response.Write("方式2之"&i&"记录")response.Write("")response.Write("")endselectif(imodloopnum=0)thenresponse.write""endifrs.movenextnextresponse.Write("")endifrs.closeSetrs=Nothingendfunction%>

http://www.zjjv.com/

参数说明: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)%>

0 0