www.gusucode.com > CC校友录贴吧 CCBar源码程序asp编程 > forum/forum_add_save.asp
<% '=================================================================== '= ASP FILENAME : /forum/form_add_save.asp '= CREATED TIME : 2006-6-24 '= LAST MODIFIED: 2006-6-24 '= 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 = "../main_func.asp" --> <!-- #include file = "./forum_inc.asp" --> <!-- #include file = "./forum_func.asp" --> <% '======================================================== '== Action参数设置 '======================================================== '== 页面名 Const CONST_PAGE_FILE = "user/form_add_save.asp" '== 页面标题/功能 Const CONST_PAGE_TITLE = "发表新贴" '== 功能函数名字空间 Const CONST_ACTION_FUNC = "FormSaveAddTopicsCtl" '== 相对根目录路径 GBL_strHomeURL = "../" '== 页面构造 Call ActionBuild() '== 请求校验与过滤 Call ActionFilter(CONST_PAGE_FILE,CONST_ACTION_FUNC) '== 页面析构 Call ActionOver() %> <% '=================================================================== '= Sub : FormSaveAddTopicsCtl() '= Time : Created At 2006-6-24 '= Input : Non '= Table : INSERT INTO CLASS_TOPICS '= Description : 发表新贴 '=================================================================== Sub FormSaveAddTopicsCtl() Dim strTitle,strContent,strFace,strUserIp '== Get form data Dim strAddInfo '== checked data's clew Dim intErrId Dim strHtmlCode,strSuccUrl intErrId = 0 If Trim(Request.QueryString("action")) = "FormSaveAddReply" Then Call FormSaveAddReply() Exit Sub End If Dim strActFlag : strActFlag = Trim(Request.QueryString("pstActFlag")) If strActFlag <> "" And strActFlag <> "FORUM_EDIT_MODE" Then Call ResultExecute(E_USER_PUB,"贴子编辑模式不正确","ES_ERR") Exit Sub End If Dim ForumId : ForumId = Trim(Request.Form("hidForumId")) strAddInfo = "贴吧栏目" intErrId = DataCheck("DT_ID",ForumId,strAddInfo,"ES_ERR") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") Dim intForumSubject : intForumSubject = Trim(Request.Form("selForumSubject")) If Not IsNumeric(intForumSubject) Then intForumSubject = 0 End If Call CheckMasterForum(ForumId) '== edit mode If strActFlag = "FORUM_EDIT_MODE" Then Dim GetRSId : GetRSId = Trim(Request.QueryString("TopicsId")) strAddInfo = "该要编辑的帖子" intErrId = DataCheck("DT_ID",GetRSId,strAddInfo,"") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") End If '== Check title of forum strTitle = Trim(Request.Form("iptTitle")) strAddInfo = "帖子主题" intErrId = DataCheck("DT_FIX_LENGTH",strTitle,strAddInfo,"1|DTC_LESS_MORE_LEN|100|") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") '== Check smile face strFace = Trim(Request.Form("rdoFace")) strAddInfo = "发贴心情图标文件名" intErrId = DataCheck("DT_FIX_LENGTH",strFace,strAddInfo,"1|DTC_LESS_MORE_LEN|15|") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") If Ucase(Right(strFace,4)) <> ".GIF" Then Call ResultExecute(E_USER_PUB,"发贴心情图标文件名","ES_ERR") End If '== Check contents strContent = Trim(Request.Form("txtContent")) strAddInfo = "帖子内容" intErrId = DataCheck("DT_FIX_LENGTH",strContent,strAddInfo,"5|DTC_LESS_MORE_LEN|10000|") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_TOPICS" If strActFlag = "FORUM_EDIT_MODE" Then GBL_objPubDB.SQLType = "UPDATE" If GBL_strUserAuthen = 1 Or GetMaster(ForumId) Then GBL_objPubDB.Where = "TOPICS_ID=" & GetRSId Else GBL_objPubDB.Where = "TOPICS_ID=" & GetRSId & " AND TOPICS_OWNER_ID=" & GBL_intUserId End If Else GBL_objPubDB.SQLType = "INSERT" End If GBL_objPubDB.AddField "TOPICS_TITLE",strTitle GBL_objPubDB.AddField "TOPICS_CONTENT",htmlencode2(strContent) GBL_objPubDB.AddField "TOPICS_FACE",strFace If strActFlag <> "FORUM_EDIT_MODE" Then GBL_objPubDB.AddField "TOPICS_FORUM_ID",ForumId GBL_objPubDB.AddField "TOPICS_DATE",NOW() GBL_objPubDB.AddField "TOPICS_LAST_POST",NOW() End If If strActFlag <> "FORUM_EDIT_MODE" Then GBL_objPubDB.AddField "TOPICS_OWNER",GBL_strUserRealName GBL_objPubDB.AddField "TOPICS_OWNER_ID",GBL_intUserId GBL_objPubDB.AddField "TOPICS_LAST_POSTER","--------" End If GBL_objPubDB.AddField "TOPICS_LAST_EDIT",Now() GBL_objPubDB.AddField "TOPICS_SUBJECT",intForumSubject '== insert class_topics a new topics record GBL_objPubDB.SQLRSExecute() Call ResultExecute(GBL_objPubDB.intErrNum,"","ES_ERR") '== update the forum's topics Call RecordCounter("CLASS_FORUM","FORUM_TOPICS",1,"AND FORUM_ID=" & ForumId) If strActFlag <> "FORUM_EDIT_MODE" Then '== update _FORUM GBL_objPubDB.Clear() GBL_objPubDB.ALlSQL = "UPDATE CLASS_FORUM SET FORUM_LAST_TOPICS='" & strTitle & "',FORUM_LAST_POST='" & Now() & "' WHERE FORUM_ID=" & ForumId GBL_objPubDB.SQLExecute() Call ResultExecute(GBL_objPubDB.intErrNum,"up forum after add topics","ES_ERR") '== Update user topics number Call RecordCounter("CLASS_USER","USER_TOPICS",1,"AND USER_ID=" & GBL_intUserId) '== Update user level Call UpdateLevel(GBL_intTopicsLevel) strHtmlCode = "发表帖子成功" strSuccUrl = "forum/forum_list.asp?action=ShowForumList&ForumId=" & ForumId Call SuccExecute(strHtmlCode,strSuccUrl) Call ResultExecute(1101,ForumId,"ES_SUCC") Else strHtmlCode = "修改帖子成功" strSuccUrl = "forum/forum_show.asp?action=ShowForumContent&TopicsId=" & GetRSId & "&ForumId=" & ForumId Call SuccExecute(strHtmlCode,strSuccUrl) End If End Sub '=================================================================== '= Sub : FormSaveAddReply() '= Time : Created At 2006-6-24 '= Input : None '= Table : INSERT INTO CLASS_REPLY '= Description : Save forum reply '=================================================================== Sub FormSaveAddReply() Dim strTitle,strContent,strFace,strUserIp '== Get form data Dim strAddInfo '== checked data's clew Dim intErrId Dim GetRS Dim strHtmlCode,strSuccUrl intErrId = 0 '== check edit mode Dim strActFlag strActFlag = Trim(Request.QueryString("pstActFlag")) If strActFlag <> "" And strActFlag <> "FORUM_EDIT_MODE" Then Call ResultExecute(E_USER_PUB,"贴子回复编辑模式不正确","ES_ERR") Exit Sub End If '== check forum id Dim ForumId : ForumId = Trim(Request.Form("hidForumId")) If Not IsNumeric(ForumId) Then Call ResultExecute(E_USER_PUB,"贴吧forum id错误" & ForumId,"ES_ERR") Exit Sub End If Call CheckMasterForum(ForumId) '== edit mode If strActFlag = "FORUM_EDIT_MODE" Then Dim GetRSId1 GetRSId1 = Trim(Request.QueryString("ReplyId")) strAddInfo = "该要编辑的帖子" intErrId = DataCheck("DT_ID",GetRSId1,strAddInfo,"") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") End If '== check topics id Dim GetRSId : GetRSId = Trim(Request.QueryString("TopicsId")) strAddInfo = "需回复帖子" intErrId = DataCheck("DT_ID",GetRSId,strAddInfo,"") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") '== Check smile face strFace = Trim(Request.Form("rdoFace")) strAddInfo = "发贴心情图标文件名" intErrId = DataCheck("DT_FIX_LENGTH",strFace,strAddInfo,"1|DTC_LESS_MORE_LEN|15|") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") If Ucase(Right(strFace,4)) <> ".GIF" Then Call ResultExecute(E_USER_PUB,"发贴心情图标文件名","ES_ERR") End If '== Check re title strTitle = Trim(Request.Form("iptReTitle")) strAddInfo = "回复贴主题" intErrId = DataCheck("DT_FIX_LENGTH",strTitle,strAddInfo,"1|DTC_LESS_MORE_LEN|100|") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") '== Check contents strContent = Trim(Request.Form("txtContent")) strAddInfo = "回复内容" intErrId = DataCheck("DT_FIX_LENGTH",strContent,strAddInfo,"5|DTC_LESS_MORE_LEN|10000|") Call ResultExecute(intErrId,strAddInfo,"ES_ERR") GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_REPLY" If strActFlag = "FORUM_EDIT_MODE" Then GBL_objPubDB.SQLType = "UPDATE" If GBL_strUserAuthen = 1 Or GetMaster(ForumId) Then GBL_objPubDB.Where = "REPLY_ID=" & GetRSId1 Else GBL_objPubDB.Where = "REPLY_ID=" & GetRSId1 & " AND REPLY_OWNER_ID=" & GBL_intUserId End If Else GBL_objPubDB.SQLType = "INSERT" End If GBL_objPubDB.AddField "REPLY_CONTENT",htmlencode(strContent) If strActFlag <> "FORUM_EDIT_MODE" Then GBL_objPubDB.AddField "REPLY_OWNER",GBL_strUserRealName GBL_objPubDB.AddField "REPLY_OWNER_ID",GBL_intUserId GBL_objPubDB.AddField "REPLY_FORUM_ID",ForumId GBL_objPubDB.AddField "REPLY_DATE",NOW() End If GBL_objPubDB.AddField "REPLY_TOPICS_ID",GetRSId GBL_objPubDB.AddField "REPLY_LAST_POST",Now() GBL_objPubDB.AddField "REPLY_FACE",strFace GBL_objPubDB.AddField "REPLY_TITLE",strTitle '== insert class_reply a new reply record GBL_objPubDB.SQLExecute() Call ResultExecute(GBL_objPubDB.intErrNum,"","ES_ERR") If strActFlag = "FORUM_EDIT_MODE" Then strHtmlCode = "修改回复成功" strSuccUrl = "forum/forum_show.asp?action=ShowForumContent&TopicsId=" & GetRSId & "&ForumId=" & ForumId Call SuccExecute(strHtmlCode,strSuccUrl) Else '== update replies Call RecordCounter("CLASS_TOPICS","TOPICS_REPLIES",1,"AND TOPICS_ID=" & GetRSId) '== update _TOPICS GBL_objPubDB.Clear() GBL_objPubDB.AllSQL = "UPDATE CLASS_TOPICS SET TOPICS_LAST_POSTER='" & GBL_strUserRealName & "',TOPICS_LAST_POSTER_ID='" & GBL_intUserId & "',TOPICS_LAST_POST='" & Now() & "' WHERE TOPICS_ID=" & GetRSId GBL_objPubDB.SQLExecute() Call ResultExecute(GBL_objPubDB.intErrNum,"up topics after add reply","ES_ERR") '== update _FORUM GBL_objPubDB.Clear() GBL_objPubDB.ALlSQL = "UPDATE CLASS_FORUM SET FORUM_LAST_REPLY='" & strTitle & "',FORUM_LAST_POST='" & Now() & "' WHERE FORUM_ID=" & ForumId GBL_objPubDB.SQLExecute() Call ResultExecute(GBL_objPubDB.intErrNum,"up forum after add reply","ES_ERR") '== Update user reply number Call RecordCounter("CLASS_USER","USER_REPLY",1,"AND USER_ID=" & GBL_intUserId) '== Update user level Call UpdateLevel(GBL_intReplyLevel) '== 成功处理 strHtmlCode = "回复成功" strSuccUrl = "forum/forum_show.asp?action=ShowForumContent&TopicsId=" & GetRSId & "&ForumId=" & ForumId Call SuccExecute(strHtmlCode,strSuccUrl) End If End Sub '=================================================================== '= Function : GetMaster(intForumId) '= Time : Created At 2006-6-24 '= Input : '= Table : Qurey CLASS_FORUM,CLASS_USER '= Description : get user master of forum '=================================================================== Function GetMaster(intForumId) Dim strTmp,i strTmp = Trim(GetConfig(Application(GBL_strCookieURL & "FORUM_MASTER"),"Forum" & intForumId)) If strTmp <> "" Then strTmp = Split(strTmp,"|") For i = Lbound(strTmp) To Ubound(strTmp) If Trim(strTmp(i)) = GBL_strUserAccount Then GetMaster = True Exit Function End If Next End If GetMaster = False End Function %>