%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%option explicit%>
<%
'****************************************************
' Software name:Kesion CMS 8.0
' Email: service@kesion.com . QQ:111394,9537636
' Web: http://www.kesion.com http://www.kesion.cn
' Copyright (C) Kesion Network All Rights Reserved.
'****************************************************
Dim KSCls
Set KSCls = New DefineForm
KSCls.Kesion()
Set KSCls = Nothing
Class DefineForm
Private KS,F_Str,ID,TableName,Step,PostByStep,StepNum,ToUserEmail,Template,FormName,Temp
Private Title,TimeLimit,StartDate,ExpiredDate,AllowGroupID,status,useronce,onlyuser,ShowNum
Private Sub Class_Initialize()
Set KS=New PublicCls
End Sub
Private Sub Class_Terminate()
Call CloseConn()
Set KS=Nothing
End Sub
Sub Kesion()
dim Action,RS
Action = KS.S("Action")
ID = KS.ChkCLng(KS.S("ID"))
Step = KS.ChkCLng(KS.S("Step"))
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "select top 1 * from ks_form where id=" & id,conn,1,1
if not rs.eof then
FormName = rs("FormName")
status = rs("status")
TableName = rs("TableName")
title = rs("formname")
TimeLimit = rs("TimeLimit")
StartDate = rs("StartDate")
ExpiredDate = rs("ExpiredDate")
AllowGroupID= rs("AllowGroupID")
UserOnce = rs("UserOnce")
OnlyUser = rs("OnlyUser")
ShowNum = rs("ShowNum")
PostByStep = rs("PostByStep")
StepNum = rs("StepNum")
ToUserEmail = rs("ToUserEmail")
IF Action="Save" Then
Call LoadSave()
Else
Temp=RS("Template")
If KS.IsNul(Temp) Then Temp=" "
Template=Split(Temp,"$aaa$")(step)
If Step>0 and PostByStep=1 Then
Call CollectHiddenFiled()
End If
F_Str=Template
End IF
else
F_Str= "无效表单!"
end if
rs.Close():Set RS = Nothing
If PostByStep=0 and conn.execute("select top 1 FieldType From KS_FormField Where ItemID=" &ID & " And (FieldType=11 or FieldType=10)").eof Then
F_Str=Replace(Replace(F_Str,"'","\'"),"""","\""")
F_Str=ReplaceJsBr(F_Str)
Else
%>
自定义表单
<%
End If
response.write F_Str
If PostByStep=1 Then
%>
<%
End If
End Sub
'收集用户提交并隐藏字段继续提交
Sub CollectHiddenFiled()
Dim HiddenFields,SQL,K,RS
Set RS=conn.execute("select FieldName,title,MustFillTF,FieldType,ShowUnit from ks_formfield where itemid=" & id & " and ShowOnForm=1 and Step<=" & Step & " order by orderid")
If Not RS.Eof Then SQL=RS.GetRows(-1)
RS.Close:Set RS=Nothing
If IsArray(SQL) Then
For K=0 To Ubound(SQL,2)
if sql(2,k)=1 and KS.S(sql(0,k))="" then call KS.AlertHistory(sql(1,k) & "必须填写!",-1):exit sub
select case sql(3,k)
case 8
If Not KS.IsValidEmail(KS.S(sql(0,k))) Then Call KS.AlertHistory("Email格式不正确!",-1):Exit Sub
case 4
If Not isnumeric(KS.S(sql(0,k))) Then Call KS.AlertHistory("数字格式不正确!",-1):Exit Sub
case 5
If Not ISDate(KS.S(sql(0,k))) Then Call KS.AlertHistory(sql(1,k) &"格式不正确!",-1):Exit Sub
end select
Next
for k=0 to ubound(sql,2)
HiddenFields=HiddenFields & "" & vbcrlf
If SQL(4,K)="1" Then
HiddenFields=HiddenFields & "" & vbcrlf
End If
next
End If
Template=Replace(Template,"{$HiddenFields}",HiddenFields)
End Sub
Sub LoadSave()
Dim KSUser:Set KSUser=New UserCls
Dim LoginTf:LoginTF=KSUser.UserLoginChecked
if status=0 then call KS.AlertHistory("对不起,该表单已锁定!",-1):exit sub
if TimeLimit=1 then
if nowExpiredDate then call KS.AlertHistory("对不起,该表单已在" & expireddate & "过期!",-1):exit sub
end if
If (PostByStep=1 And Step=StepNum) Or PostByStep=0 Then
IF Trim(KS.S("Verifycode"))="" And Shownum=1 then Set KSUser=Nothing:call KS.AlertHistory("验证码必须输入!",-1):exit sub
IF lcase(Trim(KS.S("Verifycode")))<>lcase(Trim(Session("Verifycode"))) And Shownum=1 then Set KSUser=Nothing:call KS.AlertHistory("验证码不正确!",-1):exit sub
End If
IF onlyuser=1 and Cbool(LoginTf)=false Then Set KSUser=Nothing:call KS.AlertHistory("对不起,该表单需要登录后才能提交!",-1):exit sub
if AllowGroupID<>"" then
if KS.FoundInArr(AllowGroupID,KSUser.groupid,",")=false then Set KSUser=Nothing:call KS.AlertHistory("对不起,你所在的用户组不能参与该表单的提交!",-1):exit sub
end if
if useronce=1 then
if not conn.execute("select username from " & TableName & " where username='" & ksuser.username &"'").eof then
call KS.AlertHistory("对不起,你已提交过,该表单只允许一个会员提交一次!",-1):exit sub
end if
end if
Dim S_Content,sql,k,email,ReturnInfo,UpFiles
Dim rs:set rs=conn.execute("select FieldName,title,MustFillTF,FieldType,ShowUnit from ks_formfield where itemid=" & id & " and ShowOnForm=1 order by orderid")
if rs.eof then rs.close:set rs=nothing:call KS.AlertHistory("参数提交出错!",-1):exit sub
sql=rs.getrows(-1):rs.close
s_content="
" & vbcrlf
for k=0 to ubound(sql,2)
if sql(2,k)=1 and KS.S(sql(0,k))="" then call KS.AlertHistory(sql(1,k) & "必须填写!",-1):exit sub
select case sql(3,k)
case 8
If Not KS.IsValidEmail(KS.S(sql(0,k))) Then Call KS.AlertHistory("Email格式不正确!",-1):Exit Sub
email=KS.S(sql(0,k))
case 4
If Not isnumeric(KS.S(sql(0,k))) Then Call KS.AlertHistory("数字格式不正确!",-1):Exit Sub
case 5
If Not ISDate(KS.S(sql(0,k))) Then Call KS.AlertHistory(sql(1,k) &"格式不正确!",-1):Exit Sub
end select
s_content=s_content &"
" & vbcrlf
s_content=s_content & "
" & sql(1,k) & ":
" & vbcrlf
s_content=s_content & "
"
If sql(3,k)=10 Then
s_content=s_content & KS.ClearBadChr(Request.Form(sql(0,k)))
Elseif sql(3,k)=9 Then
s_content=s_content & "点击浏览"
Else
s_content=s_content & KS.S(sql(0,k))
End If
s_content=s_content & "
" & vbcrlf
s_content=s_content & "
" & vbcrlf
next
s_content=s_content &"
"
rs.open "select * from " & TableName & " where 1=0",conn,1,3
rs.addnew
rs("userip")=ks.getip
rs("adddate")=now
rs("username")=KSUser.UserName
rs("status")=0
for k=0 to ubound(sql,2)
If sql(3,k)=10 Then
rs(trim(sql(0,k)))=KS.ClearBadChr(Request.Form(sql(0,k)))
UpFiles=UpFiles&KS.S(trim(sql(0,k)))
Elseif sql(3,k)=9 Then
rs(trim(sql(0,k)))="点击浏览"
UpFiles=UpFiles&KS.S(trim(sql(0,k)))
Else
rs(trim(sql(0,k)))=KS.ClearBadChr(KS.S(trim(sql(0,k))))
End If
If KS.ChkClng(SQL(4,K))="1" Then
rs(trim(sql(0,k))&"_unit")=KS.ClearBadChr(Request.Form(trim(sql(0,k))&"_unit"))
End If
next
rs.update
rs.movelast
Call KS.FileAssociation(1016,RS("ID"),UpFiles,1)
rs.close
set rs=nothing
If ToUserEmail="1" Then
s_content="尊敬的用户,您好! 以下是您在" &KS.Setting(0) & "提交[" & FormName & "]的信息: " & s_content
ReturnInfo=KS.SendMail(KS.Setting(12), KS.Setting(13), KS.Setting(14), "用户提交[" & FormName & "]的信息", KS.Setting(11),KS.Setting(0), s_content,KS.Setting(11))
If Email="" Then Email=KSUser.GetUserInfo("Email")
If Email<>"" Then
ReturnInfo=KS.SendMail(KS.Setting(12), KS.Setting(13), KS.Setting(14), "您在" & KS.Setting(0) & "提交[" & FormName & "]的信息", Email,KS.Setting(0), s_content,KS.Setting(11))
If ReturnInfo="OK" Then
ReturnInfo="已将提交结果发送到您的邮箱" & Email & "!"
Else
ReturnInfo=""
End If
End If
End If
Set KSUser=Nothing
If PostByStep=1 Then
response.write ""
Else
response.write ""
End If
End Sub
Function ReplaceJsBr(Content)
Dim i
Dim JsArr:JSArr=Split(Content,Chr(13) & Chr(10))
For I=0 To Ubound(JsArr)
ReplaceJsBr=ReplaceJsBr & "document.writeln('" & JsArr(I) &"')" & vbcrlf
Next
End Function
End Class
%>