程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP常用的幾個功能模塊

ASP常用的幾個功能模塊

編輯:關於ASP編程
1,經常寫些系統,那麼一般都是從登錄程序開始,每接一個系統就寫一次登錄,好麻煩。

干脆直接做個登錄驗證函數吧,對我來說,大都情況可以勝任了:)
[code]
<%
Function chk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)dim cn_name,cn_pwdcn_name=trim(request.form(""&requestname&""))cn_pwd=trim(request.form(""&requestpwd&""))if cn_name="" or cn_pwd="" thenresponse.Write("<script language=javascript>alert(""請將帳號密碼填寫完整,謝謝合作。"");history.go(-1)</script>")end ifSet rs = Server.CreateObject ("ADODB.Recordset")sql = "Select * from "&tablename&" where "&namefield&"=''"&cn_name&"''"rs.open sql,conn,1,1if rs.eof thenresponse.Write("<script language=javascript>alert(""沒有該會員ID,請確認有沒有被申請。"");history.go(-1)</script>")elseif rs(""&pwdfield&"")=cn_pwd then session("cn_name")=rs(""&namefield&"")response.Redirect(reurl)elseresponse.Write("<script language=javascript>alert(""提醒,您的帳號和密碼是不吻合。注意數字和大小寫。"");history.go(-1)</script>")end ifend ifrs.close Set rs = NothingEnd Function%>
[code]
參數說明:
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")%>

2,經常有可能對某個事物進行當前狀態的判斷,一般即做一字段(數值類型,默認值為0)
通過對該字段值的修改達到狀態切換的效果。那麼,我又做了個函數,讓自己輕松輕松。
<%Function pvouch(tablename,fildname,autoidname,indexid)dim fildvalueSet rs = Server.CreateObject ("ADODB.Recordset")sql = "Select * from "&tablename&" where "&autoidname&"="&indexidrs.Open sql,conn,2,3fildvalue=rs(""&fildname&"")if fildvalue=0 thenfildvalue=1elsefildvalue=0end ifrs(""&fildname&"")=fildvaluers.updaters.close Set rs = NothingEnd 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<>"" thencall pvouch("cn_products","p_vouch","p_id",p_id)end if%><%if rs("p_vouch")=0 then%>>推薦<%else%>>取消推薦<%end if%>

3,為很多中小企業寫站點,一般產品展示是個大項目,那麼做成的頁面也就不同。
要不就是橫排來幾個,要不就是豎排來幾個,甚至全站要翻來覆去的搞個好幾次,麻煩也很累。
索性寫個函數能緩解一下,於是就成了下面
<%function showpros(tablename,topnum,fildname,loopnum,typenum)Set rs = Server.CreateObject ("ADODB.Recordset")sql = "Select top "&topnum&" * from "&tablenamers.Open sql,conn,1,1if rs.eof and rs.bof thenresponse.Write("暫時無該記錄")elseresponse.Write("")for i=1 to rs.recordcountif (i mod loopnum=1) thenresponse.write" "end ifselect case typenumcase "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 selectif (i mod loopnum=0) thenresponse.write" "end ifrs.movenextnextresponse.Write(" ")end ifrs.close Set rs = Nothingend function%>

參數說明:showpros(tablename,topnum,fildname,loopnum,typenum)
whichpro為選擇何類型的產品種類
topnum表示提取多少條記錄
fildname表示調試顯示的字段,具體應用的時候可以省去該參數,在函數內部直接使用
loopnum表示顯示的循環每行的記錄條數
typenum表示循環顯示的方法:目前分了兩類,橫向並列、縱向並列顯示同一數據記錄行的不同記錄

引用示例如下:
<%if request.form("submit")<>"" thentopnum=request.form("topnum")loopnum=request.form("loopnum")typenum=request.form("typenum")elsetopnum=8loopnum=2typenum=1end if%><%call showpros("cn_products",topnum,"p_name",loopnum,typenum)%>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved