⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qqcf.asp

📁 这是一个用ASP编制而成的网业计数器
💻 ASP
📖 第 1 页 / 共 2 页
字号:
<%
'==================================
' 乘风多用户计数器v3.4 Mssql版
' 制 作:乘 风
' 网 站:http://www.qqcf.com
' 系统演示:http://www.qqcf.com/?action=try
' 最新版本下载:http://www.qqcf.com/?action=down
' 声 明:	
' 本软件系免费程序,提供给个人免费使用,请保留版权使用。
' 付费版提供升级服务和技术支持。
' 未经作者许可禁止用于任何商业用途。
' 乘风其它作品:乘风多用户计数器Access版、乘风多用户记数器php版、乘风免费电影程序
'        乘风网站推广系统、乘风网址程序、乘风广告管理、系统乘风论坛等。
' 此段版权注释不会影响网页打开速度,请勿删除!
'           2005年12月5日									
'===================================
%>
<!--#include file="qqcf_conn.asp"-->
<!--#include file="qqcf_myfunction.asp"-->
<%
Action=Request.QueryString("Action")
Assort=Int(Request.QueryString("Assort"))'0为script方式调用,1为img方式调用
Tmp=HttpPath(2)
%>
	
<%If Action="" And Assort=0 Then%>
 var ly=escape(document.referrer)
 var currweb=location.href
 ly=ly.replace(/\&/g,"|");//对链接时里的符号时行替换
 currweb=currweb.replace(/\&/g,"|");
 document.write("<script src=<%=Tmp%>QQCF.Asp?Action=getcount&User_Name=<%=Request.QueryString("User_Name")%>&Ly="+ly+"&CurrWeb="+currweb+"></script>");
<%End if%>

<%If Action="getcount" Or Assort=1 Then%>
<%
User_Name=ChkStr(Request.QueryString("User_Name"))

If Assort=0 Then
 Ly=ChkStr(Server.HtmlEncode(Request.QueryString("Ly")))
Else
 Ly=ChkStr(Server.HtmlEncode(Request.ServerVariables("Http_Referer")))
End if
CurrWeb=ChkStr(Server.HtmlEncode(Request.QueryString("CurrWeb")))
'img调用时CurrWeb为空
If Ly="" Then Ly="-"
If CurrWeb="" Then CurrWeb="-"
Ly=Left(Replace(Ly,"|","&"),255)
CurrWeb=Left(Replace(CurrWeb,"|","&"),255)

If Instr(Ly,"google.com")>0 Then Ly=UTF2GB(Ly)'是从google来的时进行解码

Ip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If Ip= "" Then Ip= Request.ServerVariables("REMOTE_ADDR")

LyHead=BreakUrl(Ly,1)


If RsSet("AllSearch")<>"-" Then
 MyArray=Split(RsSet("AllSearch"),"|")   
 For I=0 To Ubound(MyArray)
  SiteFlag=Left(MyArray(I),Instr(MyArray(I),",")-1)
  KeyWordFlag=Mid(MyArray(I),Instr(MyArray(I),",")+1,1000)

  If Instr(Lcase(Ly),SiteFlag)>0 Then'如果网址中有搜索引擎的标志
  SearchExist=-1
   If Instr(Lcase(Ly),KeyWordFlag&"=")>0 Then'如果搜索引擎的网址时存在搜索关键字的标志时
    KeywordExist=-1
    If SiteFlag="google.com" Then'是从google来的时进行解码
     KeyWord=GetSearchKeyword(Ly,KeyWordFlag)
    Else
     KeyWord=URLDecode(GetSearchKeyword(Ly,KeyWordFlag))
    End if
	Exit For
   End if
  End if
 Next
End If


Set qqcf = Server.CreateObject ("qqcf_cfcount.WWW_QQCF_COM_tj")
If -2147221005 = Err then
 ErrText= "<font color=ff0000>乘风组件未安装,请先安装注册乘风组件才能正常使用!</font>"
 Response.Write("document.write("& chr(34) & ErrText & chr(34) &");")
 Response.End
End if
qqcf.C_SqlServerAddress=SqlServerAddress
qqcf.C_SqlServerUser=SqlServerUser
qqcf.C_SqlServerPassword=SqlServerPassword
qqcf.C_SqlServerDbName=SqlServerDbName
qqcf.C_Action=Action
qqcf.C_User_Name=User_Name
qqcf.C_Ly=Ly
qqcf.C_LyHead=LyHead
qqcf.C_CurrWeb=CurrWeb
qqcf.C_Ip=Ip
qqcf.C_Assort=Assort
qqcf.C_SearchExist=SearchExist
qqcf.C_KeywordExist=KeywordExist
qqcf.C_SiteFlag=SiteFlag
qqcf.C_KeyWord=KeyWord
qqcf.C_Tmp=Tmp

qqcf.C_OnlineKeep=RsSet("OnlineKeep")
qqcf.C_LyKeep=RsSet("LyKeep")
qqcf.C_Store_Ly=RsSet("Store_Ly")
qqcf.C_Store_Online=RsSet("Store_Online")
qqcf.C_Title=RsSet("Title")
qqcf.C_LicensedCode=RsSet("LicensedCode")
qqcf.Tj
%>
<%End If%>

<%if Assort=1 Then%>
<%
Const nMaxSaturation = 100			' 最大色彩饱和度
Const nBlankNoisyDotOdds = 0.2  ' 空白处噪点率
Const nColorNoisyDotOdds = 0.1 ' 有色处噪点率
Dim nCharCount
nCharCount = Len(qqcf.G_PicText)						' 产生的字符个数
If qqcf.G_ImgCounterShow=0 Then nCharCount=1
Const nPixelWidth = 20					' 单个字符位图的宽度
Const nPixelHeight = 20			 	  ' 单个字符位图的高度
Const nColorHue = 220						' 显示验证码的色调(-1表示随机色调, -2表示灰度色调)
Const nAngleRandom = 10         ' 角度随机量
Const nLengthRandom = 10        ' 长度随机量(百分比)
Dim cCharSet
cCharSet = qqcf.G_PicText
If qqcf.G_ImgCounterShow=0 Then cCharSet="0"


                                ' 构成验证码的字符集
                                ' 如果扩充了下边的字母矢量库,则可以相应扩充这个字符集

Dim Buf(), DigtalStr
Dim Lines(), LineCount
Dim CursorX, CursorY, DirX, DirY

Randomize
Call CreatValidCode("GetCode")

Sub CDGen_Reset()
	' 复位矢量笔和环境变量
	LineCount = 0
	CursorX = 0
	CursorY = 0
	' 初始的光笔方向是垂直向下
	DirX = 0
	DirY = 1
End Sub

Sub CDGen_Clear()
	' 清空位图阵列
	Dim i, j
	ReDim Buf(nPixelHeight - 1, nCharCount * nPixelWidth - 1)

	For j = 0 To nPixelHeight - 1
		For i = 0 To nCharCount * nPixelWidth - 1
			Buf(j, i) = 0
		Next
	Next
End Sub

Sub CDGen_PSet(X, Y)
	' 在位图阵列上画点
	Buf(Y, X) = 1
End Sub

Sub CDGen_Line(X1, Y1, X2, Y2)
	' 在位图阵列上画线
	Dim DX, DY, DeltaT, i
	
	DX = X2 - X1
	DY = Y2 - Y1
	If Abs(DX) > Abs(DY) Then DeltaT = Abs(DX) Else DeltaT = Abs(DY)
	For i = 0 To DeltaT
		CDGen_PSet X1 + DX * i / DeltaT, Y1 + DY * i / DeltaT
	Next
End Sub

Sub CDGen_FowardDraw(nLength)
	' 按当前光笔方向绘制指定长度并移动光笔,正数表示从左向右/从上向下绘制,负数表示从右向左/从下向上绘制
	nLength = Sgn(nLength) * Abs(nLength) * (1 - nLengthRandom / 100 + Rnd * nLenghtRandom * 2 / 100)
	ReDim Preserve Lines(3, LineCount)
	Lines(0, LineCount) = CursorX
	Lines(1, LineCount) = CursorY
	CursorX = CursorX + DirX * nLength
	CursorY = CursorY + DirY * nLength
	Lines(2, LineCount) = CursorX
	Lines(3, LineCount) = CursorY
	LineCount = LineCount + 1
End Sub

Sub CDGen_SetDirection(nAngle)
	' 按指定角度设定画笔方向, 正数表示相对当前方向顺时针改变方向,负数表示相对当前方向逆时针改变方向
	Dim DX, DY
	
	nAngle = Sgn(nAngle) * (Abs(nAngle) - nAngleRandom + Rnd * nAngleRandom * 2) / 180 * 3.1415926
	DX = DirX
	DY = DirY
	DirX = DX * Cos(nAngle) - DY * Sin(nAngle)
	DirY = DX * Sin(nAngle) + DY * Cos(nAngle)
End Sub

Sub CDGen_MoveToMiddle(nActionIndex, nPercent)
	' 将画笔光标移动到指定动作的中间点上,nPercent为中间位置的百分比
	Dim DeltaX, DeltaY
	
	DeltaX = Lines(2, nActionIndex) - Lines(0, nActionIndex)
	DeltaY = Lines(3, nActionIndex) - Lines(1, nActionIndex)
	CursorX = Lines(0, nActionIndex) + Sgn(DeltaX) * Abs(DeltaX) * nPercent / 100
	CursorY = Lines(1, nActionIndex) + Sgn(DeltaY) * Abs(DeltaY) * nPercent / 100
End Sub

Sub CDGen_MoveCursor(nActionIndex)
	' 将画笔光标移动到指定动作的起始点上
	CursorX = Lines(0, nActionIndex)
	CursorY = Lines(1, nActionIndex)
End Sub

Sub CDGen_Close(nActionIndex)
	' 将当前光笔位置与指定动作的起始点闭合并移动光笔
	ReDim Preserve Lines(3, LineCount)
	Lines(0, LineCount) = CursorX
	Lines(1, LineCount) = CursorY
	CursorX = Lines(0, nActionIndex)
	CursorY = Lines(1, nActionIndex)
	Lines(2, LineCount) = CursorX
	Lines(3, LineCount) = CursorY
	LineCount = LineCount + 1
End Sub

Sub CDGen_CloseToMiddle(nActionIndex, nPercent)
	' 将当前光笔位置与指定动作的中间点闭合并移动光笔,nPercent为中间位置的百分比
	Dim DeltaX, DeltaY
	
	ReDim Preserve Lines(3, LineCount)
	Lines(0, LineCount) = CursorX
	Lines(1, LineCount) = CursorY
	DeltaX = Lines(2, nActionIndex) - Lines(0, nActionIndex)
	DeltaY = Lines(3, nActionIndex) - Lines(1, nActionIndex)
	CursorX = Lines(0, nActionIndex) + Sgn(DeltaX) * Abs(DeltaX) * nPercent / 100
	CursorY = Lines(1, nActionIndex) + Sgn(DeltaY) * Abs(DeltaY) * nPercent / 100
	Lines(2, LineCount) = CursorX
	Lines(3, LineCount) = CursorY
	LineCount = LineCount + 1
End Sub

Sub CDGen_Flush(X0, Y0)
	' 按照当前的画笔动作序列绘制位图点阵
	Dim MaxX, MinX, MaxY, MinY
	Dim DeltaX, DeltaY, StepX, StepY, OffsetX, OffsetY

	Dim i

	MaxX = MinX = MaxY = MinY = 0
	For i = 0 To LineCount - 1
		If MaxX < Lines(0, i) Then MaxX = Lines(0, i)
		If MaxX < Lines(2, i) Then MaxX = Lines(2, i)
		If MinX > Lines(0, i) Then MinX = Lines(0, i)
		If MinX > Lines(2, i) Then MinX = Lines(2, i)
		If MaxY < Lines(1, i) Then MaxY = Lines(1, i)
		If MaxY < Lines(3, i) Then MaxY = Lines(3, i)
		If MinY > Lines(1, i) Then MinY = Lines(1, i)
		If MinY > Lines(3, i) Then MinY = Lines(3, i)
	Next
	DeltaX = MaxX - MinX
	DeltaY = MaxY - MinY
	If DeltaX = 0 Then DeltaX = 1
	If DeltaY = 0 Then DeltaY = 1
	MaxX = MinX
	MaxY = MinY
	If DeltaX > DeltaY Then
		StepX = (nPixelWidth - 2) / DeltaX
		StepY = (nPixelHeight - 2) / DeltaX
		OffsetX = 0
		OffsetY = (DeltaX - DeltaY) / 2
	Else
		StepX = (nPixelWidth - 2) / DeltaY
		StepY = (nPixelHeight - 2) / DeltaY
		OffsetX = (DeltaY - DeltaX) / 2
		OffsetY = 0
	End If
	For i = 0 To LineCount - 1
		Lines(0, i) = Round((Lines(0, i) - MaxX + OffsetX) * StepX, 0)
		If Lines(0, i) < 0 Then Lines(0, i) = 0
		If Lines(0, i) >= nPixelWidth - 2 Then Lines(0, i) = nPixelWidth - 3
		Lines(1, i) = Round((Lines(1, i) - MaxY + OffsetY) * StepY, 0)
		If Lines(1, i) < 0 Then Lines(1, i) = 0
		If Lines(1, i) >= nPixelHeight - 2 Then Lines(1, i) = nPixelHeight - 3
		Lines(2, i) = Round((Lines(2, i) - MinX + OffsetX) * StepX, 0)
		If Lines(2, i) < 0 Then Lines(2, i) = 0
		If Lines(2, i) >= nPixelWidth - 2 Then Lines(2, i) = nPixelWidth - 3
		Lines(3, i) = Round((Lines(3, i) - MinY + OffsetY) * StepY, 0)
		If Lines(3, i) < 0 Then Lines(3, i) = 0
		If Lines(3, i) >= nPixelHeight - 2 Then Lines(3, i) = nPixelHeight - 3
		CDGen_Line Lines(0, i) + X0 + 1, Lines(1, i) + Y0 + 1, Lines(2, i) + X0 + 1, Lines(3, i) + Y0 + 1
	Next
End Sub

Sub CDGen_Char(cChar, X0, Y0)
	' 在指定坐标处生成指定字符的位图阵列
	CDGen_Reset
	Select Case cChar
	Case "0"
		CDGen_SetDirection -60                            ' 逆时针60度(相对于垂直线)
		CDGen_FowardDraw -0.7                             ' 反方向绘制0.7个单位
		CDGen_SetDirection -60                            ' 逆时针60度
		CDGen_FowardDraw -0.7                             ' 反方向绘制0.7个单位
		CDGen_SetDirection 120                            ' 顺时针120度
		CDGen_FowardDraw 1.5                              ' 绘制1.5个单位
		CDGen_SetDirection -60                            ' 逆时针60度
		CDGen_FowardDraw 0.7                              ' 绘制0.7个单位
		CDGen_SetDirection -60                            ' 顺时针120度
		CDGen_FowardDraw 0.7                              ' 绘制0.7个单位
		CDGen_Close 0                                     ' 封闭当前笔与第0笔(0开始)
	Case "1"
		CDGen_SetDirection -90                            ' 逆时针90度(相对于垂直线)
		CDGen_FowardDraw 0.5                              ' 绘制0.5个单位
		CDGen_MoveToMiddle 0, 50                          ' 移动画笔的位置到第0笔(0开始)的50%处
		CDGen_SetDirection 90                             ' 逆时针90度
		CDGen_FowardDraw -1.4                             ' 反方向绘制1.4个单位
		CDGen_SetDirection 30                             ' 逆时针30度
		CDGen_FowardDraw 0.4                              ' 绘制0.4个单位
	Case "2"

⌨️ 快捷键说明

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