%
ProcessForumPage True
%>
<%
'== BEGIN MAIN =================================================================
Sub Main()
' Message parameters
Dim iForumId, iThreadId, iThreadParent, iThreadLevel
Dim sSubject, sMessage, bNotify
Dim sName, sEmail ' User Info from Cookies
Dim iNewMessageId ' Id of the message we're adding
Select Case Request.QueryString("action")
Case "save"
' Retrieve parameters
iForumId = Request.Form("forum_id")
iThreadId = Request.Form("thread_id")
iThreadParent = Request.Form("thread_parent")
iThreadLevel = Request.Form("thread_level")
sName = Request.Form("name")
sEmail = Request.Form("email")
sSubject = Request.Form("subject")
sMessage = Request.Form("message")
bNotify = Request.Form("notify")
If bNotify = "yes" Then
bNotify = True
Else
bNotify = False
End If
' Validate Input
If InputIsValid("save", iForumId, iThreadId, iThreadParent, iThreadLevel, sName, sSubject, sMessage) Then
' Insert the New Message
iNewMessageId = InsertRecord(iForumId, iThreadId, iThreadParent, iThreadLevel, sName, sEmail, bNotify, sSubject, sMessage)
' Show The Thanks Page
ShowThanks iNewMessageId, iThreadParent, iForumId, sName, sEmail
' Send Email Notification
SendEmailNotification iNewMessageId, iThreadId, sEmail
Else
ShowForm iForumId, iThreadId, iThreadParent, iThreadLevel, sName, sEmail, sSubject, sMessage
End If
Case Else
' Retrieve Parameters
iForumId = Request.QueryString("fid")
iThreadId = Request.QueryString("tid")
iThreadParent = Request.QueryString("pid")
iThreadLevel = Request.QueryString("level")
sName = Request.Cookies("name")
sEmail = Request.Cookies("email")
sSubject = Request.QueryString("subject")
'sMessage = Request.Form("message")
If Len(sSubject) <> 0 And Left(sSubject, 3) <> "Re:" Then
If Len(sSubject) > 46 Then ' If Re: won't fit!
sSubject = "Re: " & Left(sSubject, 43) & "..."
Else
sSubject = "Re: " & sSubject
End If
End If
If InputIsValid("post", iForumId, iThreadId, iThreadParent, iThreadLevel, sName, sSubject, sMessage) Then
ShowForm iForumId, iThreadId, iThreadParent, iThreadLevel, sName, sEmail, sSubject, sMessage
Else
' A message should have been displayed by the validation routine so we do nothing!
End If
End Select
End Sub 'Main
'== END MAIN ===================================================================
%>
<%
'== BEGIN SUBS & FUNCTIONS =====================================================
Function InputIsValid(strSituation, iForumId, iThreadId, iThreadParent, iThreadLevel, sName, sSubject, sMessage)
Dim bEverythingIsCool
bEverythingIsCool = True
'Validate info
If IsNumeric(iForumId) Then
If iForumId <> 0 Then
iForumId = CLng(iForumId)
Else
WriteLine "You aren't in an active forum!
"
bEverythingIsCool = False
End If
Else
WriteLine "You aren't in an active forum!
"
bEverythingIsCool = False
End If
If IsNumeric(iThreadId) And IsNumeric(iThreadParent) And IsNumeric(iThreadLevel) Then
iThreadId = CLng(iThreadId)
iThreadParent = CLng(iThreadParent)
If iThreadLevel = 0 Then iThreadLevel = 1
iThreadLevel = CLng(iThreadLevel)
Else
WriteLine "Invalid thread information!
"
bEverythingIsCool = False
End If
' Do our additional checks if we're about to save!
If strSituation = "save" Then
If Len(sName) = 0 Then
WriteLine "Name can't be empty!
"
bEverythingIsCool = False
End If
If Len(sSubject) = 0 Then
WriteLine "Subject can't be empty!
"
bEverythingIsCool = False
End If
If Len(sMessage) = 0 Then
WriteLine "Message can't be empty!
"
bEverythingIsCool = False
End If
End If
InputIsValid = bEverythingIsCool
End Function ' InputIsValid
Sub ShowForm(forum_id, thread_id, thread_parent, thread_level, name, email, subject, message)
%>