<!-- #Include File="Conn.asp" -->
<!-- #Include File="Cls_main.asp" -->
<!-- #Include File="Inc_Encrypt.asp" -->
<%
'=======================================================
' 欢迎使用《阿赛大型门户网站系统V3.0》，简称“AsaiMHV3”
' 技术支持、商业版咨询、官方唯一指定联系QQ“4941172”
' 官方网站：http://77ya.com      程序负责人：阿赛
'=======================================================
Dim Cls
Dim ChannelIDs:ChannelIDs = 0		'频道 ID，对应后台
Dim NewContent:NewContent=""		'新增输出内容
Dim HtmlContent:HtmlContent=""		'输出内容
Dim PageUrl,MenuHelp,Dim_user
Dim Page_Power,i,Tit_Dir,Tit,Tit_Fir,Index_Url,IndexUrl,Action,FsoString,FileDefendThiefDown
Dim login_name,login_username,login_id,login_password,login_mode,login_islock,login_ispb,login_level,login_modep,login_estate,login_otim
Dim login_faces,login_emoney,login_integral,login_bbs_counter,login_msg,login_strength,login_expression
Dim login_email,login_phone,login_whe,login_lasttime,today_onlinetime,now_onlinetime,User_OnlineTime,login_ok_counter,login_ok_helpnum,login_ok_reply
Dim ukong,redx,go_back,web_nologin,web_nopost,ChannelRss,tmp_keyword
'ChannelRss=""                                        'Rss空调用定义
Dim Is_LoginTrue:Is_LoginTrue = False                '是否登陆
Set Cls=new Cls_ClassMain                            '声明系统类
Cls.IsDeBug = 1                                      '错误提示开关，二次开发时开启可提示相关错误
Call Cls.Cms_InitLoad()                              '网站初始化
'-----------------------------------常用变量设置--------------------------------------
call web_clear(3)
login_username=Cls.Cookies_Get("login_username")	'cookies用户名
login_password=Cls.Cookies_Get("login_password")	'cookies用户密码
login_mode=Cls.Cookies_Get("login_mode")		'用户登录模式
login_modep=0
login_id=0						'用户的ID编号
login_msg=0						'用户的邮件信息
login_email="@"
login_whe=""
login_phone=""
login_emoney=0 						'用户的虚拟货币数量
login_integral=0					'用户的积分
login_strength=0
login_expression=0
login_bbs_counter=0
User_OnlineTime=0
login_ok_counter=0
login_ok_helpnum=0
login_ok_reply=0
FileDefendThiefDown=Cls.Web_LKNumber(47)

action=Cls.Code_Query("action")
'常用字符串配制
Function Format_Mid_Num(ByVal dNum)
	Format_Mid_Num=Cls.Web_LKNumber(dNum)
End Function

Function Web_Dim(ByVal dNum)
	Web_Dim=Cls.Web_Common(dNum)
End Function
'================================================
'作    用：清除所有全局数组等，同时处理cookies，以及要清除的全局数组等为：web_Dim,rs,conn,AsaiMH
'参    数：
'	   c_end : 为1时结束网页
'基础介绍：
'   如果不永久保存cookies，则设置cookies的时间值
'   DateAdd 函数：返回已添加指定时间间隔的日期－DateAdd(interval, number, date)，其中：
'   interval：要添加的时间间隔单位，参数可为：yyyy 年,q 季度,m 月,d 日,ww 周,h 小时,n 分钟,s 秒
'   number：要添加的时间间隔长度，本例中为 20 分钟
'   date：要进行添加的时间，本例为 当前时间
'   DateAdd函数：此函数在本例中主要是设置cookies的过期时间为  20 分钟
'================================================
Public Sub Web_Clear(c_end)
  if request.cookies(Cls.web_cookies)("iscookies")="yes" then          '是否永久保存cookies
    response.cookies(Cls.web_cookies).expires=date+365                 '记住密码  1年
  else 
      if request.cookies(Cls.web_cookies)("iscookies")="31" then       '是否永久保存cookies
          response.cookies(Cls.web_cookies).expires=Date+31            '记住登陆 设为一个月
      else
          if request.cookies(Cls.web_cookies)("iscookies")="1" then
              response.cookies(Cls.web_cookies).expires=Date+1         '记住登陆 设为一天
          else
              if request.cookies(Cls.web_cookies)("iscookies")="no" then
                  response.cookies(Cls.web_cookies).expires=DateAdd("n",Format_Mid_Num(14),Cls.now_time) '登陆超时时间
              End If
          End If
      End If
  End If
  response.cookies(Cls.web_cookies).path=Cls.Web_Dir               '写入cookies的路径
  if c_end=3 then exit sub
  if isobject(rs) then set rs=nothing                              '如果rs是连接数据库变量，则清除
  if Cls.isconn then                                               '如果数据库仍保持连接，则关闭数据库，同时清除conn变量
    conn.close
    set conn=nothing
  End If
  set Cls=nothing                                                  '清除类变量
  if c_end=1 then response.end                                     'c_end=1时结束网页（c_end为参数）
End Sub

'//* 设置过期时间到 Cookies *//
Public Sub Cookies_Load()
	Cls.Cookies_Set "time_load",dateadd("s",-5,Cls.now_time)
End Sub

'//* 清除 Cookies *//
Public Sub Cookies_Clear(ByVal tl)
	If tl=1 Then Call Cookies_Load()
	Cls.Cookies_Set "login_username",""
	Cls.Cookies_Set "login_password",""
	Cls.Cookies_Set "login_id",""
	Cls.Cookies_Set "login_mode",""
	Cls.Cookies_Set "iscookies",""
	login_mode=""
	login_username=""
	login_password=""
End Sub

'================================================
'作  用：从ndata表中查找指定id，该id为ndata表中的最新数据
'================================================
function first_id(ndata,id)
  Dim rsf
  set rsf=Cls.exec("select top 1 "&id&" from "&ndata&" order by "&id&" desc",1)
  first_id=rsf(id)
  rsf.close
  set rsf=nothing
End Function
Function UserGroup_Config(ByVal dNum)
	Dim TmpStr,pi,UserGroup_Number
	TmpStr=Cls.Cache_Get("User_Group")
	For pi=0 To ubound(TmpStr,2)
		If login_mode=TmpStr(0,pi) Then
	      UserGroup_Number=Split(TmpStr(4,pi),",")(dNum)
		  Exit For
		Else
	      UserGroup_Number=0
		End If
	Next
	Erase TmpStr
	UserGroup_Config=UserGroup_Number
End Function

'================================================
'作    用：根据用户的登录模式，取得用户所属类别的设置。format_power(login_mode,2)
'参    数：
'     pvar：即login_mode(用户登录模式)
'     pt=1：取得用户登录模式的中文名称
'     pt=2：则查找用户属于用户组中的第几个
'     pt=3：取得登录用户的级别代码，用数值表示
'     pt=4：为配制参数
'     pt=5：为名称字体颜色
'     pt=6：为名称背景颜色
'基础介绍：
'  UBound 函数：返回指定数组最大可用下标。用“:”将Dim_user(i)分割成数据，查找用户所属的用户级别
'================================================
function format_power(pvar,pt)
	Dim TmpStr,pi,temp1
	TmpStr=Cls.Cache_Get("User_Group")
	select case pt
	case 2
		temp1=1
	case 3
		temp1=0
	case else
		temp1=""
	end select
	if pvar="" then                              '如果用户为游客，则返回
		format_power=temp1
		exit function
	End If
	for pi=0 to ubound(TmpStr,2)
		if pvar=TmpStr(0,pi) then                       '找到该用户类别，对其进行pt处理
			select case pt
			case 1
				temp1=TmpStr(1,pi)                          '取得用户登录模式的中文名称
			case 2
				temp1=pi+1                             '查找用户属于第几类			
			case 3
				temp1=TmpStr(2,pi)                          '取得登录用户的类别代码，用数值表示
			case 4
				temp1=TmpStr(4,pi) 				
			case 5
				temp1=TmpStr(5,pi) 
			case 6
				temp1=TmpStr(6,pi) 				
			case else
				temp1=pvar                             '对pvar即login_mode不进行转换
			end select
		End If
	next
	format_power=temp1
End Function

'================================================
'作    用：根据用户的登录模式，取得用户所属类别的设置。
'参    数：
'     pnn：须为数值,指定用户类别login_modep
'     pt ：须为数值,取值可以为1,2,3
'该函数与format_power()的区别主要在于：本函数已经明确所要处理的用户类型，而format_power()为用户类别的通用设置,调用简单。
'================================================
function format_power2(pnn,pt)
	Dim TmpStr
	TmpStr=Cls.Cache_Get("User_Group")
	format_power2=TmpStr(pt-1,pnn-1)
	Erase TmpStr
End Function

function format_powers(pt)
	Dim TmpStr,pi
	TmpStr=Cls.Cache_Get("User_Group")
	for pi=0 to ubound(TmpStr,2)
		if cint(TmpStr(2,pi))=cint(pt) then
		   format_powers=TmpStr(0,pi)
		  exit for
		End If
	next
