Akhir-akhir ini saya terobsesi dengan pembuatan website. Saya menggunakan ASP untuk mengembangkannya. Saya menemukan bahwa ASP memiliki banyak celah, dan ada banyak kode yang digunakan kembali dalam sebuah situs web, jadi saya memeriksa beberapa informasi dan menemukan bahwa idenya kelas dapat digunakan dalam ASP, jadi saya menulis kelas ini. Ini tidak ditulis dengan baik, tetapi cukup praktis.
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<%
Const Btn_First="<font face='webdings'>9</font>" 'Tentukan gaya tampilan tombol halaman pertama
Const Btn_Prev="<font face='webdings'>3</font>" 'Tentukan gaya tampilan tombol halaman sebelumnya
Const Btn_Next="<font face='webdings'>4</font>" 'Tentukan gaya tampilan tombol halaman berikutnya
Const Btn_Last="<font face='webdings'>:</font>" 'Tentukan gaya tampilan tombol halaman terakhir
Kelas clsDSJ
p_Error pribadi,p_IpAdd,p_Debug,Errs
p_InvaildWords pribadi
tmpStr pribadi
ObjConnDivPage pribadi, rsDivPage, p_GetSQL, p_nPage
p_rsPageSize pribadi,p_intCurPage,p_strURL,p_intTotalPage,p_intTotalRecords
P_dbType,p_dbFolder,p_DataBase,dbPath,p_dbUserID,p_dbPassword,p_sqlDataSource pribadi
Param_DataBase pribadi,param_dbUserID,param_dbPassword,param_dbType
'Milik
ObjConn publik,ConnStr,SQLQueryNum
LogDB publik, WebURL
SimpanLog Publik
Kode Err Publik, Kode Err, ErrMsg
Folder Skrip Publik, Nama Skrip
Sub Kelas Pribadi_Inisialisasi
p_Debug=Benar
Klien Terhubung
SaveLog=Benar
Pesan Salah = ""
p_Kesalahan=0
SQLQueryNum=0
Inisialisasi koneksi database Rem
dbType=12 'Ambil 1x—Akses, 2x—SQL; x1—OLEDB, x2—ODBC
dbFolder="Data"
Basis Data="zhubizidatabase.MDB"
dbUserID=""
Kata Sandi db=""
sqlDataSource=""
p_rsPageSize=10
'p_nHalaman=2
Jika permintaan("halaman")="" Lalu
p_intCurPage=1
ElseIf NOT IsNumeric(request("page")) Kemudian
p_intCurPage=1
ElseIf CInt(Trim(request("halaman")))<1 Kemudian
p_intCurPage=1
Kalau tidak
p_intCurPage=CInt(Trim(permintaan("halaman")))
Akhiri Jika
WebURL=" http://blog.csdn.net/alonesword/ "
tmpStr=Permintaan.ServerVariables("PATH_INFO")
tmpStr=Pisahkan(tmpStr,"/",-1)
NamaScript=Lcase(tmpStr(UBound(tmpStr)))
ScriptFolder=LCase(tmpStr(UBound(tmpStr)-1)) & "/"
p_InvaildWords=" pilih|perbarui|hapus|masukkan|@|--|;|'|#|%|xp|cmd|shell "
Akhiri Sub
Sub Kelas_terminate() Pribadi
Jika IsObject(rsDivPage) Kemudian rsDivPage.Close:Set rsDivPage=Nothing
Jika IsObject(objConn) Kemudian objConn.Tutup:Set objConn=Tidak Ada
Akhiri Sub
Properti Publik Dapatkan Versi
Versi = "DSJ 1.1.0 Beta"
Properti Akhir
Properti Publik Dapatkan Kesalahan
Kesalahan=p_Error
Properti Akhir
Properti Publik Dapatkan Debug
Debug=p_Debug
Properti Akhir
Properti Publik Biarkan Debug (BoolDebug)
Jika BoolDebug Lalu
p_Debug=Benar
Kalau tidak
p_Debug=Salah
Akhiri Jika
Properti Akhir
Properti Publik Dapatkan dbType
Tipe db=p_tipedb
Properti Akhir
Properti Publik Biarkan dbType(lngdbType)
Jika IsNumeric(lngdbType) Lalu
p_dbType=lngdbType
Kalau tidak
p_dbType=12
Akhiri Jika
Properti Akhir
Properti Publik Dapatkan dbFolder
dbFolder=p_dbFolder
Properti Akhir
Properti Publik Biarkan dbFolder(strFolder)
Jika Kanan(strFolder,1)="" ATAU Kanan(strFolder,1)="/" Lalu
p_dbFolder=strFolder
Kalau tidak
Jika (BUKAN IsNull(strFolder)) ATAU (strFolder<>"") Lalu
p_dbFolder=strFolder & ""
Kalau tidak
p_dbFoler=""
Akhiri Jika
Akhiri Jika
Properti Akhir
Database Dapatkan Properti Umum
Basis Data=p_dataBase
Properti Akhir
Basis Data Izin Properti Publik (strDataBase)
p_dataBase=strDatabase
Properti Akhir
Properti Publik Dapatkan dbUserID
dbUserID=p_dbUserID
Properti Akhir
Properti Publik Biarkan dbUserID(strDataBaseUserID)
p_dbUserID=strDataBaseUserID
Properti Akhir
Properti Publik Dapatkan dbPassword
dbPassword=p_dbPassword
Properti Akhir
Properti Publik Biarkan dbPassword(strDataBasePassword)
p_dbPassword=strDataBasePassword
Properti Akhir
Properti Publik Dapatkan SQLDataSource
SQLDataSource=p_sqlDataSource
Properti Akhir
Properti Publik Biarkan SQLDataSource(strSQLDataSource)
Jika strsqlDataSource<>"" Lalu
Jika Kiri(p_dbType,1)=2 Lalu
p_sqlDataSource=strSQLDataSource
Kalau tidak
TambahkanKode Kesalahan(110)
p_sqlDataSource=""
Akhiri Jika
Akhiri Jika
Properti Akhir
Properti Publik Biarkan PageSize(int_PageSize)
Jika IsNumeric(Int_Pagessize) Lalu
p_rsPageSize=CLng(int_PageSize)
Akhiri Jika
Properti Akhir
Properti Publik Dapatkan PageSize
Jika p_rsPageSize="" atau BUKAN IsNumeric(p_rsPageSize) Lalu
Ukuran Halaman=8
Kalau tidak
Ukuran Halaman=p_rsUkuran Halaman
Akhiri Jika
Properti Akhir
Properti Publik Dapatkan GetRs()
Jika TIDAK Debug Maka Pada Error Lanjutkan Berikutnya
Jika BUKAN IsObject(objConn) Maka ConnectionDataBase dbDataBase,dbUserID,dbPassword,dbType
Jika BUKAN IsObject(rsDivPage) Lalu
Setel rsDivPage=Server.createobject("adodb.recordset")
rsDivPage.Buka GetSQL,objConn,1,1
rsDivPage.PageSize=Ukuran Halaman
Jika tidak (rsDivPage.eof dan rsDivPage.BOF) Lalu
Jika p_intCurPage>rsDivPage.PageCount Lalu
p_intCurPage=rsDivPage.PageCount
Akhiri Jika
rsDivPage.AbsolutePage=p_intCurPage
Akhiri Jika
Jika Salah Lalu
Err. Jelas
rsDivPage.Tutup
Setel rsDivPage=Tidak Ada
Jika SaveLog Lalu
tmpMsg="Kesalahan saat menyambung ke database, harap periksa apakah kode kueri Anda benar.<br>Demi alasan keamanan, hanya pesan ini yang ditampilkan. Untuk melihat pesan kesalahan mendetail, harap setel dsj.Debug=True"
Respons.Tulis SaveSQLLog(cmd,tmpMsg)
Kalau tidak
Response.Write "Kesalahan saat menyambung ke database, harap periksa apakah kode kueri Anda sudah benar."
Akhiri Jika
Respon.Akhir()
Akhiri Jika
SQLQueryNum=SQLQueryNum+1
Setel GetRs=rsDivPage
Akhiri Jika
Properti Akhir
Properti Publik Biarkan GetSQL(str_sql)
Jika str_sql<>"" Lalu
p_GetSQL=str_sql
Kalau tidak
TambahkanKode Kesalahan(111)
Jika Debug Lalu TampilkanErrMsg()
p_GetSQL="Properti GetSQL adalah NULL."
Akhiri Jika
Properti Akhir
Properti Publik Dapatkan GetSQl()
DapatkanSQL=p_GetSQL
Properti Akhir
'******************************
'Nama: mendapatTopik
'Parameter: str, strlen
'Nilai kembalian: string terbatas
'Waktu pembuatan: 3 Maret 2005
'Fungsi: membatasi string yang dibatasi
'******************************
Fungsi Publik GotToPic(str,strlen)
Rem membatasi panjang tampilan string hingga rentang tertentu
Redupkan saya,StringLen,CharSize,EchoCharType
StringLen=len(str)
Ukuran Char=0
Untuk i=1 hingga StringLen
EchoCharType=Abs(Asc(Mid(str,i,1)))
Jika EchoCharType>255 Lalu
Ukuran Char=Ukuran Char+2
Kalau tidak
Ukuran Char=Ukuran Char+1
Akhiri Jika
Jika CharSize>strlen Lalu
gotTopic=Kiri(str,i) & "..."
Keluar Untuk
Kalau tidak
gotTopik=str & ""
Akhiri Jika
Berikutnya
Fungsi Akhir
'******************************
'Nama: ChkInvStr
'Parameter: Str
'Nilai pengembalian: Benar/Salah
'Waktu pembuatan: 2 Mei 2005
'Fungsi: Periksa apakah parameter memiliki karakter ilegal
'******************************
Fungsi Publik ChkInvStr(Str)
Rem mendefinisikan karakter ilegal yang perlu disaring
Redupkan InvaildWord,inWords,i
Str=CStr(Str)
ChkInvStr=Salah
Jika Len(Ganti(p_InvaildWords,Chr(0),""))<1 Lalu
AddErrorCode(103) 'kata-kata yang tidak valid adalah nol
Fungsi Keluar
Kalau tidak
Jika Instr(1,p_Invaildwords,"|")>0 Lalu
InvaildWord=Pisahkan(p_InvaildWords,"|")
diWords=LCase(Potong(Str))
Untuk i=LBound(InvaildWord) Ke UBound(InvaildWord)
Jika Instr(inWords,InvaildWord(i))>0 Lalu
p_Kesalahan=1982
TambahkanKode Kesalahan(105)
ChkInvStr=Benar
Fungsi Keluar
Akhiri Jika
Berikutnya
Kalau tidak
AddErrorCode(104) '"|" diperlukan.
Fungsi Keluar
Akhiri Jika
Akhiri Jika
Fungsi Akhir
'******************************
'Nama: DapatkanIP
'Parameter: BATAL
'Nilai pengembalian: NULL
'Waktu pembuatan: 3 Mei 2005
'Fungsi: Mendapatkan alamat IP pengguna
'******************************
Fungsi Publik GetIP()
p_IpAdd=Permintaan.ServerVariables("HTTP_X_FORWARDED_FOR")
Jika IsNull(p_IpAdd) ATAU p_IpAdd="" Lalu
p_IpAdd=Permintaan.ServerVariables("REMOTE_ADDR")
Akhiri Jika
DapatkanIp=p_IpTambahkan
Fungsi Akhir
'******************************
'Nama: Alamat IP
'Parameter: menyesap
'Nilai pengembalian: Kabupaten, Kota
'Fungsi: penyusunan huruf dan konversi konten data
'Waktu pembuatan: 6 Mei 2005
'Sumber: www.downcodes.com
'******************************
Alamat IP Fungsi Publik (sip)
Redupkan IPConnStr,IPConn,IPAddressDB
Redupkan str1,str2,str3,str4
Angka redup
Redupkan negara, kota, alamat
Redupkan HKI, SQL
alamat="tidak diketahui"
Jika IsNumeric(Kiri(sip,2)) Lalu
Jika sip = "127.0.0.1" Lalu sip = "192.168.0.1"
str1=Kiri(sip,InStr(sip,".")-1)
sip=pertengahan(sip,instr(sip,".")+1)
str2=Kiri(sip,instr(sip,".")-1)
sip=Pertengahan(sip,InStr(sip,".")+1)
str3=Kiri(sip,instr(sip,".")-1)
str4=Pertengahan(sip,instr(sip,".")+1)
Jika isNumeric(str1)=0 atau isNumeric(str2)=0 atau isNumeric(str3)=0 atau isNumeric(str4)=0 Maka
Kalau tidak
angka=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
IPAddressDB = "DSJ_Ipaddress.mdb"
IPConnStr = "Penyedia = Microsoft.Jet.OLEDB.4.0;Sumber Data = " & Server.MapPath(p_dbFolder & IPAddressDB)
Setel IPConn = Server.CreateObject("ADODB.Connection")
IPConn.Buka IpConnStr
negara="Asia"
kota=""
sql="pilih 1 negara, kota teratas dari DSJ_IPAddress di mana ip1 <="&num&" dan ip2 >="&num&""
Setel IPR=IPConn.execute(sql)
Jika Tidak (IPRs.EOF Dan IPRs.bof) Kemudian
negara=IPR(0)
kota=HAK(1)
Akhiri Jika
IpRs.Tutup:Tetapkan IPR=Tidak Ada
IPConn.CLose: Setel IPConn = Tidak Ada
SqlQueryNum = SqlQueryNum+1
Akhiri Jika
Alamat IP=negara&kota
Akhiri Jika
Fungsi Akhir
'******************************
'Nama: KlienTerhubung
'Parameter: BATAL
'Nilai pengembalian: NULL
'Waktu pembuatan: 5 Mei 2005
'Fungsi: Mengetahui apakah pengguna terhubung ke server
'******************************
Sub Klien PublikTerhubung()
Jika Response.IsClientConnected maka
Respon.Flush()
Kalau tidak
Respon.Akhir()
Akhiri Jika
Akhiri Sub
'******************************
'Nama: ChkPost
'Parameter: BATAL
'Nilai pengembalian: Benar/Salah
'Waktu pembuatan: 5 Mei 2005
'Fungsi: Memeriksa sumber data yang dikirimkan
'******************************
Fungsi Publik ChkPost()
Redupkan Server_v1,Server_v2
ChkPost=Salah
Server_v1=CStr(Permintaan.ServerVariables("HTTP_REFERER"))
Server_v2=CStr(Permintaan.ServerVariables("SERVER_NAME"))
Jika Mid(Server_v1,8,Len(Server_v2))=Server_v2 Maka ChkPost=True
Fungsi Akhir
'******************************
'Nama: AddErrorCode
'Parameter: Kode Kesalahan
'Nilai pengembalian: ErrCodes
'Waktu pembuatan: 3 Mei 2005
'Fungsi: Tambahkan kode kesalahan ke ErrCodes
'******************************
Sub Publik AddErrorCode (ErrCode)
Jika ErrCodes="" Lalu
Kode Err=Kode Kesalahan
Kalau tidak
ErrCodes=Kode Err & "," & Kode Err
Akhiri Jika
Akhiri Sub
'******************************
'Nama: ShowErrMsg
'Parameter: BATAL
'Nilai pengembalian: NULL
'Waktu pembuatan: 3 Mei 2005
'Fungsi: Menampilkan informasi kesalahan terperinci
'******************************
Fungsi Publik ShowErrMsg()
Jika TIDAK p_Debug Maka Pada Error Lanjutkan Berikutnya
Jika ErrCodes<>"" Lalu
iErrCodes=Pisahkan(ErrCodes,",",-1,Biner)
Untuk i=LBound(iErrCodes) Ke UBound(iErrCodes)
tmpErrCode=CLng(iErrCodes(i))
Jika IsNumeric(tmpErrCode) Lalu
ErrMsg=ErrMsg & ErrDetails(tmpErrCode)
Akhiri Jika
Berikutnya
Akhiri Jika
TampilkanErrMsg=ErrMsg
Fungsi Akhir
'******************************
'Nama: ConnectionDataBase
'Parameter:DataBase,p_dbUserID,p_dbPassword,p_dbType
'Nilai pengembalian: NULL
'Fungsi: menghubungkan ke database
'Waktu pembuatan: 6 Mei 2005
'******************************
KoneksiDataBase Fungsi Publik(param_DataBase,param_dbUserID,param_dbPassword,param_dbType)
Jika Tidak p_Debug Maka Pada Error Lanjutkan Berikutnya
Klien Terhubung
Jika IsNumeric(param_dbType) Lalu
Setel objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionTimeOut=10 'Setel batas waktu koneksi menjadi 10 detik
dbPath=Server.MapPath(p_dbFolder¶m_DataBase)
'Respon.Tulis dbPath
Pilih Kasus param_dbType
Kasus 11: 'Akses Basis Data (OLEDB)
ConnStr="Provider=Microsoft.Jet.Oledb.4.0;Sumber Data="&dbPath&";ID Pengguna="¶m_dbUserID&";Password="¶m_dbPassword&""
Kasus 21: 'SQL Server (OLEDB)
ConnStr="Provider=SQLOLEDB;Katalog Awal="¶m_DataBase&";Sumber Data="&p_sqlDataSource&";ID Pengguna="¶m_dbUserID&";Password="¶m_dbPassword&""
Kasus 12: 'Akses Basis Data (ODBC)
ConnStr="Driver={Microsoft Access Driver (*.mdb)};DBQ="&dbPath&";ID Pengguna="¶m_dbUserID&";Password="¶m_dbPassword
Kasus 22: 'SQL Server (ODBC)
ConnStr="Driver={SQL Server};DataBase="¶m_DataBase&";Server="&p_sqlDataSource&";ID Pengguna="¶m_dbUserID&";Kata Sandi="¶m_dbPassword&""
Kasus Lain:
TambahkanKode Kesalahan(100)
Jika p_Debug Lalu Respon.Tulis ShowErrMsg()
'Fungsi Keluar
Pilihan Akhir
objConn.ConnectionString=KoneksiStr
objConn.Buka
Setel ConnectionDataBase=objConn
Jika Salah Lalu
Err. Jelas
Jika SaveLog Lalu
tmpMsg="Terjadi kesalahan saat koneksi database, harap periksa apakah kode kueri Anda benar.<br>Demi alasan keamanan, hanya informasi ini yang ditampilkan. Untuk melihat informasi kesalahan secara detail, harap setel dsj.Debug=True"
cmd="Jalankan perintah :"¶m_dbtype
Respons.Tulis SaveSQLLog(cmd,tmpMsg)
Kalau tidak
Response.Write "Terjadi kesalahan saat menyambung ke database. Silakan periksa apakah kode kueri Anda benar."
Akhiri Jika
TambahkanKode Kesalahan(101)
Setel objConn=Tidak Ada
Respon.Akhir()
Akhiri Jika
Akhiri Jika
Fungsi Akhir
'******************************
'Nama: SaveSQLLog
'Parameter: sPerintah, Msg
'Nilai pengembalian: pesan
'Fungsi: menyimpan log
'Waktu pembuatan: 6 Mei 2005
'******************************
Fungsi Publik SaveSQLLog(sCommand,Msg)
Jika Tidak p_Debug Maka Pada Error Lanjutkan Berikutnya
logDB="DSJ_SQLLog.mdb"
'LogDB ConnectionDataBase,p_dbUserID,p_dbPassword,12
logConnStr = "Penyedia = Microsoft.Jet.OLEDB.4.0;Sumber Data = " & Server.MapPath(p_dbFolder & logDB)
Setel logConn = Server.CreateObject("ADODB.Connection")
logConn.Buka logConnStr
Jika SaveLog Lalu
Redupkan logCmd
logCmd="MASUKKAN KE DSJ_SQL_Log (Perintah,NamaScript,pengguna log,IP) NILAI "
logCmd=logCmd & "('" & Ganti(Kiri(sCommand,255),"'","''") &"','" & (ScriptFolder & ScriptName) &"','" & Session("Pengguna ") & "','"& DapatkanIP & "')"
'Response.Write "Perintah yang perlu dijalankan adalah:<br><font color=red>" & logCmd & "</font><BR>"
logConn.Jalankan(logCmd)
Akhiri Jika
logConn.Tutup
Setel logConn=Tidak Ada
SimpanSQLLog=pesan
SQLQueryNum=SQLQueryNum+1
Fungsi Akhir
'******************************
'Nama: JalankanCmd
'Parameter: cmd
'Nilai pengembalian: RecordSet
'Fungsi: Mengembalikan kumpulan data yang dibuat oleh cmd
'Waktu pembuatan: 6 Mei 2005
'******************************
Fungsi Publik ExecuteCmd(cmd)
Jika BUKAN IsObject(objConn) Maka ConnectionDataBase p_DataBase,p_dbUserID,p_dbPassword,p_dbType
Jika TIDAK p_Debug Maka Pada Error Lanjutkan Berikutnya
Klien Terhubung
Setel ExecuteCmd=objConn.Execute(cmd)
Jika Salah Lalu
Err. Jelas
objConn.Tutup
Setel objConn=Tidak Ada
Jika SaveLog Lalu
tmpMsg="Ditemukan kesalahan saat menanyakan data, harap periksa apakah kode kueri Anda benar.<br>Untuk alasan keamanan, hanya informasi ini yang ditampilkan. Untuk melihat informasi kesalahan terperinci, harap setel dsj.Debug=True"
Respons.Tulis SaveSQLLog(cmd,tmpMsg)
Kalau tidak
Response.Write "Ditemukan kesalahan saat menanyakan data. Silakan periksa apakah kode kueri Anda benar."
Akhiri Jika
Respon.Akhir()
Akhiri Jika
SQLQueryNum=SQLQueryNum+1
Fungsi Akhir
'******************************
'Nama: HTMLEncode
'Parameter:fString
'Nilai pengembalian: HTMLEncode
'Fungsi: penyusunan huruf dan konversi konten data
'Waktu pembuatan: 6 Mei 2005
'******************************
Fungsi Publik HTMLEncode (fString)
Jika Bukan IsNull(fString) Atau fString<>"" Lalu
fString=Ganti(fString,"<","<")
fString=Ganti(fString,">",">")
fString=Ganti(fString,Chr(9)," ") 'Font miring
fString=Ganti(fString,Chr(13),"")
fString=Ganti(fString,Chr(32)," ") 'Konversi spasi
fString=Replace(fString,Chr(34),""") 'Konversikan tanda kutip ganda
fString=Replace(fString,Chr(39),"'") 'Konversi tanda kutip tunggal
fString=Ganti(fString,Chr(10),"</p><p>") 'Konversi ke format paragraf
fString=Ganti(fString,Chr(10),"<BR> ") 'Konversi ke baris berikutnya
fString=Ganti(fString,Chr(13),"<BR>")
fString=Ganti(fSting,vbCrlf,"<BR>")
'fString=Teman Tautan(fString)
'fString=ChkBadWords(fString)
HTMLEncode=fString
Akhiri Jika
Fungsi Akhir
'******************************
'Nama: LinkFriend
'Parameter:fIsi
'Nilai pengembalian: LinkFriend
'Fungsi: Menggantikan koneksi persahabatan
'Waktu pembuatan: 6 Mei 2005
'******************************
Fungsi Publik LinkFriend(fContent)
Jika TIDAK p_Debug Maka Pada Error Lanjutkan Berikutnya
Jika BUKAN IsObject(objConn) Maka ConnectionDataBase DataBase,dbUserID,dbPassword,dbType
Setel rsFriend=ExecuteCmd("Pilih Judul,URL Dari dsj_FriendLink")
Jika rsFriend.Eof Dan rsFriend.Bof Lalu
Kalau tidak
Lakukan Sementara BUKAN rsFriend.Eof
strTitle=rsFriend.Fields.Item("Judul")
URl=rsFriend.Fields.Item("URL")
Jika LCase(Kiri(URL,1))<>"h" Maka URL=Ganti(URl,Kiri(URL,1),"")
strLink="<a target='_blank' title='" & strJudul &"' href='" & URL & "'>"
strLink=strLink&strJudul&"</a>"
Jika Instr(fContent,strTitle)>0 Maka fContent=Ganti(fContent,strTitle,strLink)
rsFriend.MoveNext
Lingkaran
LinkFriend=fKonten
Akhiri Jika
rsTeman.Tutup
Setel rsFriend=Tidak Ada
SQLQueryNum=SQLQueryNum+1
Fungsi Akhir
'******************************************************* *****************
'Nama: Halaman Pertunjukan
'Parameter: BATAL
'Nilai pengembalian: NULL
'Fungsi: Menampilkan navigasi catatan paging
'menjelaskan:
'Karya asli: zykj2000 Situs web: http://bbs.513soft.net
' Modifikasi: Situs Web Alonesword: http://blog.csdn.net/alonesword/
'Waktu: 7 Mei 2005
'******************************************************* ****************
Halaman Pertunjukan Sub Publik()
Redupkan str_tmp
p_intTotalRecords=rsDivPage.RecordCount
Jika p_intTotalRecords<=0 Lalu
p_Error=p_Error & "Jumlah total record nol, silakan masukkan data"
Panggilan Tampilkan Kesalahan()
Akhiri Jika
Jika p_intTotalRecords <=PageSize LALU
p_intTotalHalaman=1
Kalau tidak
Jika p_intTotalRecords mod PageSize =0 Lalu
p_intTotalPage = CLng(p_intTotalRecords / Ukuran Halaman * -1)*-1
Kalau tidak
p_intTotalPage = CLng(p_intTotalRecords / Ukuran Halaman * -1)*-1+1
Akhiri Jika
Akhiri Jika
Jika p_intCurPage>p_intTotalPage Lalu
p_intCurPage=p_intTotalHalaman
Akhiri Jika
Respon.Tulis ShowFirstPrv
tampilkanNumBtn
Tanggapan.Tulis TampilkanBerikutnyaTerakhir&" "
Respon.Tulis ShowPageInfo
respon.tulis str_tmp
Akhiri Sub
Fungsi Pribadi ShowFirstPrv()
Redupkan Str_tmp,int_prvpage
int_prvpage=p_intCurPage-1
Jika int_prvpage<1 Maka int_prvpage=1
Btn_FirstLink="<a title='Halaman 1' href='"&TambahkanPageURL&"1'>"&Btn_First
Btn_PrevLink="<a title='Page"&int_prvpage&" href='"&AddnPageURL&p_intCurPage-1&"'>"&Btn_Prev
Jika p_intCurPage=1 Lalu
str_tmp=Btn_FirstLink&"</a> "&Btn_PrevLink&"</a> "
Kalau tidak
int_prvpage=p_intCurPage-1
str_tmp=""&Btn_FirstLink&"</a> "& Btn_PrevLink&"</a> "
Akhiri Jika
TampilkanPertamaPrv=str_tmp
Fungsi Akhir
Fungsi Pribadi ShowNextLast()
Redupkan str_tmp,int_Nextpage
int_Halaman Berikutnya=p_intCurHalaman+1
Jika p_intCurPage+1>p_intTotalPage Maka int_NextPage=p_intTotalPage
Btn_NextLink="<a title='Page"&int_NextPage&"' href='"&AddnPageURL&p_intCurPage+1&"'>"&Btn_Next
Btn_LastLink="<a title='Page"&p_intTotalPage&" href='"&AddnPageURL&p_intTotalPage&"'>"&Btn_Last
Jika p_intCurPage>=p_intTotalPage Lalu
str_tmp=Btn_NextLink & "</a> " & Btn_LastLink&"</a>"
Kalau tidak
Int_NextPage=p_intCurPage+1
str_tmp=""&Btn_NextLink&"</a> "& Btn_LastLink&"</a>"
Akhiri Jika
TampilkanBerikutnyaTerakhir=str_tmp
Fungsi Akhir
Fungsi Pribadi showNumBtn()
Redupkan aku,str_tmp
Redupkan Tautan Halaman
str_tmp=""
Untuk i=1 hingga p_intTotalPage Langkah 1
PageLink=" <a title='Page"&i&" href='"&AddnPageURL&i&"'>"&i&"</a> "
Jika i=p_intCurPage Maka PageLink=" <a title='Page"&i&" href='"&AddnPageURL&i&"'><font color=red>"&i&"</font></a> "
Respon.Tulis PageLink
Berikutnya
tampilkanNumBtn=str_tmp
Fungsi Akhir
Fungsi Pribadi ShowPageInfo()
Redupkan str_tmp
str_tmp="Halaman:"&p_intCurPage&"/"&p_intTotalPage&"Total halaman"&p_intTotalRecords&"records"&p_rsPageSize&"catatan/per halaman"
TampilkanInfoHalaman=str_tmp
Fungsi Akhir
Fungsi Pribadi AddnPageURL()
Redupkan i,j,search_str,result_url
pencarian_str="halaman="
str_params=Permintaan.ServerVariables("QUERY_STRING")
Jika str_params="" Lalu
result_url=Nama Skrip & "?page="
Kalau tidak
Jika InstrRev(str_params,search_str)=0 Lalu
result_url=Nama Skrip & "?" & str_params &"&page="
Kalau tidak
j=InstrRev(str_params,search_str)-2
Jika j=-1 Maka
result_url=Nama Skrip & "?page="
Kalau tidak
str_params=Kiri(str_params,j)
result_url=Nama Skrip & "?" & str_params &"&page="
Akhiri Jika
Akhiri Jika
Akhiri Jika
TambahkannPageURL=result_url
Fungsi Akhir
'******************************************************* ****************
Fungsi Publik GetName (Opsi)
Redupkan tmpName
tmpName=Permintaan.ServerVariables("PATH_INFO")
arrTmpName=Pisahkan(tmpName,"/")
Jika Opsi=0 Maka GetName=Server.Mappath(".")&GetName(1)
Jika Opsi=1 Maka GetName=LCase(arrTmpName(UBound(arrTmpName)))
Jika Opsi=2 Maka GetName=LCase(arrTmpName(UBound(arrTmpName)-1))&"/"
Fungsi Akhir
Kelas Akhir
%>