返回列表 发帖

[WEB开发][转帖]一些有用的ASP自定义函数

  1. <%
  2. dim conn
  3. dim connstr
  4. dim connType,dbPath
  5. connType=1
  6. Set conn= Server.CreateObject("ADODB.Connection")
  7. IF conn.State = 0 Then
  8. IF connType= 1 Then
  9. connstr = "Provider=SQLOLEDB;uid=shadow;pwd=XXXXXX;Initial Catalog=XXXXXX;server=(local);"
  10. Else
  11. dbPath = Server.Mappath("\") & "\hkcn\database\webhkcn.mdb"
  12. connstr = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="& dbPath &";"
  13. End If
  14. conn.Open connstr
  15. End If
  16. Function SQLExecute(SqlStr)
  17. on error resume next
  18. Dim Rs
  19. Set Rs=Server.CreateObject("Adodb.Recordset")
  20. Rs.open SqlStr,conn,1,3
  21. Set SQLExecute=Rs
  22. If Err.Number <> 0 Then
  23. Response.Write("<font color=red>抱歉你在访问本页时出现一个错误以下是错误的详细信息。<br>")
  24. Response.Write("错误号:"&CStr(Hex(Err.Number))&"<br>")
  25. Response.Write("错误对象:"&Err.Source&"<br>")
  26. Response.Write("有关错误的详细描述:"&Err.Description&"<br>")
  27. Response.Write("如果你始终无法访问本页请联系管理员。")
  28. End If
  29. End Function
  30. ';=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  31. %>
  32. <%
  33. ';=================================================
  34. '; Public Function
  35. '; Programmer by Jiang Jian(Shadow)
  36. '; Email:vbcc@sohu.com
  37. '; Date: 2003-05-26
  38. ';=================================================
  39. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  40. ';判断用户是否登录
  41. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  42. Function ChkLogin(UserName,Pass)
  43. Dim Sql,Rs
  44. Sql="Select id,username,password FROM member WHERE username=';"&UserName&"'; And password=';"&Pass&"';"
  45. Set Rs=SQLExecute(Sql)
  46. If Not (Rs.bof or Rs.eof) Then
  47. ChkLogin=Rs("ID")
  48. Else
  49. ChkLogin=False
  50. End If
  51. Rs.Close
  52. Set Rs=Nothing
  53. End Function
  54. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  55. ';判断是否非法提交数据 True 为正常 False 为非法提交
  56. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  57. Function ChkPost()
  58. Dim server_v1,server_v2
  59. Chkpost=False
  60. server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
  61. server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
  62. If Mid(server_v1,8,Len(server_v2))<>server_v2 Then
  63. Chkpost=False
  64. Else
  65. Chkpost=True
  66. End if
  67. End function
  68. ';====================================================
  69. ';判断用户名是否包含非法字符 True 合法的字符串
  70. ';====================================================
  71. Function CheckString(Str1)
  72. Dim N
  73. Dim S
  74. For N = 1 To Len(Str1)
  75. S = Asc(Mid(Str1, N))
  76. If S > 47 And S < 58 Or S > 64 And S < 91 Or S > 96 And S < 122 Or S = 95 Then ';合法的字符串
  77. CheckString=True
  78. Else
  79. CheckString=False
  80. End If
  81. Next
  82. End Function
  83. ';====================================================
  84. ';判断字符是否为中文 True 合法 False 非法
  85. ';====================================================
  86. Function IsChinese(Str)
  87. Dim N
  88. Dim S
  89. For N = 1 To Len(Str)
  90. S = Asc(Mid(Str, N))
  91. If S => 0 Then
  92. IsChinese=False
  93. Exit for
  94. Else
  95. IsChinese=True
  96. End If
  97. Next
  98. End Function
  99. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  100. ';判断是否为合法的电话号码 True 合法 False 非法
  101. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  102. Function IsPhone(Str)
  103. Dim strArray
  104. IsPhone=False
  105. strArray=Split(Str,"-",-1,1)
  106. IF Ubound(strArray)> 0 Then
  107. IF Len(strArray(0))>2 And Len(strArray(0))< 5 Then
  108. IF Len(strArray(1))>6 And Len(strArray(1))< 9 Then
  109. If IsNumeric(strArray(0))=True And IsNumeric(strArray(1)) Then
  110. IsPhone=True
  111. End If
  112. End If
  113. End If
  114. End IF
  115. End Function
  116. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  117. ';判断是否为合法的电子邮件地址 True 合法 False 非法
  118. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  119. Function IsValidEmail(Email)
  120. Dim Names, name, i, c
  121. IsValidEmail = True
  122. Names = Split(Email, "@")
  123. If UBound(Names) <> 1 Then
  124. IsValidEmail = False
  125. Exit function
  126. End If
  127. For Each Name IN Names
  128. If Len(name) <= 0 Then
  129. IsValidEmail = False
  130. Exit Function
  131. End If
  132. For i = 1 To Len(name)
  133. c = Lcase(Mid(name, i, 1))
  134. If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then
  135. IsValidEmail = False
  136. Exit Function
  137. End If
  138. Next
  139. If Left(name, 1) = "." or Right(name, 1) = "." Then
  140. IsValidEmail = False
  141. Exit Function
  142. End If
  143. Next
  144. If InStr(names(1), ".") <= 0 Then
  145. IsValidEmail = False
  146. Exit Function
  147. End If
  148. i = Len(names(1)) - InStrRev(names(1), ".")
  149. If i <> 2 And i <> 3 Then
  150. IsValidEmail = False
  151. Exit Function
  152. End If
  153. If InStr(Email, "..") > 0 Then
  154. IsValidEmail = False
  155. End If
  156. End function
  157. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  158. ';数据分页显示 strUrl 设置成自己本页
  159. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  160. Function PageSplit(objRs,strUrl,cssClass,listSize,cssSep)
  161. Dim pgnum,page
  162. page=Request("page")
  163. objRs.PageSize = listSize
  164. pgnum=objRs.Pagecount
  165. if page="" or clng(page)<1 then page=1
  166. if clng(page) > pgnum then page=pgnum
  167. if pgnum>0 then objRs.AbsolutePage=page
  168. If page=1 Then
  169. Response.Write " 首 页 | 上一页 | "
  170. Else
  171. Response.Write " <a class="& cssClass &" href="&strUrl&"page=1>首 页</a><span class="& cssSep &"> | </span>"
  172. Response.Write "<a class="& cssClass &" href="&strUrl&"page="&page-1&"> 上一页</a><span class="& cssSep &"> | </span>"
  173. End if
  174. If objRs.pagecount-page<1 Then
  175. Response.Write "下一页 | 尾 页"
  176. Else
  177. Response.Write "<a class="& cssClass &" href="&strUrl&"page="&page+1&">下一页</a><span class="& cssSep &"> | </span>"
  178. Response.Write "<a class="& cssClass &" href="&strUrl&"page="&objRs.pagecount&">尾 页</a>"
  179. End if
  180. Response.Write "              第 "&page&" 页/共 "&pgnum&" 页"
  181. End Function
  182. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  183. ';文章分页显示 strUrl 设置成自己本页
  184. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  185. Public Function SplitPage(strContents)
  186. Dim Page,PageArray
  187. PageArray=SepPosition(strContents)
  188. Page=Request("page")
  189. pgnum=UBound(PageArray)
  190. IF page="" or clng(page)<0 Then page=0
  191. IF Clng(page) > pgnum Then page=pgnum
  192. IF pgnum = 0 Then ';只有一页
  193. SplitPage=strContents
  194. Exit Function
  195. End IF
  196. If Page = 0 Then
  197. SplitPage=Mid(strContents,1,PageArray(page)-1)
  198. ElseIf Clng(Page)=pgnum Then
  199. SplitPage=Mid(strContents,PageArray(page-1)+19,Len(strContents))
  200. Else
  201. SplitPage=Mid(strContents,PageArray(page-1)+19,PageArray(page)-(PageArray(page-1)+19))
  202. End if
  203. End Function
  204. Public Function NavPage(strPage)
  205. Page=Request("page")
  206. IF page="" or clng(page)<0 Then page=0
  207. IF pgnum > 0 Then
  208. IF Page = 0 Then
  209. Response.Write "<a class=""SepPage"" href="""&strPage&"&page=" & page & """>上一页</a> "
  210. Else
  211. Response.Write "<a class=""SepPage"" href="""&strPage&"&page=" & page - 1 & """>上一页</a> "
  212. End if
  213. If pgnum-Clng(Page)<1 Then
  214. Response.Write "<a class=""SepPage"" href="""&strPage&"&page=" & page &""">下一页</a> "
  215. Else
  216. Response.Write "<a class=""SepPage"" href="""&strPage&"&page=" & page + 1 & """>下一页</a>"
  217. End If
  218. Response.Write "<span class=""I""> 共 " & pgnum + 1 & " 页 当前第 " & page + 1 & " 页</span>"
  219. End IF
  220. End Function
  221. Public Function SepPosition(strContents)
  222. Dim intPos,strPos
  223. Dim intPageArray,strTemp
  224. strTemp = "[PAGE]------[/PAGE]"
  225. intPos=Instr(strContents,strTemp)
  226. strPos = intPos
  227. Do While (intPos)
  228. intPos=Instr(intPos+19,strContents,strTemp)
  229. strPos=strPos & "," & intPos
  230. Loop
  231. SepPosition=Split(strPos,",")
  232. End Function
  233. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  234. ';截取一定数量的文字输出
  235. ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  236. Public Function OutText(strText,intOutSize)
  237. IF Len(strText)>intOutSize Then
  238. OutText = Left(strText,intOutSize-3) & "..."
  239. Else
  240. OutText = strText
  241. End If
  242. End Function
  243. %>
复制代码

[WEB开发][转帖]一些有用的ASP自定义函数

Function PageSplit(objRs,strUrl,cssClass,listSize,cssSep) Dim pgnum,page page=Request("page") objRs.PageSize = listSize pgnum=objRs.Pagecount if page="" or clng(page)<1 then page=1 if clng(page) > pgnum then page=pgnum if pgnum>0 then objRs.AbsolutePage=page If page=1 Then Response.Write " 首 页 | 上一页 | " Else Response.Write " 首 页 | " Response.Write " 上一页 | " End if If objRs.pagecount-page<1 Then Response.Write "下一页 | 尾 页" Else Response.Write "下一页 | " Response.Write "尾 页" End if Response.Write "              第 "&page&" 页/共 "&pgnum&" 页" End Function 这段分页代码怎么用呢?直接放到我的gonggaolan.asp里就可以自动分页了吗? 我现在是一页显示所有的通知,呵呵``别笑我!!

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ';数据分页显示 strUrl 设置成自己本页 ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Function PageSplit(objRs,strUrl,cssClass,listSize,cssSep) Dim pgnum,page page=Request("page") objRs.PageSize = listSize pgnum=objRs.Pagecount if page="" or clng(page)<1 then page=1 if clng(page) > pgnum then page=pgnum if pgnum>0 then objRs.AbsolutePage=page If page=1 Then Response.Write " 首 页 | 上一页 | " Else Response.Write " 首 页 | " Response.Write " 上一页 | " End if If objRs.pagecount-page<1 Then Response.Write "下一页 | 尾 页" Else Response.Write "下一页 | " Response.Write "尾 页" End if Response.Write "              第 "&page&" 页/共 "&pgnum&" 页" End Function ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ';文章分页显示 strUrl 设置成自己本页 ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Public Function SplitPage(strContents) Dim Page,PageArray PageArray=SepPosition(strContents) Page=Request("page") pgnum=UBound(PageArray) IF page="" or clng(page)<0 Then page=0 IF Clng(page) > pgnum Then page=pgnum IF pgnum = 0 Then ';只有一页 SplitPage=strContents Exit Function End IF If Page = 0 Then SplitPage=Mid(strContents,1,PageArray(page)-1) ElseIf Clng(Page)=pgnum Then SplitPage=Mid(strContents,PageArray(page-1)+19,Len(strContents)) Else SplitPage=Mid(strContents,PageArray(page-1)+19,PageArray(page)-(PageArray(page-1)+19)) End if End Function Public Function NavPage(strPage) Page=Request("page") IF page="" or clng(page)<0 Then page=0 IF pgnum > 0 Then IF Page = 0 Then Response.Write "上一页 " Else Response.Write "上一页 " End if If pgnum-Clng(Page)<1 Then Response.Write "下一页 " Else Response.Write "下一页" End If Response.Write " 共 " & pgnum + 1 & " 页 当前第 " & page + 1 & " 页" End IF End Function Public Function SepPosition(strContents) Dim intPos,strPos Dim intPageArray,strTemp strTemp = "[PAGE]------[/PAGE]" intPos=Instr(strContents,strTemp) strPos = intPos Do While (intPos) intPos=Instr(intPos+19,strContents,strTemp) strPos=strPos & "," & intPos Loop SepPosition=Split(strPos,",") End Function 这两段是不是要全部放到asp页面内 才可以实现分页功能呢?

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

回楼上,第一段是文章列表分页的。。。
第二段是文章内容分页显示的。。。
像这种公用代码,建议你放在一个如“Common.asp”里面,然后包含这个文件,在你要显示分页的地方调用函数就OK了。。

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

呵呵,想了好久 都没想明白  谢谢您了,``呵呵  
我就去试下,不成功再来找您``

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

不行 嵌套不进去,显示是乱码```
郁闷  似乎很复杂。。。[br][br]-=-=-=- 以下内容由 copyday2007年02月02日 04:48pm 时添加 -=-=-=-
我定义的表名 字段名 属性名 都不一样,怎么能嵌套进去呢?`

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

NumberOfRecord=Record.RecordCount NumberOfPage=Record.PageCount Numm=1 if Request.QueryString("Page").Count<>0 then iPage=clng(Request.QueryString("Page")) ';response.write(Request.Form("go").Count) if Request.Form("go").Count<>0 then iPage=clng(Request.Form("go")) if iPage=0 then iPage=1 if NumberOfRecord>0 then response.Write("共有" & NumberOfRecord & "封 分" & NumberOfPage & "页 第" & iPage & "页") %> <% Group=(iPage-(iPage) mod 10)/10 if Group>0 then %> ">上10组 <%end if%> <%for i=Group*10+1 to Group*10+10 if i<=NumberOfPage then %> "><%=i%> <%end if Next if NumberOfPage>Group*10+10 then %> ">下10组 <%end if%> 这个是我自己的分页代码,但是只能分出1页来,怎么修改呢?具体改什么地方呢?

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ';objRS:你用来读取数据的RecordSet对象 ';strUrl:你用来显示数据列表的网页,如:ShowClass.asp?ID=232 ';cssClass:超链接的CSS类名 ';listSize:数据列表的最大条数 ';cssSep:分隔线的CSS类名 ';>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Function PageSplit(objRs,strUrl,cssClass,listSize,cssSep) Dim pgnum,page page=Request("page") objRs.PageSize = listSize pgnum=objRs.Pagecount if page="" or clng(page)<1 then page=1 if clng(page) > pgnum then page=pgnum if pgnum>0 then objRs.AbsolutePage=page If page=1 Then Response.Write " 首 页 | 上一页 | " Else Response.Write " 首 页 | " Response.Write " 上一页 | " End if If objRs.pagecount-page<1 Then Response.Write "下一页 | 尾 页" Else Response.Write "下一页 | " Response.Write "尾 页" End if Response.Write "              第 "&page&" 页/共 "&pgnum&" 页" End Function

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

我想绕绕  弯路的,看来是不行
还是要系统的学才行````
';strUrl:你用来显示数据列表的网页,如:ShowClass.asp?ID=232
恩,我的是gonggaolan.asp 是不是把strurl全部替换就可以了
换成:
Function PageSplit(objRs,gonggaolan.asp,cssClass,listSize,cssSep)
象这样???别笑我。。[br][br]-=-=-=- 以下内容由 copyday2007年02月05日 04:07pm 时添加 -=-=-=-
或者是这样?
Dim pgnum,page
page=Request("page")
strurl=gonggaolan.asp  ';这样写对吗?

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

Function PageSplit(objRs,gonggaolan.asp,cssClass,listSize,cssSep)
这句明显不行噻。。
在声明函数的时候,括号里面只能是变量,不能是字符串。
在引用函数的时候,括号里如果有字符串,要加上双引号。
你只需要在调用这个函数的时候这样写就OK了。
PageSplit(rs,"gonggaolan.asp",cssClass,listSize,cssSep)
或者
strUrl="gonggaolan.asp"
PageSplit(rs,strUrl,cssClass,listSize,cssSep)

TOP

[WEB开发][转帖]一些有用的ASP自定义函数

呵呵 ,见笑了,基础确实是很差  连基本的原理都不搞清楚。。
恩,我有机会测试下`。。
谢谢了

TOP

返回列表 回复 发帖