End Function

function format_emoney_power(n_emoney,n_usert,n_pt)
 Dim temp1,dsim,uii,nk,upnum
 Dim pi
 if n_usert <>"" then
  upnum=Cls.UserGroupLen
  dsim=split(n_usert,".")
  for uii=0 to ubound(dsim)
    nk=dsim(uii)
    if int(upnum+1)>=int(nk) then
      if int(nk)=0 then
        temp1=temp1&Img_Alt("icon_other","游客")
      else
        temp1=temp1&Img_Alt("icon_"&format_power2(nk,1),format_power2(nk,2))
      End If
    End If
  next
  if isarray(dsim) then erase dsim
 else
  temp1="<font class=Gys>没有设置浏览权限</font>"
 end if
  if n_pt=1 then temp1=temp1&"&nbsp;<font class=red2>"&n_emoney&"</font>&nbsp;"&Cls.web_unit
  format_emoney_power=temp1
End Function

'================================================
'作    用：处理网站运行时产生的任何错误的显示
'参    数：
'    rror_type：为产生错误的代码
'    error_len：显示表格的宽度
'基础介绍：
'   Replace 函数：将find全部替换为replace。Replace(expression, find, replace)本例中用于将 + 替换为错误显示的图片，以使页面更加美观
'================================================
function found_error(error_type,error_len)
  Dim temp1
  temp1=replace(error_type,"+",Cls.img("err")&" ")
  Dim HtmlStr:HtmlStr=Cls.ReadSkin("found_error")
  HtmlStr = Replace(HtmlStr,"{$error_len}",error_len)
  HtmlStr = Replace(HtmlStr,"{$error_str}",temp1)
  found_error=HtmlStr
End Function

'成功信息显示
function found_suc(suc_type,suc_len)
  Dim temp1
  temp1=replace(suc_type,"+",Cls.img("err")&" ")
  Dim HtmlStr:HtmlStr=Cls.ReadSkin("put_suc")
  HtmlStr = Replace(HtmlStr,"{$suc_len}",suc_len)
  HtmlStr = Replace(HtmlStr,"{$suc_str}",temp1)
  found_suc=HtmlStr
End Function

'//* 检验用户是否非法 *//
Function ChkName(sn_var)
	Dim Nii
	ChkName = False
	If sn_var="" Or len(sn_var)>20 Or Instr(sn_var,"|")>0 Or Instr(sn_var,",")>0 Or Instr(sn_var,":")>0 Or Instr(sn_var,"'")>0 Or Instr(sn_var,"""")>0 Or Instr(sn_var,chr(9))>0 Or Instr(sn_var,chr(10))>0 Or Instr(sn_var,chr(13))>0 Or Instr(sn_var,chr(32))>0 Then
		Exit Function
	End If
	For Nii = 1 To Len(sn_var)
		If Instr(Cls.Web_RegBadWords,mid(sn_var,Nii,1)) > 0 Then
			Exit For
			Exit Function
		End If
	Next
	ChkName = True
End Function

'//* 检验ID是否非法 *//
Function ChkID(ID_var)
	ChkID = false
	If ID_var="" Or Len(ID_var)>20 Or Cls.Is_Num(ID_var)=False Then Exit Function
	ChkID = true
End Function

'//* 检验密码是否非法 *//
Function ChkPassWord(symbol_var)
	Dim PassChr, Pii
	PassChr = "abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789"
	ChkPassWord = false
	If symbol_var="" Or Len(symbol_var)>20 Then Exit Function
	For Pii = 1 To Len(symbol_var)
		If Instr(PassChr,Mid(symbol_var,Pii,1)) = 0 Then
			Exit For
			Exit Function
		End If
	Next
	ChkPassWord = true
End Function

'================================================
'作    用：过滤掉保留的注册用户名
'================================================
function health_name(hnn)
  Dim ti,tnum,tDim,hn
  health_name=false
  hn=LCase(hnn)
  tDim=split(Cls.Web_RegBadWords&","&Cls.Web_RegUserName,",")
  tnum=ubound(tDim)
  for ti=0 to tnum
    if Instr(hn,tDim(ti))>0 then
      erase tDim
      exit function
    End If
  next
  erase tDim
  health_name=true
End Function

function true_accept(auser)
  true_accept=false
  if ChkName(auser)=true then
    Dim rsf
    set rsf=Cls.exec("select top 1 username from AsaiMHUserData where username='"&auser&"'",1)
    if not rsf.eof then
      auser=rsf(0)
      true_accept=true
    End If
    rsf.close
    set rsf=nothing
  End If
End Function
%>
