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

📄 #register.mo

📁 WAPmo手机网站管理平台是一款创建与管理维护WAP网站的的软件产品
💻 MO
📖 第 1 页 / 共 2 页
字号:
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 + -