ASP应用中的应用函数

王朝asp·作者佚名  2006-11-24
宽屏版  字体: |||超大  

1,经常写些系统,那么一般都是从登录程序开始,每接一个系统就写一次登录,好麻烦。

干脆直接做个登录验证函数吧,对我来说,大都情况可以胜任了:)

<%

Function chk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)

dim cn_name,cn_pwd

cn_name=trim(request.form(""&requestname&""))

cn_pwd=trim(request.form(""&requestpwd&""))

if cn_name="" or cn_pwd="" then

response.Write("<script language=javascript>alert(""请将帐号密码填写完整,谢谢合作。"");history.go(-1)</script>")

end if

Set rs = Server.CreateObject ("ADODB.Recordset")

sql = "Select * from "&tablename&" where "&namefield&"='"&cn_name&"'"

rs.open sql,conn,1,1

if rs.eof then

response.Write("<script language=javascript>alert(""没有该会员ID,请确认有没有被申请。"");history.go(-1)</script>")

else

if rs(""&pwdfield&"")=cn_pwd then

session("cn_name")=rs(""&namefield&"")

response.Redirect(reurl)

else

response.Write("<script language=javascript>alert(""提醒,您的帐号和密码是不吻合。注意数字和大小写。"");history.go(-1)</script>")

end if

end if

rs.close

Set rs = Nothing

End Function

%>

参数说明:

chk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)

requestname 为接受HTML页中输入名称的INPUT控件名

requestpwd 为接受HTML页中输入密码的INPUT控件名

tablename 为数据库中保存注册信息的表名

namefield 为该信息表中存放用户名称的字段名

pwdfield 为该信息表中存放用户密码的字段名

reurl 为登录正确后跳转的页

引用示例如下:

<%

call chk_regist("b_name","b_pwd","cn_admin","cn_name","cn_pwd","admin.asp")

%>

调试地址:[url=http://www.cnbruce.com/test/function/regist.asp]http://www.cnbruce.com/test/function/regist.asp

2,经常有可能对某个事物进行当前状态的判断,一般即做一字段(数值类型,默认值为0)

通过对该字段值的修改达到状态切换的效果。那么,我又做了个函数,让自己轻松轻松。

<%

Function pvouch(tablename,fildname,autoidname,indexid)

dim fildvalue

Set rs = Server.CreateObject ("ADODB.Recordset")

sql = "Select * from "&tablename&" where "&autoidname&"="&indexid

rs.Open sql,conn,2,3

fildvalue=rs(""&fildname&"")

if fildvalue=0 then

fildvalue=1

else

fildvalue=0

end if

rs(""&fildname&"")=fildvalue

rs.update

rs.close

Set rs = Nothing

End Function

%>

参数说明:

pvouch(tablename,fildname,autoidname,indexid)

tablename 该事物所在数据库中的表名

fildname 该事物用以表明状态的字段名(字段类型是数值型)

autoidname 在该表中的自动编号名

indexid 用以修改状态的对应自动编号的值

引用示例如下:

<%

dowhat=request.QueryString("dowhat")

p_id=cint(request.QueryString("p_id"))

if dowhat="tj" and p_id<>"" then

call pvouch("cn_products","p_vouch","p_id",p_id)

end if

%>

<%if rs("p_vouch")=0 then%>

<a href=showpro.asp?dowhat=tj&p_id=<%=rs("p_id")%>>推荐</a>

<%else%>

<a href=showpro.asp?dowhat=tj&p_id=<%=rs("p_id")%>>取消推荐</a>

<%end if%>

调试地址:[url=http://www.cnbruce.com/test/function/showpro.asp]http://www.cnbruce.com/test/function/showpro.asp

3,为很多中小企业写站点,一般产品展示是个大项目,那么做成的页面也就不同。

要不就是横排来几个,要不就是竖排来几个,甚至全站要翻来覆去的搞个好几次,麻烦也很累。

索性写个函数能缓解一下,于是就成了下面

<%

function showpros(tablename,topnum,fildname,loopnum,typenum)

Set rs = Server.CreateObject ("ADODB.Recordset")

sql = "Select top "&topnum&" * from "&tablename

rs.Open sql,conn,1,1

if rs.eof and rs.bof then

response.Write("暂时无该记录")

else

response.Write("<table width='100%'>")

for i=1 to rs.recordcount

if (i mod loopnum=1) then

response.write"<tr>"

end if

select case typenum

case "1"

response.Write("<td><table width='100%'><tr><td bgcolor=red width='50%'>")

response.Write(rs(""&fildname&""))

response.Write("</td><td bgcolor=black>")

response.Write("方式1之"&i&"记录")'此处的“方式1”可以替换显示为其余字段的值

response.Write("</td></tr>")'如果字段比较多,继续添加新个表格行来显示

response.Write("</table></td>")

case "2"

response.Write("<td><table width='100%'><tr><td bgcolor=red>")

response.Write(rs(""&fildname&""))

response.Write("</td></tr>")

response.Write("<tr><td bgcolor=black>")

response.Write("方式2之"&i&"记录")

response.Write("</td></tr>")

response.Write("</table></td>")

end select

if (i mod loopnum=0) then

response.write"</tr>"

end if

rs.movenext

next

response.Write("</table>")

end if

rs.close

Set rs = Nothing

end function

%>

参数说明:showpros(tablename,topnum,fildname,loopnum,typenum)

whichpro为选择何类型的产品种类

topnum表示提取多少条记录

fildname表示调试显示的字段,具体应用的时候可以省去该参数,在函数内部直接使用

loopnum表示显示的循环每行的记录条数

typenum表示循环显示的方法:目前分了两类,横向并列、纵向并列显示同一数据记录行的不同记录

引用示例如下:

<%

if request.form("submit")<>"" then

topnum=request.form("topnum")

loopnum=request.form("loopnum")

typenum=request.form("typenum")

else

topnum=8

loopnum=2

typenum=1

end if

%>

<%call showpros("cn_products",topnum,"p_name",loopnum,typenum)%>

<form action=index.asp method=post>

显示的记录总数:<input name=topnum value=<%=topnum%>>

显示的行循环数:<input name=loopnum value=<%=loopnum%>>

显示的方式类型:<select name=typenum>

<option value="1">方式1</option>

<option value="2">方式2</option>

</select>

<input type=submit name=submit value=Sure>

</form>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有