<% @ Language=VBScript codepage=1255 %> <% Option Explicit %> <% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Guide - Web Wiz Forums '** '** Copyright 2001-2003 Bruce Corkhill All Rights Reserved. '** '** This program is free software; you can modify (at your own risk) any part of it '** under the terms of the License that accompanies this software and use it both '** privately and commercially. '** '** All copyright notices must remain in tacked in the scripts and the '** outputted HTML. '** '** You may use parts of this program in your own private work, but you may NOT '** redistribute, repackage, or sell the whole or any part of this program even '** if it is modified or reverse engineered in whole or in part without express '** permission from the author. '** '** You may not pass the whole or any part of this application off as your own work. '** '** All links to Web Wiz Guide and powered by logo's must remain unchanged and in place '** and must remain visible when the pages are viewed unless permission is first granted '** by the copyright holder. '** '** This program is distributed in the hope that it will be useful, '** but WITHOUT ANY WARRANTY; without even the implied warranty of '** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR ANY OTHER '** WARRANTIES WHETHER EXPRESSED OR IMPLIED. '** '** You should have received a copy of the License along with this program; '** if not, write to:- Web Wiz Guide, PO Box 4982, Bournemouth, BH8 8XP, United Kingdom. '** '** '** No official support is available for this program but you may post support questions at: - '** http://www.webwizguide.info/forum '** '** Support questions are NOT answered by e-mail ever! '** '** For correspondence or non support questions contact: - '** info@webwizguide.info '** '** or at: - '** '** Web Wiz Guide, PO Box 4982, Bournemouth, BH8 8XP, United Kingdom '** '**************************************************************************************** 'Set the response buffer to true as we maybe redirecting Response.Buffer = True 'Declare variables Dim lngTopicID 'Holds the topic ID Dim intForumID 'Holds the forum ID Dim strSubject 'Holds the new subject Dim lngOldTopicID 'Holds the old topic ID number Dim lngPostID 'Holds the post ID Dim strPostDateTime 'Holds the date of the post 'If the user is user is using a banned IP redirect to an error page If bannedIP() Then 'Clean up Set rsCommon = Nothing adoCon.Close Set adoCon = Nothing 'Redirect Response.Redirect("insufficient_permission.asp?M=IP") End If 'Read in the post ID lngPostID = CLng(Request.Form("PID")) 'Query the datbase to get the forum ID for this post strSQL = "SELECT " & strDbTable & "Topic.Forum_ID, " & strDbTable & "Topic.Topic_ID, " & strDbTable & "Thread.Message_date " strSQL = strSQL & "FROM " & strDbTable & "Topic, " & strDbTable & "Thread " strSQL = strSQL & "WHERE " & strDbTable & "Topic.Topic_ID = " & strDbTable & "Thread.Topic_ID AND " & strDbTable & "Thread.Thread_ID = " & lngPostID & ";" 'Query the database rsCommon.Open strSQL, adoCon 'If there is a record returened read in the forum ID If NOT rsCommon.EOF Then intForumID = CInt(rsCommon("Forum_ID")) lngOldTopicID = CLng(rsCommon("Topic_ID")) strPostDateTime = CDate(rsCommon("Message_date")) End If 'Clean up rsCommon.Close 'Call the moderator function and see if the user is a moderator If blnAdmin = False Then blnModerator = isModerator(intForumID, intGroupID) 'If the person is not a moderator or admin then send them away If blnAdmin = False AND blnModerator = False Then 'Reset Server Objects Set rsCommon = Nothing adoCon.Close Set adoCon = Nothing 'Redirect Response.Redirect("default.asp") 'The person is an admin of modertor so move the post Else 'Read in the forum details lngTopicID = CLng(Request.Form("topicSelect")) intForumID = CInt(Request.Form("toFID")) strSubject = Request.Form("subject") 'If a new subject has been entered then place it into the database If strSubject <> "" Then 'Get rid of scripting tags in the subject strSubject = removeAllTags(strSubject) strSubject = formatInput(strSubject) 'Initalise the SQL string with a query to get the Topic details strSQL = "SELECT TOP 1 " & strDbTable & "Topic.* FROM " & strDbTable & "Topic " strSQL = strSQL & "WHERE Forum_ID =" & intForumID & " " strSQL = strSQL & "ORDER By " & strDbTable & "Topic.Topic_ID DESC;" With rsCommon 'Set the cursor type property of the record set to Dynamic so we can navigate through the record set .CursorType = 2 'Set the Lock Type for the records so that the record set is only locked when it is updated .LockType = 3 'Open the topic table .Open strSQL, adoCon 'Insert the new topic details in the recordset .AddNew .Fields("Forum_ID") = intForumID .Fields("Subject") = strSubject .Fields("Start_date") = strPostDateTime .Fields("Last_entry_date") = strPostDateTime .Fields("Poll_ID") = 0 .Fields("Priority") = 0 'Update the database with the new topic details .Update 'Re-run the Query once the database has been updated .Requery 'Move to the last record in the recordset to get the new topic's ID number .MoveLast 'Read in the new topic's ID number lngTopicID = CLng(rsCommon("Topic_ID")) 'Clean up .Close End With End If 'Move the post to another topic use ADO otherwise access is to slow strSQL = "SELECT " & strDbTable & "Thread.Topic_ID FROM " & strDbTable & "Thread WHERE Thread_ID =" & lngPostID & ";" With rsCommon 'Set the cursor type property of the record set to Dynamic so we can navigate through the record set .CursorType = 2 'Set the Lock Type for the records so that the record set is only locked when it is updated .LockType = 3 'Open the thread table .Open strSQL, adoCon 'If the record is returned update the topic ID If NOT .EOF Then .Fields("Topic_ID") = lngTopicID End If 'Update the database .Update 'Requery the db for slow old access .Requery 'Clean up .Close 'Check there are still topics in the old topic strSQL = "SELECT TOP 1 " & strDbTable & "Thread.Thread_ID FROM " & strDbTable & "Thread WHERE Topic_ID =" & lngOldTopicID & ";" 'Open the thread table .Open strSQL, adoCon 'See if there is a topic left in the old topic If .EOF Then 'If there are no topics left then delete the old topic strSQL = "DELETE FROM " & strDbTable & "Topic WHERE Topic_ID=" & lngOldTopicID & ";" 'Write to database adoCon.Execute(strSQL) End If 'Close the recordset .Close End With End If 'Reset main server variables Set rsCommon = Nothing adoCon.Close Set adoCon = Nothing %>