www.gusucode.com > CC校友录贴吧 CCBar源码程序asp编程 > user/user_reg_save.asp

    <%
'===================================================================
'= ASP FILENAME	: /user/user_reg_save.asp
'= CREATED TIME : 2006-6-26
'= LAST MODIFIED: 2006-6-26
'= VERSION INFO : CCASP Framework Ver 2.0.1 ALL RIGHTS RESERVED BY www.cclinux.com
'= DESCRIPTION  : 用户密码修改
'= Change Log:
'===================================================================
%>

<!-- #include file = "../inc/customer/include_customer_action_execute.asp" -->
<!-- #include file = "./user_inc.asp" -->
<!-- #include file = "../inc/inc_md5.asp" -->
<!-- #include file = "../inc/logic/logic_user.asp" -->
<!-- #include file = "../inc/inc_file_func.asp" -->
<%
'========================================================
'==   Action参数设置
'========================================================
'== 页面名
Const CONST_PAGE_FILE	= "user/user_reg_save.asp"

'== 页面标题/功能
Const CONST_PAGE_TITLE	= "用户注册"

'== 功能函数名字空间
Const CONST_ACTION_FUNC	= "FormSaveUserRegisterCtl"

'== 相对根目录路径 
GBL_strHomeURL			= "../"

'== 页面构造
Call ActionBuild()

'== 请求校验与过滤
Call ActionFilter(CONST_PAGE_FILE,CONST_ACTION_FUNC)

'== 页面析构
Call ActionOver()

%>

