|
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("") 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("") else if rs(""&pwdfield&"")=cn_pwd then session("cn_name")=rs(""&namefield&"") response.Redirect(reurl) else response.Write("") 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") %>
|
调试地址: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%> >推荐 <%else%> >取消推荐 <%end if%>
|
调试地址: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("") for i=1 to rs.recordcount if (i mod loopnum=1) then response.write"" end if select case typenum case "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("
| ") end select if (i mod loopnum=0) then response.write" " end if rs.movenext next response.Write(" ") 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)%>
|
| |