?? #register.mo
字號:
Option Explicit
TBBS.AddLang "common|head|foot|error|register"
TBBS.SetNodes "env|user"
TBBS.AddNav "", TBBS.Lang("register")
TBBS.Page("name") = TBBS.GetNav()
TBBS.AddOnline 0, TBBS.Page("name")
TBBS.Vars("skin") = "default"
TBBS.Vars("agreement") = Replace(MyKernel.Resource("moex.twinbbs.agree"), "[env.bbs_name]", TBBS.Env("bbs_name"))
TBBS.GetReferer
Call main
Private Sub doGet()
TBBS.Vars("state") = IIf(TBBS.Env("reg_state") = TBBS_TRUE, 0, 1)
If TBBS.Vars("state") = 1 Then
TBBS.AddHint "reg_closed", Array()
Exit Sub
End If
TBBS.Vars("sex") = -1
TBBS.Vars("advanced") = TBBS_FALSE
TBBS.Vars("face") = 1
TBBS.Vars("reply_hint") = TBBS_FALSE
If TBBS.Vars("agreement") = "" Then
TBBS.Vars("state") = 2
End If
End Sub
Private Sub doPost()
TBBS.Vars("state") = IIf(TBBS.Env("reg_state") = TBBS_TRUE, 0, 1)
If TBBS.Vars("state") = 1 Then
TBBS.AddHint "reg_closed", Array()
Exit Sub
End If
TBBS.Vars("sex") = -1
TBBS.Vars("advanced") = TBBS_FALSE
TBBS.Vars("face") = 1
TBBS.Vars("reply_hint") = TBBS_FALSE
Select Case MyIO.QueryString("Handle")
Case "agree"
Call doPostAgree
Case "save"
Call doPostSave
Case Else
TBBS.Vars("state") = 100
TBBS.AddHint "invalid_handle", Array()
End Select
End Sub
Private Sub doPostAgree()
If MyIO.Form("agree") = "yes" Then
TBBS.Vars("state") = 2
Else
TBBS.Vars("state") = 3
TBBS.AddHint "must_agree", Array()
End If
End Sub
Private Sub doPostSave()
Dim clsCmd, strSQL, arr
Dim intNameMinSize, intNameMaxSize
intNameMinSize = atoi(TBBS.Env("username_min_size"))
intNameMaxSize = atoi(TBBS.Env("username_max_size"))
intNameMinSize = IIf(intNameMinSize < 1 Or intNameMinSize > 20, 1, intNameMinSize)
intNameMaxSize = IIf(intNameMaxSize < 1 Or intNameMaxSize > 20, 20, intNameMaxSize)
intNameMinSize = IIf(intNameMinSize > intNameMaxSize, 1, intNameMinSize)
TBBS.Vars("advanced") = TBBSBool(MyIO.Form("advanced"))
TBBS.Vars("username") = Trim(MyIO.Form("username"))
TBBS.Vars("passwd") = Trim(MyIO.Form("passwd"))
Select Case TBBS.Env("retake")
Case "qa"
TBBS.Vars("question") = Trim(MyIO.Form("question"))
TBBS.Vars("answer") = Trim(MyIO.Form("answer"))
If TBBS.Env("passwd_by_email") = TBBS_TRUE Then
TBBS.Vars("email") = Trim(MyIO.Form("email"))
End If
Case "email"
TBBS.Vars("email") = Trim(MyIO.Form("email"))
Case Else
TBBS.Vars("mobile") = Trim(MyIO.Form("mobile"))
If TBBS.Env("passwd_by_email") = TBBS_TRUE Then
TBBS.Vars("email") = Trim(MyIO.Form("email"))
End If
End Select
TBBS.Vars("face") = atoi(MyIO.Form("face"))
TBBS.Vars("sex") = atoi(MyIO.Form("sex"))
TBBS.Vars("birthday") = Trim(MyIO.Form("birthday"))
TBBS.Vars("address") = Trim(MyIO.Form("address"))
TBBS.Vars("homepage") = Trim(MyIO.Form("homepage"))
TBBS.Vars("qq") = Trim(MyIO.Form("qq"))
TBBS.Vars("msn") = Trim(MyIO.Form("msn"))
TBBS.Vars("intro") = MyIO.Form("intro")
TBBS.Vars("replyhint") = TBBSBool(MyIO.Form("replyhint"))
TBBS.Vars("signature") = MyIO.Form("signature")
TBBS.Vars("state") = 4
If Not TBBS.CheckValidate("reg") Then
TBBS.AddHint "invalid_validate", Array()
ElseIf TBBS.Vars("username") = "" Then
TBBS.AddHint "empty_username", Array()
ElseIf Len(TBBS.Vars("username")) < intNameMinSize Then
TBBS.AddHint "username_too_short", Array(TBBS.Env("username_min_size"))
ElseIf Len(TBBS.Vars("username")) > intNameMaxSize Then
TBBS.AddHint "username_too_long", Array(TBBS.Env("username_max_size"))
ElseIf Not ValidName(TBBS.Vars("username")) Then
TBBS.AddHint "invalid_username", Array()
ElseIf InString(TBBS.Env("username_reserve"), TBBS.Vars("username"), False) Then
TBBS.AddHint "username_exists", Array()
ElseIf TBBS.Env("passwd_by_email") = TBBS_FALSE And TBBS.Vars("passwd") = "" Then
TBBS.AddHint "empty_passwd", Array()
ElseIf TBBS.Env("passwd_by_email") = TBBS_FALSE And TBBS.Vars("passwd") <> Trim(MyIO.Form("pwdcfm")) Then
TBBS.AddHint "passwd_not_confirm", Array()
ElseIf Not ValidRetake() Then
'pass
ElseIf Not ValidEmail2() Then
'pass
ElseIf TBBS.Vars("birthday") <> "" And Not reg_test("^[\d]{4}\-[\d]{1,2}\-[\d]{1,2}$", "", TBBS.Vars("birthday")) Then
TBBS.AddHint "invalid_birthday", Array()
ElseIf TBBS.Vars("address") <> "" And Len(TBBS.Vars("address")) > 255 Then
TBBS.AddHint "address_too_long", Array()
ElseIf TBBS.Vars("homepage") <> "" And Len(TBBS.Vars("homepage")) > 255 Then
TBBS.AddHint "homepage_too_long", Array()
ElseIf TBBS.Vars("homepage") <> "" And Not ValidURL(TBBS.Vars("homepage")) Then
TBBS.AddHint "invalid_homepage", Array()
ElseIf TBBS.Vars("qq") <> "" And Not reg_test("^[\d]{4,12}$", "", TBBS.Vars("qq")) Then
TBBS.AddHint "invalid_qq", Array()
ElseIf TBBS.Vars("msn") <> "" And Not ValidEmail(TBBS.Vars("msn")) Then
TBBS.AddHint "invalid_msn", Array()
ElseIf TBBS.Vars("msn") <> "" And Len(TBBS.Vars("msn")) > 255 Then
TBBS.AddHint "msn_too_long", Array()
ElseIf TBBS.Vars("signature") <> "" And Len(TBBS.Vars("signature")) > 255 Then
TBBS.AddHint "signature_too_long", Array()
ElseIf EmailExists(TBBS.Vars("email")) Then
TBBS.AddHint "email_exists", Array()
ElseIf Not ValidInterval() Then
TBBS.AddHint "reg_interval_too_short", Array(TBBS.Env("reg_interval"))
Else
strSQL = "USERNAME='$(UserName)'"
strSQL = Replace(strSQL, "$(UserName)", SafeString(TBBS.Vars("username")))
Set clsCmd = MyKernel.Command(T_USER)
clsCmd.CommandType = "SELECT"
clsCmd.Where = strSQL
If clsCmd.Exec Then
TBBS.AddHint "username_exists", Array(TBBS.Vars("username"))
Else
If TBBS.Env("passwd_by_email") = TBBS_TRUE Then
TBBS.Vars("passwd") = GetRandom(10)
If Not TBBS.SendEmail(TBBS.Vars("email"), GetEmailSubject(), GetEmailBody()) Then
TBBS.AddHint "send_reg_email_failed", Array()
TBBS.Vars("state") = 5
End If
End If
If TBBS.Vars("state") = 4 Then
TBBS.AddHint "reg_ok", Array()
If TBBS.Env("passwd_by_email") = TBBS_TRUE Then
TBBS.AddHint "send_reg_email_ok", Array()
End If
If TBBS.Env("reg_need_examine") = TBBS_TRUE Then
TBBS.AddHint "reg_need_examine", Array()
End If
clsCmd("username") = TBBS.Vars("username")
clsCmd("passwd") = MD5(TBBS.Vars("passwd"))
Select Case TBBS.Env("retake")
Case "qa"
clsCmd("question") = TBBS.Vars("question")
clsCmd("answer") = TBBS.Vars("answer")
If TBBS.Env("passwd_by_email") = TBBS_TRUE Then
clsCmd("email") = TBBS.Vars("email")
End If
Case "email"
clsCmd("email") = TBBS.Vars("email")
Case Else
clsCmd("mobile") = TBBS.Vars("mobile")
If TBBS.Env("passwd_by_email") = TBBS_TRUE Then
clsCmd("email") = TBBS.Vars("email")
End If
End Select
clsCmd("face") = TBBS.Vars("face")
clsCmd("sex") = TBBS.Vars("sex")
clsCmd("birthday") = TBBS.Vars("birthday")
clsCmd("address") = TBBS.Vars("address")
clsCmd("homepage") = TBBS.Vars("homepage")
clsCmd("qq") = TBBS.Vars("qq")
clsCmd("msn") = TBBS.Vars("msn")
clsCmd("intro") = TBBS.Vars("intro")
clsCmd("replyhint") = TBBS.Vars("reply_hint")
clsCmd("signature") = TBBS.Vars("signature")
clsCmd("coin") = TBBS.XPEnv("coin", "reg")
clsCmd("cent") = TBBS.XPEnv("cent", "reg")
clsCmd("witchery") = TBBS.XPEnv("witchery", "reg")
clsCmd("topics") = 0
clsCmd("replies") = 0
clsCmd("souls") = 0
clsCmd("deletes") = 0
clsCmd("favs") = 0
If TBBS.Env("reg_need_examine") = TBBS_TRUE Then
clsCmd("state") = TBBS_STATE_APPLY
clsCmd("logincount") = 0
arr = GetGroupInfo(4)
Else
clsCmd("state") = TBBS_STATE_OK
clsCmd("logincount") = IIf(TBBS.Env("passwd_by_email") = TBBS_TRUE, 0, 1)
If TBBS.Env("passwd_by_email") = TBBS_FALSE Then
clsCmd("lastlogintime") = TBBS.Vars("time")
clsCmd("lastloginip") = MyIO.Env("REMOTE_ADDR")
clsCmd("online") = 1
End If
arr = GetGroupInfo(0)
End If
clsCmd("groupid") = arr(0)
clsCmd("groupname") = arr(1)
clsCmd("groupimg") = arr(2)
If TBBS.Env("reg_welcome") = TBBS_TRUE Then
clsCmd("msgrecv") = 1
clsCmd("msgnew") = 1
Else
clsCmd("msgrecv") = 0
clsCmd("msgnew") = 0
End If
clsCmd("regtime") = TBBS.Vars("time")
clsCmd("regip") = MyIO.Env("REMOTE_ADDR")
clsCmd("source") = IIf(TBBS.NetType = "web", 0, 1)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -