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

📄 login.asp

📁 功能强大的bbs
💻 ASP
字号:
<!--#include file="Conn.asp"-->
<!--#include file="inc/const.asp"-->
<!--#include file="inc/dv_clsother.asp"-->
<!--#include file="inc/chan_const.asp"-->
<!--#include file="inc/chkinput.asp"-->
<!--#include file="inc/email.asp"-->
<!--#include file="inc/md5.asp"-->
<%
Dvbbs.LoadTemplates("login")
Dim comeurl
dvbbs.stats=template.Strings(1)
Dvbbs.Nav()
dvbbs.Head_var 0,0,template.Strings(0),"login.asp"
Dim TruePassWord
TruePassWord=Dvbbs.Createpass
Select Case request("action")
Case "chk"
	Dvbbs_ChkLogin
	Dvbbs.Showerr()
Case "redir"
	redir
	Dvbbs.Showerr()
Case "save_redir_reg"
	call save_redir_reg()
	Dvbbs.Showerr()
Case Else
	Main
End Select

Dvbbs.ActiveOnline
Dvbbs.Footer()

Function Main()
	Dim TempStr
	TempStr = template.html(0)
	If Dvbbs.forum_setting(79)="0" Then
		TempStr = Replace(TempStr,"{$getcode}","")
	Else
		template.html(23)=Replace(template.html(23),"{$codestr}",Dvbbs.GetCode())
		TempStr = Replace(TempStr,"{$getcode}",template.html(23))
	End If
	If Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1 Then
		TempStr = Replace(TempStr,"{$rayuserlogin}",template.html(1))
	Else
		TempStr = Replace(TempStr,"{$rayuserlogin}","")
	End If
	Dim Comeurl,tmpstr
	If Request.ServerVariables("HTTP_REFERER")<>"" Then 
		tmpstr=split(Request.ServerVariables("HTTP_REFERER"),"/")
		Comeurl=tmpstr(UBound(tmpstr))
	Else
		Comeurl="index.asp"
	End If
	TempStr = Replace(TempStr,"{$comeurl}",Comeurl)
	Response.Write TempStr
	TempStr=""
End Function

Function Dvbbs_ChkLogin

	Dim UserIP
	Dim username
	Dim userclass
	Dim password
	Dim article
	Dim usercookies
	Dim mobile
	Dim chrs,i
	If Dvbbs.forum_setting(79)="1" Then
		If Not Dvbbs.CodeIsTrue() Then
			 Response.redirect "showerr.asp?ErrCodes=<li>验证码校验失败,请返回刷新页面后再输入验证码。&action=OtherErr"
		End If
	End If
	UserIP=Dvbbs.UserTrueIP
	mobile=trim(Dvbbs.CheckStr(request("mobile")))
	if mobile<>"" and request("username")="" then
		if len(mobile)<>11 then
			Dvbbs.AddErrCode(9)
		end if
	end if
	if mobile<>"" then
		if len(mobile)<>11 then mobile=""
	end if
	If request("username")="" Then
		If request("mobile")="" Then
			Dvbbs.AddErrCode(10)
		End If
	Else
		username=trim(Dvbbs.CheckStr(request("username")))
	End If
	If request("password")="" and mobile="" Then
		Dvbbs.AddErrCode(11)
	Else
		password=md5(trim(Dvbbs.CheckStr(request("password"))),16)
	End If
	If Dvbbs.ErrCodes<>"" Then Exit Function
	usercookies=request("CookieDate")
	'判断更新cookies目录
	Dim cookies_path_s,cookies_path_d,cookies_path
	cookies_path_s=split(Request.ServerVariables("PATH_INFO"),"/")
	cookies_path_d=ubound(cookies_path_s)
	cookies_path="/"
	For i=1 to cookies_path_d-1
		If not (cookies_path_s(i)="upload" or cookies_path_s(i)="admin") Then cookies_path=cookies_path&cookies_path_s(i)&"/"
	Next
	If dvbbs.cookiepath<>cookies_path Then
		cookies_path=replace(cookies_path,"'","")
		Dvbbs.execute("update dv_setup set Forum_Cookiespath='"&cookies_path&"'")
		Dim setupData 
		Dvbbs.CacheData(26,0)=cookies_path
		Dvbbs.Name="setup"
		Dvbbs.value=Dvbbs.CacheData
	End If
	If ChkUserLogin(username,password,mobile,usercookies,1)=false Then
		'本地验证未通过,使用手机号登录的
		If mobile<>"" Then
			challenge_check mobile,password
			Exit Function
		'本地验证未通过,使用用户名登录的,并且是高级用户则继续主服务器验证流程
		Else
			set chrs=Dvbbs.Execute("select UserMobile,IsChallenge from [Dv_User] where username='"&username&"' and IsChallenge=1")
			If chrs.eof and chrs.bof Then
				Dvbbs.AddErrCode(12)
				Exit Function
			Else
				challenge_check chrs("UserMobile"),password
				Exit Function
			End If
			set chrs=nothing
		End If
	End If

	Dim comeurlname
	If instr(lcase(request("comeurl")),"reg.asp")>0 or instr(lcase(request("comeurl")),"login.asp")>0 or trim(request("comeurl"))="" Then
		comeurlname=""
		comeurl="index.asp"
	Else
		comeurl=request("comeurl")
		comeurlname="<li><a href="&request("comeurl")&">"&request("comeurl")&"</a></li>"
	End If

	Dim TempStr
	TempStr = template.html(2)
	If Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1 And Dvbbs.Forum_ChanSetting(12)=1 Then
		TempStr = Replace(TempStr,"{$ray_logininfo}",template.html(3))
	Else
		TempStr = Replace(TempStr,"{$ray_logininfo}","")
	End If
	TempStr = Replace(TempStr,"{$comeurl}",comeurl)
	TempStr = Replace(TempStr,"{$comeurlinfo}",comeurlname)
	TempStr = Replace(TempStr,"{$forumname}",Dvbbs.Forum_Info(0))
	Response.Write TempStr
	TempStr=""

End Function

'全网认证
Function challenge_check(mobile,password)
	If Not(Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1) Then
		Dvbbs.AddErrCode(13)
		exit function
	End If
	Dim rs
	Dim MyForumID
	Dim PostChanWord
	set rs=Dvbbs.Execute("select top 1 * from Dv_ChallengeInfo")
	MyForumID=rs("D_ForumID")
	PostChanWord=Get_ChallengeWord

	Dim TempStr,TempArray
	TempArray = Split(template.html(19),"||")
	TempStr = TempArray(0)
	TempStr = Replace(TempStr,"{$mobile}",mobile)
	TempStr = Replace(TempStr,"{$password}",password)
	TempStr = Replace(TempStr,"{$MyForumID}",MyForumID)
	TempStr = Replace(TempStr,"{$serverurl}",Dvbbs.Get_ScriptNameUrl())
	TempStr = Replace(TempStr,"{$PostChanWord}",PostChanWord)
	TempStr = Replace(TempStr,"{$remobile}",left(mobile,3)&"xxx"&right(mobile,5))
	TempStr = Replace(TempStr,"{$usermobile}",left(mobile,3)&"xxx"&right(mobile,5))
	If PassWord<>"" Then
		TempStr = Replace(TempStr,"{$ifpassnull}",TempArray(1))
	Else
		TempStr = Replace(TempStr,"{$ifpassnull}","")
	End If
	Response.Write TempStr
	TempStr = ""
	set rs=nothing
End Function

Function redir()

	Dim ErrorCode,ErrorMsg
	Dim remobile,rechallengeWord,retokerWord,reuserpassword
	Dim resex,reqq,reemail,reusername
	Dim challengeWord_key,rechallengeWord_key
	Dim userclass
	Dim rs

	ErrorCode=trim(request("ErrorCode"))
	ErrorMsg=trim(request("ErrorMsg"))
	remobile=trim(Dvbbs.CheckStr(request("mobile")))
	reuserpassword=trim(Dvbbs.CheckStr(request("forumPwd")))
	rechallengeWord=trim(Dvbbs.CheckStr(request("challengeWord")))
	retokerWord=trim(request("tokenWord"))
	resex=trim(Dvbbs.CheckStr(request("sex")))
	If resex="F" Then 
		resex=1
	Else
		resex=0
	End If
	reqq=trim(Dvbbs.CheckStr(request("qq")))
	reemail=trim(Dvbbs.CheckStr(request("email")))
	reusername=trim(Dvbbs.CheckStr(request("username")))

	Session("re_challenge_reg_temp")=checkreal(remobile) & "|||" & checkreal(reuserpassword) & "|||" & checkreal(resex) & "|||" & checkreal(reqq) & "|||" & checkreal(reemail) & "|||" & checkreal(reusername)

	select case ErrorCode
	case 100
		challengeWord_key=session("challengeWord_key")
		If challengeWord_key=retokerWord Then
			set rs=Dvbbs.Execute("select UserMobile,IsChallenge,userid,userclass,username from [Dv_User] where UserMobile='"&remobile&"' and IsChallenge=1")
			If rs.eof and rs.bof Then
				'不是本论坛高级用户,引导其注册
				Call redir_reg_1()
				Exit Function
			Else
				Dvbbs.Execute("update [Dv_User] set UserPassword='"&md5(reuserpassword,16)&"' where UserMobile='"&remobile&"' and IsChallenge=1")
				dvbbs.userid=rs(2)
				userclass=rs(3)
				reusername=rs(4)
			End If
		Else
			Dvbbs.AddErrCode(14)
			'challengeWord_key & "," & retokerWord & "," & md5(Session("challengeWord") & ":" & "raynetwork",32) & "<br>原始随机数:"&Session("challengeWord")&",返回随机数:"&rechallengeWord&""
			Exit Function
		End If
	case 101
		Dvbbs.AddErrCode(15)
		Exit Function
	case Else
		Dvbbs.AddErrCode(14)
		Exit Function
	end select

	Dim TempStr
	TempStr = template.html(20)
	If Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1 And Dvbbs.Forum_ChanSetting(12)=1 Then
		TempStr = Replace(TempStr,"{$ray_logininfo}",template.html(3))
	Else
		TempStr = Replace(TempStr,"{$ray_logininfo}","")
	End If
	TempStr = Replace(TempStr,"{$reuserpassword}",reuserpassword)
	TempStr = Replace(TempStr,"{$forumname}",Dvbbs.Forum_Info(0))
	Response.Write TempStr
	TempStr=""
	Dim StatUserID,UserSessionID
	StatUserID = Dvbbs.checkStr(Trim(Request.Cookies(Dvbbs.Forum_sn)("StatUserID")))
	If IsNumeric(StatUserID) = 0 or StatUserID = "" Then
		StatUserID = Replace(Dvbbs.UserTrueIP,".","")
		UserSessionID = Replace(Startime,".","")
		If IsNumeric(StatUserID) = 0 or StatUserID = "" Then StatUserID = 0
		StatUserID = Ccur(StatUserID) + Ccur(UserSessionID)
	End If
	StatUserID = Ccur(StatUserID)
	'客人=SessionID+活动时间+发贴时间+版面ID
	Session(Dvbbs.CacheName & "UserID") = Split(StatUserID & "_" & Now & "_" & Now & "_" & Dvbbs.BoardID,"_")
	Response.Cookies(Dvbbs.Forum_sn).Expires=DateAdd("s",3600,Now())
	Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath
	Response.Cookies(Dvbbs.Forum_sn)("StatUserID") = StatUserID
	Response.Cookies(Dvbbs.Forum_sn)("usercookies") = "0"
	Response.Cookies(Dvbbs.Forum_sn)("username") = reusername
	Response.Cookies(Dvbbs.Forum_sn)("userid") = dvbbs.UserID
	Response.Cookies(Dvbbs.Forum_sn)("password") = TruePassWord
	Response.Cookies(Dvbbs.Forum_sn)("userclass") = userclass
	Response.Cookies(Dvbbs.Forum_sn)("userhidden") = 2
	rem 清除图片上传数的限制
	response.cookies("upNum")=0
	Response.Cookies(Dvbbs.Forum_sn).path=dvbbs.cookiepath
	
End Function

sub redir_reg_1()

	If Session("re_challenge_reg_temp")="" Then
		Dvbbs.AddErrCode(14)
		exit sub
	End If

	Dim re_challenge_reg_temp
	re_challenge_reg_temp=split(Session("re_challenge_reg_temp"),"|||")

	Dim TempStr
	TempStr = template.html(21)
	TempStr = Replace(TempStr,"{$maxuserlength}",Dvbbs.Forum_Setting(41))
	TempStr = Replace(TempStr,"{$minuserlength}",Dvbbs.Forum_Setting(40))
	TempStr = Replace(TempStr,"{$reusername}",re_challenge_reg_temp(5))
	TempStr = Replace(TempStr,"{$width}",Dvbbs.mainsetting(0))
	Response.Write TempStr
end sub

sub save_redir_reg()
	If Session("re_challenge_reg_temp")="" Then
		Dvbbs.AddErrCode(14)
		exit sub
	End If

	Dim username,sex,pass1,pass2,password
	Dim useremail,face,width,height
	Dim oicq,sign,showRe,birthday
	Dim mailbody,sendmsg,rndnum,num1
	Dim quesion,answer,topic
	Dim userinfo,usersetting
	Dim userclass,UserIM
	Dim re_challenge_reg_temp
	Dim rs,sql,i,namebadword,SplitWords
	re_challenge_reg_temp=split(Session("re_challenge_reg_temp"),"|||")

	If request("name")="" or Dvbbs.strLength(request("name"))>Cint(Dvbbs.Forum_setting(41)) or Dvbbs.strLength(request("name"))<Cint(Dvbbs.Forum_setting(40)) Then
		Dvbbs.AddErrCode(17)
	Else
		username=trim(request("name"))
	End If

	namebadword="=^%^?^&^;^,^'^

⌨️ 快捷键说明

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