<%
'===================================================================
'= Sub         : FormSaveUserRegisterCtl()
'= Time		   : Created At 2006-6-26
'= Input       : None
'= Table	   : INSERT INTO CLASS_USER,
'= Description : 用户注册
'===================================================================
Sub FormSaveUserRegisterCtl()

	Dim intErrId
	Dim strAddInfo
	Dim strUserName,strEmail,strRealName		'== Get form data
	Dim intUserId
	Dim intFieldId
	Dim arrRegAnsw(4)
	Dim intEnroll,intGrad,strWork

	intErrId = 0

	'== check user reg whether or not need check by question
	If GBL_intUserRegMode = 2 Then
		
		arrRegAnsw(0) = Trim(Request.Form("iptRegQuestion1"))
		arrRegAnsw(1) = Trim(Request.Form("iptRegQuestion2"))
		arrRegAnsw(2) = Trim(Request.Form("iptRegQuestion3"))
		arrRegAnsw(3) = Trim(Request.Form("iptRegQuestion4"))
		arrRegAnsw(4) = Trim(Request.Form("iptRegQuestion5"))

		GBL_objPubDB.Clear()
		GBL_objPubDB.TableName = "CLASS_REG"
		GBL_objPubDB.SQLType = "SELECT"
		GBL_objPubDB.AddField "TOP 5 REG_ANSWER",""
		GBL_objPubDB.SQLRSExecute()
		Call ResultExecute(GBL_objPubDB.intErrNum,"user check before reg","ES_ERR")
		Dim i
		If GBL_objPubDB.intRSNum > 0 Then

			For i = 1 To GBL_objPubDB.intRSNum 

				strAddInfo = "注册验证问题" & i
				intErrId = DataCheck("DT_FIX_LENGTH",arrRegAnsw(i - 1),strAddInfo,"1|DTC_LESS_MORE_LEN|100|")
				If intErrId <> 0 Then
					Call ResultExecute(E_USER_PUB,"请填写注册提问","ES_ERR")
				End If

				If arrRegAnsw(i - 1 ) <> Trim(GBL_objPubDB.objPubRS("REG_ANSWER")) Then
					Call ResultExecute(E_USER_PUB,"问题" & i & "回答错误","ES_ERR")
				End If

				GBL_objPubDB.objPubRS.MoveNext

			Next

		End If

	End If

	'== Check user register account
	Dim strAccount : strAccount = Trim(Request.Form("iptAccount"))
	strAddInfo = "所申请用户名"
	intErrId = 			DataCheck("DT_FIX_LENGTH",strAccount,strAddInfo,"2|DTC_LESS_MORE_LEN|10|")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	GBL_objPubDB.Clear()
	GBL_objPubDB.TableName = "CLASS_USER"
	GBL_objPubDB.SQLType = "SELECT"
	GBL_objPubDB.AddField "USER_ID",""
	GBL_objPubDB.Where = "USER_ACCOUNT='" & strAccount & "'"
	GBL_objPubDB.SQLRSExecute()
	Call ResultExecute(GBL_objPubDB.intErrNum,GBL_objPubDB.ReturnSQL(),"ES_ERR")
	If GBL_objPubDB.intRSNum <> 0 Then
		Call GBL_objException.catchErr(E_USER_PUB,"该用户名已存在")
		Exit Sub
	End If

	'== Check user email
	strEmail = Trim(Request.Form("iptEmail"))
	strAddInfo = "所填写的"
	intErrId = DataCheck("DT_EMAIL", strEmail, strAddInfo, "")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	GBL_objPubDB.Clear()
	GBL_objPubDB.TableName = "CLASS_USER"
	GBL_objPubDB.SQLType = "SELECT"
	GBL_objPubDB.Where = "USER_EMAIL='" & strEmail & "'"
	GBL_objPubDB.AddField "USER_ID",""
	GBL_objPubDB.SQLRSExecute()
	Call ResultExecute(GBL_objPubDB.intErrNum,"","ES_ERR")
	If GBL_objPubDB.intRSNum <> 0 Then
		Call GBL_objException.catchErr(E_USER_PUB,"该邮件地址已被人使用")
		Exit Sub
	End If

	'== Check user real name
	strRealName = Trim(Request.Form("iptRealName"))
	strAddInfo = "您的真实姓名"
	intErrId = DataCheck("DT_CHN", strRealName, strAddInfo, "")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	intErrId =															   DataCheck("DT_FIX_LENGTH",strRealName,strAddInfo,"2|DTC_LESS_MORE_LEN|4|")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	'== Check user's pwd
	Dim strPassWord : strPassWord = Trim(Request.Form("iptPassWord"))
	strAddInfo = "你的输入密码"
	intErrId =  DataCheck("DT_FIX_LENGTH",strPassWord,strAddInfo,"6|DTC_LESS_MORE_LEN|20|")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	Dim strPassWord2 : strPassWord2 = Trim(Request.Form("iptPassWord2"))
	strAddInfo = "你的确认密码"
	intErrId = DataCheck("DT_FIX_LENGTH",strPassWord2,strAddInfo,"6|DTC_LESS_MORE_LEN|20|")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	If strPassWord <> strPassWord2 Then
		Call ResultExecute(256,"","ES_ERR")
	End If

	'== Encrypt user pwd
	strPassword = Md5(strPassWord)

	'== Check question and answer
	Dim strQuestion : strQuestion = Trim(Request.Form("iptQuestion"))
	strAddInfo = "你的密码问题"
	intErrId =  DataCheck("DT_FIX_LENGTH",strQuestion,strAddInfo,"1|DTC_LESS_MORE_LEN|50|")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	Dim strAnswer : strAnswer = Trim(Request.Form("iptAnswer"))
	strAddInfo = "你的问题答案"
	intErrId =  DataCheck("DT_FIX_LENGTH",strAnswer,strAddInfo,"1|DTC_LESS_MORE_LEN|50|")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	'== Check user's qq
	Dim strQq : strQq = Trim(Request.Form("iptQq"))

	'== Check user's workshop
	Dim strWorkShop : strWorkShop = Trim(Request.Form("iptWorkShop"))
	If Len(strWorkShop) < 4 Or Len(strWorkShop) > 100 Then
		Call ResultExecute(E_USER_PUB,"请填写在所在单位","ES_ERR")
		Exit Sub
	End If

	'== Check user's telephone
	Dim strTele : strTele = Trim(Request.Form("iptTele"))

	'== Check user's address
	Dim strAddress : strAddress = Trim(Request.Form("iptAddress"))

	'== Check user's class type
	Dim strClass : strClass = Trim(Request.Form("selClass"))
	If Len(strClass) < 4 Or Len(strClass) > 20 Then
		Call ResultExecute(E_USER_PUB,"请填写在校班级","ES_ERR")
		Exit Sub
	End If

	'== Check user's enroll and grad
	intEnroll = Trim(Request.Form("selEnroll"))
	If Not IsNumeric(intEnroll) Then
		Call ResultExecute(E_USER_PUB,"请填入正确的入学年份","ES_ERR")
		Exit Sub
	End If

	intGrad = Trim(Request.Form("selGrad"))
	If Not IsNumeric(intGrad) Then
		Call ResultExecute(E_USER_PUB,"请填入正确的毕业年份","ES_ERR")
		Exit Sub
	End If

	If intGrad < intEnroll Then
		Call ResultExecute(E_USER_PUB,"请填入正确的毕业和入学年份","ES_ERR")
		Exit Sub
	End If

	'== Check user work
	strWork = Trim(Request.Form("selWork"))
	If strWork = "" Then
		Call ResultExecute(E_USER_PUB,"请选择您的职业领域","ES_ERR")
		Exit Sub
	End If



	'== Check user's sex
	Dim strSex : strSex = Trim(Request.Form("selSex"))

	'== Check user's birthday
	Dim strBirthYear : strBirthYear = Trim(Request.Form("selBirthYear"))
	strAddInfo = "你的出生年份"
	intErrId = DataCheck("DT_INT",strBirthYear,strAddInfo,"")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	Dim strBirthMon : strBirthMon = Trim(Request.Form("selBirthMon"))
	strAddInfo = "你的出生月份"
	intErrId = DataCheck("DT_INT",strBirthMon,strAddInfo,"")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	Dim strBirthDay : strBirthDay = Trim(Request.Form("selBirthDay"))
	strAddInfo = "你的出生日期"
	intErrId = DataCheck("DT_INT",strBirthDay,strAddInfo,"")
	Call ResultExecute(intErrId,strAddInfo,"ES_ERR")

	Dim strBirth : strBirth = strBirthYear & "-" & strBirthMon & "-" & strBirthDay

	GBL_objPubDB.Clear()
	GBL_objPubDB.TableName = "CLASS_USER"
	GBL_objPubDB.SQLType = "INSERT"
	GBL_objPubDB.AddField "USER_ACCOUNT", strAccount
	GBL_objPubDB.AddField "USER_EMAIL", strEmail
	GBL_objPubDB.AddField "USER_REALNAME", strRealName
	GBL_objPubDB.AddField "USER_PASSWORD", strPassWord
	GBL_objPubDB.AddField "USER_QUESTION", strQuestion
	GBL_objPubDB.AddField "USER_ANSWER", strAnswer
	GBL_objPubDB.AddField "USER_QQ", strQq
	GBL_objPubDB.AddField "USER_WORKSHOP", strWorkShop
	GBL_objPubDB.AddField "USER_TELE", strTele
	GBL_objPubDB.AddField "USER_ADDRESS", strAddress
	GBL_objPubDB.AddField "USER_CLASS", strClass
	GBL_objPubDB.AddField "USER_SEX", strSex
	GBL_objPubDB.AddField "USER_GRAD", intGrad
	GBL_objPubDB.AddField "USER_ENROLL", intEnroll
	GBL_objPubDB.AddField "USER_WORK", strWork

	'== whether or not verify for register user
	If GBL_intUserRegMode = 3 Or GBL_intUserRegMode = 4 Then
		GBL_objPubDB.AddField "USER_AUTHEN", 8
	Else
		GBL_objPubDB.AddField "USER_AUTHEN", 0
	End If

	If strSex = "男" Then
		GBL_objPubDB.AddField "USER_CARTOON_FACE", GBL_strCartoonMale
		GBL_objPubDB.AddField "USER_NOW_FACE",GBL_strCartoonFacePath & GBL_strCartoonMale & ".gif"
	ElseIf strSex = "女" Then
		GBL_objPubDB.AddField "USER_CARTOON_FACE", GBL_strCartoonFeMale
		GBL_objPubDB.AddField "USER_NOW_FACE",GBL_strCartoonFacePath & GBL_strCartoonFeMale & ".gif"
	Else
		GBL_objPubDB.AddField "USER_CARTOON_FACE", GBL_strCartoonMale
		GBL_objPubDB.AddField "USER_NOW_FACE",GBL_strCartoonFacePath & GBL_strCartoonFeMale & ".gif"
	End If
	
	GBL_objPubDB.AddField "USER_FACE_SELECT","卡通头像"
	GBL_objPubDB.AddField "USER_UP_FACE","null.gif"
	GBL_objPubDB.AddField "USER_BIRTH", strBirth
	
	Dim strHtmlCode 
	'== Get real ip
	If Request.ServerVariables("HTTP_X_FORWARDED_FOR") <> "" Then
		GBL_objPubDB.AddField "USER_LAST_IP", Request.ServerVariables("HTTP_X_FORWARDED_FOR")
	Else
		GBL_objPubDB.AddField "USER_LAST_IP", Request.ServerVariables("REMOTE_ADDR")
	End If
	GBL_objPubDB.SQLExecute()
	Call ResultExecute(GBL_objPubDB.intErrNum,""&GBL_objPubDB.returnsql,"ES_ERR")

	Dim strFilePath 

	If GBL_intUserRegMode = 4  Then
		strHtmlCode = "用户" & strAccount & "注册成功,正在等待批准"
	ElseIf GBL_intUserRegMode = 3 Then
		'== 重新生成用户select html
		strFilePath = GBL_strHomeUrl & GBL_strHtmlFolder & "user_option.html"
		If Not MakeHtmlUserOptionLogic("",strFilePath) Then Exit Sub 
		strHtmlCode = "用户" & strAccount & "注册成功"
	Else
		'== 重新生成用户select html
		strFilePath = GBL_strHomeUrl & GBL_strHtmlFolder & "user_option.html"
		If Not MakeHtmlUserOptionLogic("",strFilePath) Then Exit Sub 
		strHtmlCode = "用户" & strAccount & "注册成功"
	End If

	'== 成功处理
	Dim strSuccUrl
	strSuccUrl = "user/user_login_form.asp?action=FormUserLogin"
	Call SuccExecute(strHtmlCode,strSuccUrl)
	Call ResultExecute(201,strHtmlCode,"ES_SUCC")

End Sub
%>