commond.asp

来自「一套非常实用的博客源代码,功能全,界面简单易用.」· ASP 代码 · 共 422 行 · 第 1/2 页

ASP
422
字号
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Option Explicit
Response.Buffer = True
Server.ScriptTimeOut = 180

Session.CodePage=65001

If Trim(Request.QueryString("CP"))="GBK" Then Session.CodePage = 936

'定义 Cookie,Application 域,必须修改,否则可能运行不正常
Const CookieName="zblog"

'站点开关操作
IF Not isNumeric(Application(CookieName & "_SiteEnable")) Then
	Application.Lock
	Application(CookieName & "_SiteEnable") = 1
	Application(CookieName & "_SiteDisbleWhy") = ""
	Application.UnLock
End IF
IF Application(CookieName & "_SiteEnable") = 0 AND Application(CookieName & "_SiteDisbleWhy")<>"" AND inStr(Replace(Lcase(Request.ServerVariables("URL")),"\","/"),"/admincp.asp") = 0  AND inStr(Replace(Lcase(Request.ServerVariables("URL")),"\","/"),"/logging.asp") = 0 Then
	Response.Write(Application(CookieName & "_SiteDisbleWhy"))
	Response.End
End IF

Dim StartTime,SQLQueryNums
StartTime=Timer()
SQLQueryNums=0

DIM MaxUrl,MaxHttp
IF session("memStatus")<>"Admin" AND session("memStatus")<>"SupAdmin" Then
   MaxUrl=2
   MaxHttp=4
else
   MaxUrl=50
   MaxHttp=50
end if

'定义数据库链接文件,根据自己的情况修改
Const AccessPath="blogdata"
Const AccessFile="blog.mdb" 
Const IPAccessFile="ipdata.asa"

'定义数据库连接
Dim znwl
On Error Resume Next
Set znwl= Server.CreateObject("ADODB.Connection")
znwl.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessPath&"/"&AccessFile)
znwl.Open
If Err Then
    Err.Clear
    Set znwl = Nothing
    Response.Write("<head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><title>数据库连接出错,请和管理员联系admin@znwl.com</title></head><body><div align=""center"" style=""width:400px;height:100px;padding: 8px;font-size:9pt;border: 1px solid ThreeDShadow;POSITION:absolute;top:expression((document.body.offsetHeight-100)/2);left:expression((document.body.offsetWidth-400)/2);""><table width=""100%"" height=""100%"" style=""font-size:12px;font-family:Tahoma;""><tr><td align=""center""><strong>数据库连接出错,请检查连接字串</strong></td></tr></table></div></body>")
    Response.End
End If

dim Badwords
BadWords="鸡巴|鸡|干你|操你|日你|妈的"'这里的X为你要过滤的字

function ChkBadWords(strContent)
    dim bwords,i
    bwords = split(BadWords, "|")
    for i = 0 to ubound(bwords)
        strContent = Replace(strContent, bwords(i), string(len(bwords(i)),"×")) 
    next
    strContent = Replace(strContent, "'","") '顺便过滤了一下单引号
    ChkBadWords = strContent
end function

Dim SQL,TempVar,siteTitle '定义常用变量

Dim blog_Infos,SiteName,SiteUrl,blogPerPage,blog_LogNums,blog_CommNums,blog_MemNums,blog_VisitBaseNums,blog_VisitNums,blog_QuoteNums,blog_GuestbookNums,blog_downloadNums,blog_SpamIP,blog_photoNums,threadPerPage,postPerPage,blog_New,blog_PostNums,blog_ThreadNums,blog_qq,blog_time,blog_reg
Set blog_Infos=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM blog_Info"
blog_Infos.Open SQL,znwl,1,1
SQLQueryNums=SQLQueryNums+1
If blog_Infos.EOF And blog_Infos.BOF Then
	Response.Write("站点出错,请检查数据库中的站点基本信息设置……")
	Response.End
Else
	SiteName=blog_Infos("blog_Name")
	SiteURL=blog_Infos("blog_URL")
	blogPerPage=blog_Infos("blog_PerPage")
	blog_LogNums=blog_Infos("blog_LogNums")
	blog_CommNums=blog_Infos("blog_CommNums")
	blog_GuestbookNums=blog_Infos("blog_GuestbookNums")
	blog_MemNums=blog_Infos("blog_MemNums")
	blog_QuoteNums=blog_Infos("blog_QuoteNums")
	blog_VisitBaseNums=blog_Infos("blog_VisitBaseNums")
	blog_VisitNums=blog_Infos("blog_VisitNums")+blog_VisitBaseNums
	blog_downloadNums=blog_Infos("blog_downloadNums")
	blog_SpamIP=blog_Infos("blog_SpamIP")
	blog_photoNums=blog_Infos("blog_photoNums")
	blog_ThreadNums=blog_Infos("blog_ThreadNums")
	blog_PostNums=blog_Infos("blog_PostNums")
	threadPerPage=blog_Infos("thread_PerPage")
	postPerPage=blog_Infos("post_PerPage")
	blog_New=blog_Infos("blog_New")
	blog_qq=blog_Infos("blog_qq")
	blog_time=blog_Infos("blog_time")
	blog_reg=blog_Infos("blog_reg")
End If
blog_Infos.Close
Set blog_Infos=Nothing

Dim Arr_Download
IF Not IsArray(Application(CookieName&"_blog_Download")) Then
	Dim log_Download,log_DownloadList
	Set log_Download=znwl.Execute("SELECT * FROM blog_Download")
	TempVar=""
	Do While Not log_Download.EOF
		log_DownloadList=log_DownloadList&TempVar&log_Download("downl_ID")&"$|$"&log_Download("downl_Cate")&"$|$"&log_Download("downl_Name")&"$|$"&log_Download("downl_Author")&"$|$"&log_Download("downl_From")&"$|$"&log_Download("downl_FromURL")&"$|$"&log_Download("downl_ImgPath")&"$|$"&log_Download("downl_PostTime")&"$|$"&log_Download("downl_Comment")&"$|$"&log_Download("downl_Dcomm1")&"$|$"&log_Download("downl_Dcomm1URL")&"$|$"&log_Download("downl_Dcomm2")&"$|$"&log_Download("downl_Dcomm2URL")&"$|$"&log_Download("downl_Dcomm3")&"$|$"&log_Download("downl_Dcomm3URL")&"$|$"&log_Download("downl_Dcomm4")&"$|$"&log_Download("downl_Dcomm4URL")&"$|$"&log_Download("downl_Nums")
		TempVar="$,$"
		log_Download.MoveNext
	Loop
	Set log_Download=Nothing
	Arr_Download=Split(log_DownloadList,"$,$")
	Application.Lock
	Application(CookieName&"_blog_Download")=Arr_Download
	Application.UnLock
Else
	Arr_Download=Application(CookieName&"_blog_Download")
End IF

Dim Guest_IP
Guest_IP=Replace(Request.ServerVariables("HTTP_X_FORWARDED_FOR"),"'","")
If Guest_IP=Empty Then Guest_IP=Replace(Request.ServerVariables("REMOTE_ADDR"),"'","")


Dim SpamIP,SpamIPEvery
SpamIP=Split(blog_SpamIP,";")
For Each SpamIPEvery In SpamIP
	If Guest_IP = SpamIPEvery Then
		Response.Redirect("http://znwl.net/err.asp")
		Response.Write.End
	End If
Next

'站点统计代码
If Session("GuestIP")<>Guest_IP Then
	Dim Guest_Agent,Guest_Month,Guest_Week,Guest_Hour,Guest_OS,Guest_Browser
	Guest_Agent=Trim(Request.ServerVariables("HTTP_USER_AGENT"))
	Guest_Month=Month(Now())
	If Len(Guest_Month)<2 Then 
		Guest_Month=Year(Now())&"0"&Guest_Month
	Else
		Guest_Month=Year(Now())&Guest_Month
	End If
	Guest_Week=WeekDay(Now())-1
	Guest_Hour=Hour(Now())
	If Len(Guest_Hour)<2 Then Guest_Hour="0"&Guest_Hour
	If InStr(Guest_Agent,"Win") Then
		Guest_OS="Windows"
	ElseIf InStr(Guest_Agent,"Mac") Then
		Guest_OS="Mac"
	ElseIf InStr(Guest_Agent,"Linux") Then
		Guest_OS="Linux"
	ElseIf InStr(Guest_Agent,"FreeBSD") Then
		Guest_OS="FreeBSD"
	ElseIf InStr(Guest_Agent,"SunOS") Then
		Guest_OS="SunOS"
	ElseIf InStr(Guest_Agent,"BeOS") Then
		Guest_OS="BeOS"
	ElseIf InStr(Guest_Agent,"OS/2") Then
		Guest_OS="OS/2"
	ElseIf InStr(Guest_Agent,"AIX") Then
		Guest_OS="AIX"
	ElseIf InStr(Guest_Agent,"search") Or InStr(Guest_Agent,"Spider") Or InStr(Guest_Agent,"Googlebot") Then
		Guest_OS="Search"
	Else
		Guest_OS="Other"
	End If
	If InStr(Guest_Agent,"Maxthon") Or InStr(Guest_Agent,"MyIE") Then
		Guest_Browser="Maxthon"
	ElseIf InStr(Guest_Agent,"MSIE") Then
		Guest_Browser="MSIE"
	ElseIf InStr(Guest_Agent,"Netscape") Then
		Guest_Browser="Netscape"
	ElseIf InStr(Guest_Agent,"Konqueror") Then
		Guest_Browser="Konqueror"
	ElseIf InStr(Guest_Agent,"Firefox") Then
		Guest_Browser="Firefox"
	ElseIf InStr(Guest_Agent,"search") Or InStr(Guest_Agent,"Spider") Or InStr(Guest_Agent,"Googlebot") Then
		Guest_Browser="Search"
	ElseIf InStr(Guest_Agent,"Reader") Or InStr(Guest_Agent,"FeedDemon") Then
		Guest_Browser="RSSReader"
	Else
		Guest_Browser="Other"
	End If
	If znwl.ExeCute("SELECT COUNT(coun_Char) FROM blog_Counter WHERE coun_Type='Month' AND coun_Char='"&Guest_Month&"'")(0)=0 Then
		znwl.ExeCute("INSERT INTO blog_Counter(coun_Type,coun_Char,coun_Nums) VALUES ('Month','"&Guest_Month&"',0)")
		SQLQueryNums=SQLQueryNums+1
	End If
	znwl.ExeCute("UPDATE blog_Counter SET coun_Nums=coun_Nums+1 WHERE (coun_Type='OS' AND coun_Char='"&Guest_OS&"') OR (coun_Type='Browser' AND coun_Char='"&Guest_Browser&"') OR (coun_Type='Week' AND coun_Char='"&Guest_Week&"') OR (coun_Type='Hour' AND coun_Char='"&Guest_Hour&"') OR (coun_Type='Month' AND coun_Char='"&Guest_Month&"')")
	znwl.ExeCute("UPDATE blog_Info SET blog_VisitNums=blog_VisitNums+1")
	SQLQueryNums=SQLQueryNums+3
	Session("GuestIP")=Guest_IP
End If

Dim memName,memPassword,memStatus
memName=CheckStr(Request.Cookies(CookieName)("memName"))
memPassword=CheckStr(Request.Cookies(CookieName)("memPassword"))
memStatus=CheckStr(Request.Cookies(CookieName)("memStatus"))

IF memName<>Empty Then
	Dim CheckCookie
	Set CheckCookie=Server.CreateObject("ADODB.RecordSet")
	SQL="SELECT mem_Name,mem_Password,mem_Status,mem_LastIP FROM blog_Member WHERE mem_Name='"&memName&"' AND mem_Password='"&memPassword&"' AND mem_Status='"&memStatus&"'"
	CheckCookie.Open SQL,znwl,1,1
	SQLQueryNums=SQLQueryNums+1
	If CheckCookie.EOF AND CheckCookie.BOF Then
		Response.Cookies(CookieName)("memName")=""

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?