<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% DIM CONF_strDbName, CONF_strDbId, CONF_strDbPass, CONF_strDbIp, CONF_strDbPort, CONF_strSiteUrl, CONF_strBbsUrl DIM CONF_strLangType, CONF_strUseSSL, CONF_intHttpPort, CONF_intHttpsPort, CONF_strFilePath, CONF_strUploadComponet DIM CONF_strAdminPath CONF_strDbName = "SM_Gvp" CONF_strDbId = "sm_gvp" CONF_strDbPass = "jo1741*" CONF_strDbIp = "134.75.217.82" CONF_strDbPort = "1433" CONF_strSiteUrl = "http://gvp.sunmoon.ac.kr/" CONF_strBbsUrl = "http://gvp.sunmoon.ac.kr/bbs/" CONF_strAdminPath = "admin" CONF_strUploadComponet = "dext" CONF_strLangType = "ko" CONF_strUseSSL = "none" CONF_intHttpPort = "80" CONF_intHttpsPort = "443" CONF_strFilePath = "pds" %> <% DIM db_connect, DbCon db_connect = "Provider=SQLOLEDB.1;Password=" & CONF_strDbPass & ";Persist Security Info=False;User ID=" & CONF_strDbId & ";Initial Catalog=" & CONF_strDbName & ";Data Source=" & CONF_strDbIp & "," & CONF_strDbPort & "; Network Library=DBMSSOCN" SET DbCon = Server.CreateObject("ADODB.Connection") DbCon.Open db_connect %> <% ' *************************************************************************************** ' * 함수설명 : 자바스크립트 ALERT MSG * ' * 변수설명 : strMsg = 출력 메시지 * ' * act = 메시지 출력 후 액션 : clase : 창닫기, etc : 뒤로 * ' *************************************************************************************** FUNCTION ActJsAlertMsg(strMsg, act, url) DIM str str = "" & CHR(10) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 자바스크립트 FORM값 넘기기 * ' * 변수설명 : strMsg = 출력 메시지 * ' * url = 이동할 URL * ' * FormType = GET OR POST (폼 전송방식) * ' * FormsName = FORM ID 및 이름 (배열은 $$$로 구분) * ' * FormsValue = FORM 값 (배열은 $$$로 구분) * ' *************************************************************************************** FUNCTION ActFormSubmit(strMsg, url, FormType, FormsName, FormsValue) DIM str, tmpFor str = "
" & CHR(10) FormsName = SPLIT(FormsName, "$$$") FormsValue = SPLIT(FormsValue, "$$$") FOR tmpFor = 0 TO UBOUND(FormsName) str = str & "" & CHR(10) NEXT str = str & "
" & CHR(10) str = str & "" & CHR(10) ActFormSubmit = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : 공백제거 및 작은 쉼표 SQL 저장값으로 변경 * ' * 변수설명 : strValue = 입력값 * ' * strType = 변환구분 (S : 작은따옴표 삭제) * ' *************************************************************************************** FUNCTION GetInputReplce(strValue, strType) DIM str IF strValue <> "" AND ISNULL(strValue) = False THEN str = GetReplaceInjection(LTRIM(RTRIM(strValue)), strType) ELSE str = strValue END IF GetInputReplce = str END FUNCTION Public Function eregi_replace(ByVal pattern, ByVal replacestr, ByVal text) Dim eregObj Set eregObj = New RegExp eregObj.Pattern = pattern eregObj.IgnoreCase = True eregObj.Global = True eregi_replace = eregObj.Replace(text, replacestr) Set eregObj = NOTHING End Function Function GetReplaceInjection(str, strType) str = REPLACE( str, "\", "") str = REPLACE( str, "|", "l") IF strType = "S" THEN str = REPLACE(str, "'", "") ELSE str = REPLACE(str, "'", "''") str = REPLACE( str, "--", "" ) str = eregi_replace("]*)>","",str) str = eregi_replace("(.*)","",str) str = eregi_replace("<[/]*(body|html|head|meta|form|input|select|textarea|base)[^>]*>","",str) str = eregi_replace("<(|iframe|script|title|link)(.*)","",str) str = eregi_replace("<[/]*(script|style|title|xmp|iframe)>","",str) str = eregi_replace("([a-z0-9]*script:)","",str) str = eregi_replace("(\n*[\n])",vblf,str) GetReplaceInjection = str End Function ' *************************************************************************************** ' * 함수설명 : SELECT BOX 생성 * ' * 변수설명 : optName : SELECT 텍스트 (,로 분류) * ' * optVal : SELECT 값 (,로 분류) * ' * arrType : 0 = ,로 구분된 타입, 1 = 엔터로 구분된 타입 * ' * selectVal : 선택 값 (selected) * ' *************************************************************************************** FUNCTION GetMakeSelectForm(optItem, arrType, selectVal, selectValType) DIM str, tmpArrName, tmpArrVal, tmpFor optItem = SPLIT(optItem, "$$$") tmpArrName = SPLIT(optItem(1), arrType) tmpArrVal = SPLIT(optItem(0), arrType) FOR tmpFor = 0 TO UBOUND(tmpArrName) IF UBOUND(tmpArrVal) < 0 THEN str = str & "" & CHR(13) NEXT GetMakeSelectForm = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : RADIO BUTTON 생성 * ' * 변수설명 : optName : SELECT 텍스트 (,로 분류) * ' * optVal : SELECT 값 (,로 분류) * ' * arrType : 0 = ,로 구분된 타입, 1 = 엔터로 구분된 타입 * ' * selectVal : 선택 값 (checked) * ' * formName : 폼 이름 * ' * firstTag : 추가 태그 (앞) * ' * endTag : 폼 이름 (뒤) * ' *************************************************************************************** FUNCTION GetMakeRadioForm(optItem, arrType, selectVal, formName, firstTag, endTag) DIM str, tmpArrName, tmpArrVal, tmpFor optItem = SPLIT(optItem, "$$$") tmpArrName = SPLIT(optItem(1), arrType) tmpArrVal = SPLIT(optItem(0), arrType) FOR tmpFor = 0 TO UBOUND(tmpArrName) IF firstTag <> "" THEN str = str & firstTag str = str & "" & CHR(10) str = str & "" IF endTag <> "" THEN str = str & endTag str = str & CHR(13) NEXT GetMakeRadioForm = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : CHECKBOX 생성 * ' * 변수설명 : optName : SELECT 텍스트 (,로 분류) * ' * optVal : SELECT 값 (,로 분류) * ' * arrType : 0 = ,로 구분된 타입, 1 = 엔터로 구분된 타입 * ' * selectVal : 선택 값 (checked) * ' * formName : 폼 이름 * ' * firstTag : 추가 태그 (앞) * ' * endTag : 폼 이름 (뒤) * ' *************************************************************************************** FUNCTION GetMakeCheckForm(optItem, arrType, selectVal, formName, firstTag, endTag) DIM str, tmpArrName, tmpArrVal, tmpFor optItem = SPLIT(optItem, "$$$") tmpArrName = SPLIT(optItem(1), arrType) tmpArrVal = SPLIT(optItem(0), arrType) FOR tmpFor = 0 TO UBOUND(tmpArrName) IF firstTag <> "" THEN str = str & firstTag str = str & " 0) THEN str = str & " checked" str = str & ">" IF endTag <> "" THEN str = str & endTag str = str & CHR(13) NEXT GetMakeCheckForm = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : 옵션 선택값 반환 * ' * 변수설명 : optName : 배열 텍스트 (,로 분류) * ' * optVal : 배열 값 (,로 분류) * ' * selectVal : 선택값 (저장값) * ' *************************************************************************************** FUNCTION GetOptionArrText(optItem, selectVal) DIM tmpArrName, tmpArrVal, tmpFor, str optItem = SPLIT(optItem, "$$$") tmpArrName = SPLIT(optItem(1), ",") tmpArrVal = SPLIT(optItem(0), ",") FOR tmpFor = 0 TO UBOUND(tmpArrName) IF tmpArrVal(tmpFor) = selectVal THEN str = tmpArrName(tmpFor) EXIT FOR END IF NEXT GetOptionArrText = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : True, False 숫자로 변환하는 함수 * ' * 변수설명 : text : True, False 값 * ' *************************************************************************************** FUNCTION GetBitTypeNumberChg(text) IF text = True THEN GetBitTypeNumberChg = "1" ELSE GetBitTypeNumberChg = "0" END FUNCTION ' *************************************************************************************** ' * 함수설명 : 숫자 타입을 BIT 타입으로 함수 * ' * 변수설명 : num : 0, 1 값 * ' *************************************************************************************** FUNCTION GetNumberTypeBitChg(num) IF num = 1 THEN GetNumberTypeBitChg = True ELSE GetNumberTypeBitChg = False END FUNCTION ' *************************************************************************************** ' * 함수설명 : 페이징 HTML 생성함수 * ' * 변수설명 : intPage : 현재 페이지 값 * ' * intPageSize : 페이지 크기 * ' * prevText : 이전 TEXT (언어별) * ' * prevText : 다음 TEXT (언어별) * ' * scriptName : 실행될 자바스크립트 함수명 (함수명만 기재) * ' *************************************************************************************** FUNCTION GetPageHTML(intPage, intPageCount, prevText, nextText) DIM intBlockPage, I, rtnHtml intBlockPage = INT((intPage - 1) / 10) * 10 + 1 IF intBlockPage = 1 THEN rtnHtml = "" & prevText & "" ELSE rtnHtml = "" & prevText & "" rtnHtml = rtnHtml & "" i = 1 DO UNTIL i > 10 OR intBlockPage > intPageCount IF INT(intBlockPage) = INT(intPage) THEN rtnHtml = rtnHtml & "" & intBlockPage & "" ELSE rtnHtml = rtnHtml & "" & intBlockPage & "" intBlockPage = intBlockPage + 1 I = I + 1 LOOP rtnHtml = rtnHtml & "" IF intBlockPage > intPageCount THEN rtnHtml = rtnHtml & "" & nextText & "" ELSE rtnHtml = rtnHtml & "" & nextText & "" GetPageHTML = rtnHtml END FUNCTION ' *************************************************************************************** ' * 함수설명 : 현재 경로 반환 * ' * 변수설명 : sPath : 경로 * ' *************************************************************************************** FUNCTION GetNowFolderPath(sPath) IF sPath = "" THEN sPath = "." GetNowFolderPath = SERVER.MAPPATH(sPath) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 폴더 생성 * ' * 변수설명 : strPath = 생성할 폴더 경로 및 폴더명 * ' *************************************************************************************** FUNCTION ActFolderMake(strPath) DIM FSO, fldr SET FSO = CreateObject("Scripting.FileSystemObject") IF NOT(fso.FolderExists(strPath)) THEN SET fldr = fso.CreateFolder(strPath) END IF SET FSO = NOTHING End Function ' *************************************************************************************** ' * 함수설명 : 폴더 리스트 가져오기 * ' * 변수설명 : strPath = 경로 * ' *************************************************************************************** FUNCTION GetFolderList(strPath) DIM FSO, F, F1, rtnList SET FSO = CreateObject("Scripting.FileSystemObject") SET F = FSO.GetFolder(strPath) SET SF = F.SubFolders FOR EACH F1 IN SF IF rtnList <> "" THEN rtnList = rtnList & "," rtnList = rtnList & F1.NAME NEXT GetFolderList = rtnList END FUNCTION ' *************************************************************************************** ' * 함수설명 : 폴더 삭제 함수 * ' * 변수설명 : path : 경로 * ' *************************************************************************************** FUNCTION ActFolderDelete(path) DIM FSO SET FSO = CreateObject("Scripting.FileSystemObject") IF (FSO.FolderExists(path)) THEN FSO.DeleteFolder(path) SET FSO = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일 리스트 출력 함수 * ' * 변수설명 : strPath : 경로 * ' *************************************************************************************** FUNCTION GetFolderFileList(path) DIM FSO, F, F1, S, SF SET FSO = CreateObject("Scripting.FileSystemObject") IF NOT(FSO.FolderExists(path)) THEN SET fldr = fso.CreateFolder(path) SET F = FSO.GetFolder(path) SET SF = F.Files FOR EACH F1 IN SF IF S <> "" THEN S = S & "|" S = S & F1.NAME NEXT GetFolderFileList = S SET FSO = NOTHING : SET F = NOTHING : SET SF = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일존재 유무 체크 * ' * 변수설명 : filename : 전체경로 + 파일명 * ' *************************************************************************************** FUNCTION GetFileExists(filename) DIM FSO SET FSO = Server.CreateObject("scripting.FileSystemObject") IF FSO.FileExists(filename) THEN GetFileExists = True ELSE GetFileExists = False SET FSO = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일삭제 함수 * ' * 변수설명 : strFileName : 삭제할 파일의 경로 및 이름 * ' *************************************************************************************** FUNCTION ActFileDelete(filename) Dim FSO SET FSO = Server.CreateObject("scripting.FileSystemObject") IF FSO.FileExists(filename) THEN FSO.DeleteFile(filename) SET FSO = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 중복파일명 변환 * ' * 변수설명 : strPath = 파일을 저장할 경로 * ' * strFileName = 저장할 파일명 * ' *************************************************************************************** FUNCTION GetChgSameFile(strPath, strFileName) strFileName = REPLACE(strFileName, " ", "_") strFileName = REPLACE(strFileName, "%", "") DIM FSO, strFileNameOnly, strFileExt SET FSO = Server.CreateObject("scripting.FileSystemObject") IF FSO.fileExists(strPath & strFileName) THEN IF InStrRev(strFileName, ".") <> 0 THEN strFileNameOnly = LEFT(strFileName,InstrRev(strFileName, ".")-1) strFileExt = MID(strFileName, InStrRev(strFileName, ".")) ELSE strFileNameOnly = strFileName strFileExt = "" END IF DIM i i = 0 DO WHILE (1) strFileName = strFileNameOnly & "[" & i & "]" & strFileExt IF NOT FSO.fileExists(strPath & strFileName) THEN EXIT DO i = i + 1 LOOP END IF SET FSO = NOTHING GetChgSameFile = strFileName END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일 확장자 반환 * ' * 변수설명 : strFileName = 파일명 * ' *************************************************************************************** FUNCTION GetFileExt(strFileName) strFileName = MID(strFileName, InStrRev(strFileName, ".")) GetFileExt = REPLACE(strFileName, ".", "") END FUNCTION ' *************************************************************************************** ' * 함수설명 : 업로드 파일명 및 파일크기 반환 함수 * ' * 변수설명 : uploadComponet = 업로드 컴포넌트 (ABC, DEXT, TABS) * ' * strFileField = 업로드 폼 SET * ' * rtnType = (name : 파일명, size : 크기) * ' *************************************************************************************** FUNCTION GetUploadFileInfo(uploadComponet, strFileField, rtnType) SELECT CASE LCASE(uploadComponet) CASE "abc" IF LCASE(rtnType) = "name" THEN GetUploadFileInfo = strFileField.SafeFileName ELSE GetUploadFileInfo = strFileField.Length CASE "dext" IF LCASE(rtnType) = "name" THEN GetUploadFileInfo = strFileField.FileName ELSE GetUploadFileInfo = strFileField.FIleLen CASE "tabs" IF LCASE(rtnType) = "name" THEN GetUploadFileInfo = strFileField.FileName ELSE GetUploadFileInfo = strFileField.FileSize END SELECT END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일 저장 함수 * ' * 변수설명 : uploadComponet = 업로드 컴포넌트 (ABC, DEXT, TABS) * ' * strFileField = 파일폼 * ' * intUploadSize = 업로드 제한 사이즈 * ' * strPath = 저장경로 * ' *************************************************************************************** FUNCTION ActFileUpload(uploadComponet, strFileField, intUploadSize, strPath, bitThrum, strThrumOption, bitUseWaterMark, strWaterMarkOption) DIM nowFileSize, nowFileName, FileExe, strSaveFIleName, strFileNameOnly, I, strUploadNotFileTmp nowFileSize = GetUploadFileInfo(uploadComponet, strFileField, "size") nowFileName = GetUploadFileInfo(uploadComponet, strFileField, "name") IF nowFileName = "" OR ISNULL(nowFileName) = True THEN ActFileUpload = False EXIT FUNCTION END IF IF INT(nowFileSize) > INT(intUploadSize) THEN ActFileUpload = False EXIT FUNCTION END IF strSaveFileName = GetChgSameFile(strPath, nowFileName) FileExe = REPLACE(MID(strSaveFileName, INSTRREV(strSaveFileName, ".") + 1), ".", "") strFileNameOnly = REPLACE(LEFT(strSaveFileName, INSTRREV(strSaveFileName, ".") - 1), "'", "") IF LEN(strFileNameOnly) > 60 THEN strFileNameOnly = LEFT(strFileNameOnly, 60) DIM strUploadNotFile strUploadNotFile = SPLIT("php,php3,php4,ph,phtml,asp,js,css,jsp,pl,c,cpp,stb,shtml,shtm,vbs,htm,html", ",") FOR I = 0 TO UBOUND(strUploadNotFile) IF TRIM(strUploadNotFile(I)) <> "" THEN IF UCASE(FileExe) = UCASE(strUploadNotFile(I)) THEN IF UCASE(strUploadNotFile(I)) = UCASE(FileExe) THEN strSaveFIleName = strFileNameOnly & ".txt" EXIT FOR END IF END IF END IF NEXT CALL ActFolderMake(strPath) strSaveFIleName = REPLACE(strSaveFIleName, "'", "_") SELECT CASE LCASE(uploadComponet) CASE "abc" : strFileField.SAVE strPath & REPLACE(strSaveFIleName, ";", "") CASE "dext" : strFileField.saveAS strPath & REPLACE(strSaveFIleName, ";", "") CASE "tabs" : strFileField.SAVEAS strPath & REPLACE(strSaveFIleName, ";", "") END SELECT SELECT CASE UCASE(FileExe) CASE "JPG", "GIF", "BMP", "PNG", "TIF" IF bitThrum = True THEN CALL ActThrumImage(strSaveFIleName, strPath, strThrumOption) IF bitUseWaterMark = True AND uploadComponet = "dext" THEN CALL ActDextWaterMark(strSaveFIleName, strPath, strWaterMarkOption) END SELECT ActFileUpload = strSaveFIleName END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일 저장 함수 (MD5 암호화) * ' * 변수설명 : uploadComponet = 업로드 컴포넌트 (ABC, DEXT, TABS) * ' * strFileField = 파일폼 * ' * intUploadSize = 업로드 제한 사이즈 * ' * strPath = 저장경로 * ' *************************************************************************************** FUNCTION ActFileUploadMD5(uploadComponet, strFileField, intUploadSize, strPath) DIM nowFileSize, nowFileName, FileExe, strSaveFIleName, strFileNameOnly, I, strUploadNotFileTmp nowFileSize = GetUploadFileInfo(uploadComponet, strFileField, "size") nowFileName = GetUploadFileInfo(uploadComponet, strFileField, "name") IF nowFileName = "" OR ISNULL(nowFileName) = True THEN ActFileUploadMD5 = False EXIT FUNCTION END IF IF INT(nowFileSize) > INT(intUploadSize) THEN ActFileUploadMD5 = False EXIT FUNCTION END IF FileExe = REPLACE(MID(nowFileName, INSTRREV(nowFileName, ".") + 1), ".", "") strFileNameOnly = REPLACE(LEFT(nowFileName, INSTRREV(nowFileName, ".") - 1), "'", "") strSaveFileName = MD5(strFileNameOnly & YEAR(NOW) & MONTH(NOW) & DAY(NOW) & HOUR(NOW) & MINUTE(NOW) & SECOND(NOW)) DIM strUploadNotFile strUploadNotFile = SPLIT("php,php3,php4,ph,phtml,asp,js,css,jsp,pl,c,cpp,stb,shtml,shtm,vbs,htm,html", ",") FOR I = 0 TO UBOUND(strUploadNotFile) IF TRIM(strUploadNotFile(I)) <> "" THEN IF UCASE(FileExe) = UCASE(strUploadNotFile(I)) THEN IF UCASE(strUploadNotFile(I)) = UCASE(FileExe) THEN strSaveFIleName = strFileNameOnly & ".txt" EXIT FOR END IF END IF END IF NEXT CALL ActFolderMake(strPath) SELECT CASE LCASE(uploadComponet) CASE "abc" : strFileField.SAVE strPath & strSaveFIleName CASE "dext" : strFileField.saveAS strPath & strSaveFIleName CASE "tabs" : strFileField.SAVEAS strPath & strSaveFIleName END SELECT ActFileUploadMD5 = strSaveFIleName END FUNCTION ' *************************************************************************************** ' * 함수설명 : 워터마크 저장함수 (DEXT UPLOAD PRO) * ' * 변수설명 : strFileName = 저장된 파일명 * ' * strPath = 저장경로 * ' * strWaterMarkOption = 워터마크옵션 * ' *************************************************************************************** FUNCTION ActDextWaterMark(strFIleName, strPath, strWaterMarkOption) strWaterMarkOption = SPLIT(strWaterMarkOption, "$^^$") SET objImage = SERVER.CreateObject("DEXT.ImageProc") IF True = objImage.SetSourceFile(strPath & strFileName) THEN SELECT CASE strWaterMarkOption(0) CASE "1" tmpFile = objImage.SaveAsWatermarkImage("/" & REPLACE(LCASE(CONF_strBbsUrl), LCASE(CONF_strSiteUrl), "") & CONF_strFilePath & "/Board/" & strWaterMarkOption(6) & "/config/" & strWaterMarkOption(1), strPath & "temp\" & strFileName, strWaterMarkOption(3), strWaterMarkOption(4), True) CASE "2" tmpFile = objImage.SaveAsWatermarkText(strWaterMarkOption(2), strPath & "temp\" & strFileName, strWaterMarkOption(3),strWaterMarkOption(4),strWaterMarkOption(5), True) END SELECT CALL ActFileDelete(strPath & strFileName) CALL ActDefaultFileCopy(strPath & "temp\" & strFileName, strPath & strFileName) CALL ActFileDelete(strPath & "temp\" & strFileName) END IF SET objImage = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 썸네일 저장 함수 * ' * 변수설명 : strFileName = 저장된 파일명 * ' * strPath = 저장경로 * ' * strThrumOption = 썸네일 옵션 (배열) * ' *************************************************************************************** FUNCTION ActThrumImage(strFileName, strPath, strThrumOption) strThrumOption = SPLIT(strThrumOption, ",") DIM objImage SELECT CASE strThrumOption(0) CASE "dext" SET objImage = SERVER.CREATEOBJECT("DEXT.ImageProc") IF True = objImage.SetSourceFile(strPath & strFileName) THEN ActThrumImage = objImage.SaveasThumbnail(strPath & "thrum\" & strFileName, strThrumOption(1), strThrumOption(2), GetNumberTypeBitChg(strThrumOption(3))) END IF CASE "nanumi" SET objImage = Server.CreateObject("Nanumi.ImagePlus") objImage.OpenImageFile strPath & strFileName objImage.KeepAspect = GetNumberTypeBitChg(strThrumOption(3)) objImage.ChangeSize strThrumOption(1), strThrumOption(2) objImage.SaveFile strPath & "thrum\" & strFileName objImage.Dispose END SELECT SET objImage = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 파일복사 함수 * ' * 변수설명 : strFileName1 : 소스파일(경로포함) * ' * strFileName2 : 대상파일(경로포함) * ' *************************************************************************************** FUNCTION ActDefaultFileCopy(strFileName1, strFileName2) SET FSO = SERVER.CREATEOBJECT("scripting.FileSystemObject") IF FSO.FileExists(strFileName1) THEN FSO.CopyFile strFileName1, strFileName2 SET FSO = NOTHING ActDefaultFileCopy = True END FUNCTION ' *************************************************************************************** ' * 함수설명 : 이미지 파일 체크 * ' * 변수설명 : strFileName = 저장된 파일명 * ' *************************************************************************************** FUNCTION GetUploadFileImage(uploadComponet, strField) DIM strFileName SELECT CASE uploadComponet CASE "abc" : strFileName = strField.SafeFileName CASE "dext" : strFileName = strField.FileName CASE "tabs" : strFileName = strField.FileName END SELECT IF strFileName = "" OR ISNULL(strFileName) = True THEN GetUploadFileImage = False ELSE DIM FileExe FileExe = REPLACE(MID(strFileName, INSTRREV(strFileName, ".") + 1), ".", "") SELECT CASE UCASE(FileExe) CASE "JPG", "GIF", "BMP", "PNG", "TIF" GetUploadFileImage = True CASE ELSE GetUploadFileImage = False END SELECT END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 저장파일 사이즈 체크 함수 * ' * 변수설명 : uploadComponet = 업로드 컴포넌트 * ' * strField = 파일폼 * ' *************************************************************************************** FUNCTION GetFIleUploadSize(uploadComponet, strField) SELECT CASE uploadComponet CASE "abc" : GetFIleUploadSize = strFileField.Length CASE "dext" : GetFIleUploadSize = strFileField.FIleLen CASE "tabs" : GetFIleUploadSize = strFileField.FileSize END SELECT END FUNCTION ' *************************************************************************************** ' * 함수설명 : DB 저장 입력값 자르기 * ' * 변수설명 : str = 입력값 * ' * cutLen = 입력길이 * ' *************************************************************************************** FUNCTION GetCutInputData(str, cutLen) IF LEN(str) > cutLen THEN GetCutInputData = LEFT(str, cutLen) ELSE GetCutInputData = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : 출력 길이 자르기 * ' * 변수설명 : str = 입력값 * ' * intCutSize = 입력길이 * ' * strAddText = 글자 자르기 표시 * ' *************************************************************************************** FUNCTION GetCutDispData(str, intCutSize, strAddText) IF intCutSize = 0 THEN GetCutDispData = str ELSE IF INT(GetTextLen(str)) > INT(intCutSize) THEN GetCutDispData = GetTextLeft(str, intCutSize - 2) & strAddText ELSE GetCutDispData = str END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 문자 길이 체크 * ' * 변수설명 : str = 문자 * ' *************************************************************************************** FUNCTION GetTextLen(str) IF str <> "" AND ISNULL(str) = False THEN DIM I GetTextLen = 0 FOR I = 1 TO LEN(str) IF ASC(MID(str, I, 1)) < 0 THEN GetTextLen = GetTextLen + 2 ELSE GetTextLen = GetTextLen + 1 NEXT END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 문자 좌측 길이 * ' * 변수설명 : str = 문자 * ' * intCutSize = 길이 * ' *************************************************************************************** FUNCTION GetTextLeft(str, intCutSize) DIM intNum, I intNum = 0 FOR I = 1 TO LEN(str) GetTextLeft = GetTextLeft & MID(str, I, 1) IF ASC(MID(str, I, 1)) < 0 THEN intNum = intNum + 2 ELSE intNum = intNum + 1 IF intNum >= intCutSize THEN EXIT FOR NEXT END FUNCTION ' *************************************************************************************** ' * 함수설명 : 숫자 체크 * ' * 변수설명 : numeric : 체크할 숫자값 * ' * intType : 숫자 타입 * ' *************************************************************************************** FUNCTION GetNumericCheck(numeric, intType) DIM intCheckNum IF numeric = "" THEN GetNumericCheck = False ELSE IF isNumeric(numeric) = False THEN GetNumericCheck = False ELSE IF numeric < 0 THEN GetNumericCheck = False ELSE SELECT CASE LCASE(intType) CASE "i" : intCheckNum = CLNG(2147483647) : numeric = CLNG(numeric) CASE "s" : intCheckNum = INT(32767) : numeric = INT(numeric) CASE "t" : intCheckNum = CBYTE(255) : numeric = CBYTE(numeric) END SELECT IF numeric > intCheckNum THEN GetNumericCheck = False ELSE GetNumericCheck = True END IF END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 양력을 음력으로 변환하는 함수 * ' * 변수설명 : pYear = 년도, pMonth = 월, pDay = 일 * ' *************************************************************************************** FUNCTION GetLunar(pYear,pMonth,pDay) DIM sLunarTableString DIM sLunarTable, nDay sLunarTableString = "1212122322121-1212121221220-1121121222120-2112132122122-2112112121220-2121211212120-2212321121212-2122121121210-2122121212120-1232122121212-1212121221220-1121123221222-1121121212220-1212112121220-2121231212121-2221211212120-1221212121210-2123221212121-2121212212120-1211212232212-1211212122210-2121121212220-1212132112212-2212112112210-2212211212120-1221412121212-1212122121210-2112212122120-1231212122212-1211212122210-2121123122122-2121121122120-2212112112120-2212231212112-2122121212120-1212122121210-2132122122121-2112121222120-1211212322122-1211211221220-2121121121220-2122132112122-1221212121120-2121221212110-2122321221212-1121212212210-2112121221220-1231211221222-1211211212220-1221123121221-2221121121210-2221212112120-1221241212112-1212212212120-1121212212210-2114121212221-2112112122210-2211211412212-2211211212120-2212121121210-2212214112121-2122122121120-1212122122120-1121412122122-1121121222120-2112112122120-2231211212122-2121211212120-2212121321212-2122121121210-2122121212120-1212142121212-1211221221220-1121121221220-2114112121222-1212112121220-2121211232122-1221211212120-1221212121210-2121223212121-2121212212120-1211212212210-2121321212221-2121121212220-1212112112210-2223211211221-2212211212120-1221212321212-1212122121210-2112212122120-1211232122212-1211212122210-2121121122210-2212312112212-2212112112120-2212121232112-2122121212110-2212122121210-2112124122121-2112121221220-1211211221220-2121321122122-2121121121220-2122112112322-1221212112120-1221221212110-2122123221212-1121212212210-2112121221220-1211231212222-1211211212220-1221121121220-1223212112121-2221212112120-1221221232112-1212212122120-1121212212210-2112132212221-2112112122210-2211211212210-2221321121212-2212121121210-2212212112120-1232212122112-1212122122120-1121212322122-1121121222120-2112112122120-2211231212122-2121211212120-2122121121210-2124212112121-2122121212120-1212121223212-1211212221220-1121121221220-2112132121222-1212112121220-2121211212120-2122321121212-1221212121210-2121221212120-1232121221212-1211212212210-2121123212221-2121121212220-1212112112220-1221231211221-2212211211220-1212212121210-2123212212121-2112122122120-1211212322212-1211212122210-2121121122120-2212114112122-2212112112120-2212121211210-2212232121211-2122122121210-2112122122120-1231212122212-1211211221220-2121121321222-2121121121220-2122112112120-2122141211212-1221221212110-2121221221210-2114121221221" '2050 sLunarTable = Split(sLunarTableString, "-") nDay = Split("31-0-31-30-31-30-31-31-30-31-30-31", "-") DIM i, j DIM nDayTable(170) DIM nLunarMonth FOR i = 0 to 169 nDayTable(i) = 0 FOR j = 1 to 13 nLunarMonth = CInt(Mid(sLunarTable(i), j, 1)) SELECT CASE nLunarMonth CASE 1, 3 nDayTable(i) = nDayTable(i) + 29 CASE 2, 4 nDayTable(i) = nDayTable(i) + 30 END SELECT NEXT NEXT DIM nYear, nDays1, nDays2, nDays3 nYear = pYear - 1 nDays1 = 1880 * 365 + 1880 \ 4 - 1880 \ 100 + 1880 \ 400 + 30 nDays2 = nYear * 365 + nYear \ 4 - nYear \ 100 + nYear \ 400 IF GetLeapMonth(pYear) THEN nDay(1) = 29 ELSE nDay(1) = 28 FOR i = 0 to pMonth - 2 nDays2 = nDays2 + nDay(i) NEXT nDays2 = nDays2 + pDay nRetDay = nDays2 - nDays1 + 1 nDays3 = nDayTable(0) DIM nRetDay, nRetMonth, nRetYear FOR i = 0 to 169 IF nRetDay <= nDays3 THEN EXIT FOR nDays3 = nDays3 + nDayTable(i + 1) NEXT nRetYear = i + 1881 nDays3 = nDays3 - nDayTable(i) nRetDay = nRetDay - nDays3 DIM nMonthCount, nDayPerMonth nMonthCount = 11 : IF Mid(sLunarTable(i), 13, 1) > 0 THEN nMonthCount = 12 nRetMonth = 0 FOR j = 0 to nMonthCount nLunarMonth = CInt(Mid(sLunarTable(i), j + 1, 1)) IF nLunarMonth > 2 THEN nDayPerMonth = nLunarMonth + 26 ELSE nRetMonth = nRetMonth + 1 nDayPerMonth = nLunarMonth + 28 END IF IF nRetDay <= nDayPerMonth THEN EXIT FOR nRetDay = nRetDay - nDayPerMonth NEXT GetLunar = CStr(nRetYear) & "-" & RIGHT("0" & nRetMonth, 2) & "-" & RIGHT("0" & nRetDay, 2) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 해당 년도 윤달 여부 반환 * ' * 변수설명 : pYear = 년도 * ' *************************************************************************************** FUNCTION GetLeapMonth(pYear) IF (pYear MOD 100 <> 0 AND pYear MOD 4 = 0) OR pYear MOD 400 = 0 THEN GetLeapMonth = True ELSE GetLeapMonth = False END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 해당 월의 마지막일 반환 * ' * 변수설명 : pYear = 년도 : pMonth : 월 * ' *************************************************************************************** FUNCTION GetMonthCount(pYear, pMonth) DIM aMonthNum aMonthNum = SPLIT("31-0-31-30-31-30-31-31-30-31-30-31-", "-") IF GetLeapMonth(pYear) THEN aMonthNum(1) = 29 ELSE aMonthNum(1) = 28 GetMonthCount = CINT(aMonthNum(CINT(pMonth)-1)) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 전화번호 또는 휴대폰번호 앞자리 반환 * ' * 변수설명 : numberType = 구분 (all : 전체, tel : 지역번호, mobile : 휴대폰) * ' * selectVal = 선택값 * ' *************************************************************************************** FUNCTION GetPhoneFirstNumber(numberType, selectVal) DIM str, strArrData, telValue, mobileValue, tmpFor telValue = "02,031,032,033,041,042,043,0502,0505,051,052,053,054,055,061,062,063,064,070" mobileValue = "010,011,013,016,017,018,019,0502,0505,0506" SELECT CASE numberType CASE "all" : strArrData = telValue & "," & mobileValue CASE "tel" : strArrData = telValue CASE "mobile" : strArrData = mobileValue END SELECT strArrData = SPLIT(strArrData, ",") FOR tmpFor = 0 TO UBOUND(strArrData) str = str & "" & chr(10) NEXT GetPhoneFirstNumber = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : 날짜 SELECT FORM 생성 * ' * 변수설명 : dateType = 월 또는 일자 (2자리로 표현시) * ' * selectVal = 선택값 * ' * sInt = 시작값 * ' * eInt = 종료값 * ' * stepInt = 증가값 * ' * strText = 추가 표현 문자 * ' *************************************************************************************** FUNCTION GetMakeDateSelectForm(dateType, selectVal, sInt, eInt, stepInt, strText) DIM str, tmpFor FOR tmpFor = sInt TO eInt STEP stepInt str = str & "" & CHR(10) NEXT GetMakeDateSelectForm = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : 에디터 태그 변환 함수 * ' * 변수설명 : str : 변환할 변수 값 * ' *************************************************************************************** FUNCTION GetReplaceTag2Editor(str) IF ISNULL(str) = False THEN str = REPLACE(str,"&","&amp;") str = REPLACE(str,""","&quot;") str = REPLACE(str,CHR(34),""") GetReplaceTag2Editor = str END IF End Function ' *************************************************************************************** ' * 함수설명 : TEXT 태그 변환 함수 * ' * 변수설명 : str : 변환할 변수 값 * ' *************************************************************************************** FUNCTION GetReplaceTag2Text(str) IF ISNULL(str) = False THEN str = REPLACE(str,"&","&amp;") str = REPLACE(str,""","&quot;") str = REPLACE(str, "<", "<") str = REPLACE(str, ">", ">") str = REPLACE(str," ","  ") str = REPLACE(str," ","    ") str = REPLACE(str,CHR(13) & CHR(10),"
") str = REPLACE(str,CHR(13),"
") str = REPLACE(str,CHR(10),"
") str = REPLACE(str,CHR(34),""") GetReplaceTag2Text = str END IF End Function ' *************************************************************************************** ' * 함수설명 : HTML 태그 변환 함수 (사용자) * ' * 변수설명 : str : 변환할 변수 값 * ' *************************************************************************************** FUNCTION GetReplaceTag2UserHtml(str) IF ISNULL(str) = False THEN str = REPLACE(str,"&amp;","&") str = REPLACE(str,"&quot;",""") str = REPLACE(str, " ", "&nbsp;") str = REPLACE(str, "<", "<") str = REPLACE(str, ">", ">") str = REPLACE(str," ","  ") GetReplaceTag2UserHtml = str END IF End Function ' *************************************************************************************** ' * 함수설명 : HTML 태그 변환 함수 * ' * 변수설명 : str : 변환할 변수 값 * ' *************************************************************************************** FUNCTION GetReplaceTag2Html(str) IF ISNULL(str) = False THEN DIM allowTagList allowTagList = "!--|br|hr|table|tbody|tr|td|img|embed|strong|center|a|p|font|li||hr|span|h1|h2|h3|h4|h5|div" str = GetEregiReplace("<(\/?)(?!\/|" & allowTagList & ")([^<>]*)?>", "<$1$2>", str) str = GetEregiReplace("(javascript\:|vbscript\:)+","$1//",str) str = GetEregiReplace("(\.location|location\.|\.cookie|alert\(|window\.open\(|onmouse|onkey|view\-source\:)+", "//", str) str = REPLACE(str,"<" & "%","<%") str = REPLACE(str,"%" & ">","<%") str = REPLACE(str,"&amp;","&") str = REPLACE(str,"&quot;",""") str = REPLACE(str, " ", "&nbsp;") str = REPLACE(str, "<", "<") str = REPLACE(str, ">", ">") str = REPLACE(str," ","  ") GetReplaceTag2Html = str END IF End Function FUNCTION GetEregiReplace(pattern, replacestr, text) DIM eregObj SET eregObj = New RegExp eregObj.Pattern = pattern eregObj.IgnoreCase = True eregObj.Global = True GetEregiReplace = eregObj.Replace(text, replacestr) END FUNCTION ' *************************************************************************************** ' * 함수설명 : HTML BR 태그 변환 함수 * ' * 변수설명 : str : 변환할 변수 값 * ' *************************************************************************************** FUNCTION GetReplaceTag2HtmlBr(str) IF ISNULL(str) = False THEN DIM allowTagList allowTagList = "!--|br|hr|table|tbody|tr|td|img|embed|strong|center|a|p|font|li||hr|span|h1|h2|h3|h4|h5|div" str = GetEregiReplace("<(\/?)(?!\/|" & allowTagList & ")([^<>]*)?>", "<$1$2>", str) str = GetEregiReplace("(javascript\:|vbscript\:)+","$1//",str) str = GetEregiReplace("(\.location|location\.|\.cookie|alert\(|window\.open\(|onmouse|onkey|view\-source\:)+", "//", str) str = REPLACE(str,"<" & "%","<%") str = REPLACE(str,"%" & ">","<%") str = REPLACE(str,Chr(13),"
") GetReplaceTag2HtmlBr = str END IF End Function ' *************************************************************************************** ' * 함수설명 : 태그제거 * ' * 변수설명 : htmlDoc : HTML 태그로 된 내용 * ' *************************************************************************************** FUNCTION GetStripTags(htmlDoc) DIM rex SET rex = new Regexp rex.Pattern= "<[^>]+>" rex.Global = true GetStripTags = rex.Replace(htmlDoc,"") END FUNCTION ' *************************************************************************************** ' * 함수설명 : 날짜 형태로 변환 * ' * 변수설명 : intDate : 변환할 날짜값 (8자리) * ' * : strcharac : 구분문자 * ' *************************************************************************************** FUNCTION GetReplaceDateStr(intDate, strcharac) IF ISNULL(intDate) = False THEN GetReplaceDateStr = LEFT(intDate, 4) & strcharac & MID(intDate, 5, 2) & strcharac & MID(intDate, 7, 2) End Function ' *************************************************************************************** ' * 함수설명 : 자바스크립트 새창 ALERT MSG * ' * 변수설명 : url = 이동할 URL * ' *************************************************************************************** FUNCTION ActWinJsScript(url) DIM str str = "" & CHR(10) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 폼메일 발송 함수 * ' * 변수설명 : strSendName : 보내는 사람 이름 * ' * strSendMail : 보내는 사람의 메일주소 * ' * strRecvName : 받는 사람 이름 * ' * strRecvMail : 받는 사람의 메일주소 * ' * strSubject : 메일 제목 * ' * strContent : 메일내용 * ' * strRecvBccMail : 참조 * ' * strRecvCcMail : 숨은참조 * ' * sendFileName1 : 첨부파일 #1 * ' * sendFileName2 : 첨부파일 #2 * ' *************************************************************************************** FUNCTION ActSendEmail(strSendName, strSendMail, strRecvName, strRecvMail, strSubject, strContent, strRecvBccMail, strRecvCcMail, sendFileName1, sendFileName2) Const cdoSendUsingPort = 1 '1일 경우 로컬(SMTP), 2일 경우 외부(SMTP)로 메일전송 Const strSmartHost = "localhost" 'Host 설정 Const strRoot = "C:\Inetpub\mailroot\Pickup" SET objMail = Server.CreateObject("CDO.Message") SET iConf = objMail.Configuration With iConf.Fields .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = strRoot .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 .Update End With objMail.From = strSendName & "<" & strSendMail & ">" objMail.ReplyTo = tomail objMail.To = strRecvName & "<" & strRecvMail & ">" IF strRecvBccMail <> "" THEN objMail.Bcc = strRecvBccMail IF strRecvCcMail <> "" THEN objMail.cc = strRecvCcMail objMail.Subject = strSubject objMail.HTMLBody = strContent IF sendFileName1 <> "" THEN objMail.AddAttachment(sendFileName1) IF sendFileName2 <> "" THEN objMail.AddAttachment(sendFileName2) objMail.SEND SET Fields = NOTHING : SET objMail = NOTHING : SET objConfig = NOTHING : SET iConf = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : 사용자 입력값의 오류시 기본값으로 변환 * ' * 변수설명 : inputStr : 입력값 * ' * defaultStr : 기본값 * ' * bitInteger : 숫자유무 * ' *************************************************************************************** FUNCTION GetUserInputDefault(inputStr, defaultStr, bitInteger) IF bitInteger = True THEN IF inputStr = "" OR inputStr = 0 THEN GetUserInputDefault = defaultStr ELSE GetUserInputDefault = inputStr ELSE IF inputStr = "" THEN GetUserInputDefault = defaultStr ELSE GetUserInputDefault = inputStr END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : TEXT 파일 내용 반환 * ' * 변수설명 : FileUrl : 파일 경로 및 파일명 * ' * CharSet : charset * ' *************************************************************************************** FUNCTION GetReadFromTextFile(FileUrl, CharSet) DIM str SET stm = server.CreateObject("adodb.stream") stm.Type=2 stm.mode=3 stm.charset=CharSet stm.open stm.loadfromfile FileUrl str = stm.readtext GetReadFromTextFile = str stm.CLOSE : SET stm = NOTHING END FUNCTION ' *************************************************************************************** ' * 함수설명 : CSS 특정단어 변환 * ' * 변수설명 : input_string : 변환할 내용 * ' *************************************************************************************** FUNCTION GetStrDuplication(ByVal input_string) DIM input_array, input_length, i, j, t, t_length, temp_count, check_count, last_check input_array = SPLIT(input_string, ",") input_length = UBOUND(input_array) FOR i = 0 TO input_length t = CInt(i + 1) t_length = input_length - 1 FOR j = t TO t_length IF input_array(i) = input_array(j) THEN check_count = check_count + CInt(1) NEXT temp_count = temp_count + check_count IF check_count = 0 THEN IF i = input_length THEN last_check = INSTR(temp_input, input_array(i)) IF last_check = 0 THEN temp_input = temp_input & input_array(i) ELSE temp_input = temp_input & input_array(i) temp_input = temp_input & "," END IF END IF check_count = CInt(0) NEXT temp_length = LEN(temp_input) - 1 GetStrDuplication = LEFT(temp_input, temp_length) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 회원 로그인 함수 * ' * 변수설명 : userid : 아이디 * ' * userpwd : 비밀번호 * ' * adminPage : 관리자 페이지 유무 (Trur or False) * ' *************************************************************************************** FUNCTION ActMemberLogin(userid, userpwd, adminPage) SET RS = DBCON.EXECUTE("[ARTY30_SP_MEMBER_LOGIN] '" & userid & "', '" & userpwd & "' ") IF RS.EOF THEN ActMemberLogin = "ERROR01" EXIT FUNCTION END IF IF RS("bitAuth") = False THEN ActMemberLogin = "ERROR02" EXIT FUNCTION END IF IF ISNULL(RS("strLoginNoDate")) = False THEN IF INT(REPLACE(LEFT(RS("strLoginNoDate"), 10), "-","")) >= INT(REPLACE(LEFT(NOW(), 10), "-", "")) THEN ActMemberLogin = "ERROR03" EXIT FUNCTION END IF END IF IF RS("bitLeave") = True THEN ActMemberLogin = "ERROR04" EXIT FUNCTION END IF IF adminPage = True THEN IF RS("strAdmin") = "N" THEN RESPONSE.WRITE "ERROR05" RESPONSE.End() END IF END IF SESSION("memberSeq") = RS("intSeq") SESSION("userID") = RS("strLoginID") SESSION("userName") = RS("strUserName") SESSION("nickName") = RS("strNickName") SESSION("memberGroup") = RS("strGroupCode") SESSION("staff") = RS("strAdmin") IF DATEDIFF("d", DATEADD("m", 6, RS("strModifyPwdDate")), NOW()) > 0 THEN ActMemberLogin = "PASSWORD" ELSE ActMemberLogin = "SUCCESS" END IF DBCON.EXECUTE("[ARTY30_SP_MEMBER_LOGIN_UPDATE] '" & SESSION("memberSeq") & "', '" & REQUEST.SERVERVARIABLES("REMOTE_ADDR") & "', '" & REQUEST.ServerVariables("HTTP_USER_AGENT") & "' ") END FUNCTION ' *************************************************************************************** ' * 함수설명 : 회원 로그아웃 함수 * ' *************************************************************************************** FUNCTION ActMemberLogout() SESSION("memberSeq") = "" SESSION("userID") = "" SESSION("userName") = "" SESSION("nickName") = "" SESSION("staff") = "" END FUNCTION ' *************************************************************************************** ' * 함수설명 : 회원 삭제 함수 * ' * 변수설명 : intSeq : 회원 고유번호 * ' * strAdmin : 관리자 여부 * ' * strFilePath : 사진, 이름이미지, 마크이미지 업로드 경로 * ' *************************************************************************************** FUNCTION ActMemberRemove(intSeq, strAdmin, strFilePath) CALL ActFolderDelete(strFilePath & "\member\profile" & "\" & intSeq) CALL ActFolderDelete(strFilePath & "\member\name" & "\" & intSeq) CALL ActFolderDelete(strFilePath & "\member\mark" & "\" & intSeq) DBCON.EXECUTE("[ARTY30_SP_MEMBER_REMOVE] '" & intSeq & "' ") IF strAdmin = "S" THEN DBCON.EXECUTE("[ARTY30_SP_STAFF_REMOVE] '" & intSeq & "' ") END FUNCTION ' *************************************************************************************** ' * 함수설명 : 레이아웃 스타일 반환 * ' * 변수설명 : inputStr : 입력값 * ' * defaultStr : 기본값 * ' * bitInteger : 숫자유무 * ' *************************************************************************************** FUNCTION GetLayoutStyle(strAlign, intWidth, strWidthOpt, strPadding, strBgType, strBgColor, strBgFile, strRepeat, strFilePath) DIM str str = " style=""" IF strAlign = "center" THEN str = str & "margin:0 auto;" IF intWidth > 0 THEN str = str & "width:" & intWidth & strWidthOpt & ";" IF strPadding <> ",,," THEN strPadding = SPLIT(strPadding, ",") str = str & " padding:" IF strPadding(0) = "" THEN str = str & "0" ELSE str = str & strPadding(0) IF strPadding(1) = "" THEN str = str & " 0" ELSE str = str & " " & strPadding(1) IF strPadding(2) = "" THEN str = str & " 0" ELSE str = str & " " & strPadding(2) IF strPadding(3) = "" THEN str = str & " 0" ELSE str = str & " " & strPadding(3) & ";" END IF SELECT CASE strBgType CASE "1" : str = str & " background-color:" & strBgColor & ";" CASE "2" : str = str & " background:url('" & strFilePath & strBgFile & "') " SELECT CASE strRepeat CASE "n" : str = str & ";" CASE "a" : str = str & "repeat;" CASE "x" : str = str & "repeat-x;" CASE "y" : str = str & "repeat-y;" END SELECT END SELECT IF str <> "" THEN str = str & """" GetLayoutStyle = str END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시판 관리자 확인 * ' * 변수설명 : intSrl : 게시판 고유번휴 * ' * memberSeq : 회원 고유번호 * ' * staff : 전체관리자 유무 * ' *************************************************************************************** FUNCTION GetBoardAdminCheck(intSrl, memberSeq, staff) IF memberSeq = "" THEN GetBoardAdminCheck = False ELSE IF staff = "A" THEN GetBoardAdminCheck = True ELSE SET RS = DBCON.EXECUTE("[ARTY30_SP_BOARD_ADMIN_READ] '" & intSrl & "', '" & SESSION("memberSeq") & "', '2' ") IF NOT(RS.EOF) THEN GetBoardAdminCheck = True ELSE GetBoardAdminCheck = False END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시판 권환 반환 * ' * 변수설명 : strLevel : 게시판 권한 구분 * ' * memberSeq : 회원 고유번호 * ' * memberGroup : 회원 그룹코드 * ' * bbsGroup : 게시판 권한 그룹 * ' * bitAdmin : 관리자 유무 (True or False) * ' * bitUseConsult : 상담게시판 여부 (True or False) * ' *************************************************************************************** FUNCTION GetBoardLevelCheck(strLevel, memberSeq, memberGroup, bbsGroup, bitAdmin, bitUseConsult) IF bitAdmin = True THEN GetBoardLevelCheck = True ELSE IF bitUseConsult = True THEN IF memberSeq = "" THEN GetBoardLevelCheck = False ELSE GetBoardLevelCheck = True ELSE SELECT CASE strLevel CASE "0" : GetBoardLevelCheck = True CASE "1" : IF memberSeq = "" THEN GetBoardLevelCheck = False ELSE GetBoardLevelCheck = True CASE "2" IF memberSeq = "" THEN GetBoardLevelCheck = False ELSE IF INSTR(bbsGroup, memberGroup) > 0 THEN GetBoardLevelCheck = True ELSE GetBoardLevelCheck = False END IF END SELECT END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시글 타이틀 스타일 반환 * ' * 변수설명 : fontSize : 글자크기 * ' * fontColor : 글자색상 * ' * bold : 굵음표시 * ' *************************************************************************************** FUNCTION GetBoardTitleStyle(strTitle, fontSize, fontColor, bold) DIM str str = "" IF fontSize <> "" AND ISNULL(fontSize) = False THEN str = str & "font-size:" & fontSize & "; " IF fontColor <> "" AND ISNULL(fontColor) = False THEN str = str & "color:" & fontColor & "; " IF bold = True THEN str = str & "font-weight:bold;" IF str = "" THEN GetBoardTitleStyle = strTitle ELSE GetBoardTitleStyle = "" & strTitle & "" END FUNCTION ' *************************************************************************************** ' * 함수설명 : 에디터 다국어 지원 언어 체크 (추후 언어 추가시 변경됨) * ' * 변수설명 : strLang : 언어구분값 * ' *************************************************************************************** FUNCTION GetEditorUtfCode(strLang) SELECT CASE LCASE(strLang) CASE "ko", "en" : GetEditorUtfCode = strLang CASE ELSE : GetEditorUtfCode = "en" END SELECT END FUNCTION ' *************************************************************************************** ' * 함수설명 : 자동등록방지 입력문자 체크 * ' * 변수설명 : valSession : 문자세션값, valCaptcha : 입력값 * ' *************************************************************************************** FUNCTION ActCaptchaCheck(byval valSession, byval valCaptcha) DIM tmpSession valSession = TRIM(valSession) valCaptcha = TRIM(valCaptcha) IF (valSession = vbNullString) OR (valCaptcha = vbNullString) THEN ActCaptchaCheck = False ELSE tmpSession = valSession valSession = TRIM(SESSION(valSession)) ' SESSION(tmpSession) = vbNullString IF valSession = vbNullString THEN ActCaptchaCheck = False ELSE valCaptcha = Replace(valCaptcha,"i","I") IF STRCOMP(valSession, valCaptcha, 1) = 0 THEN ActCaptchaCheck = True ELSE ActCaptchaCheck = False END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 공백값 체크 * ' * 변수설명 : str : 체크변수 * ' *************************************************************************************** FUNCTION GetTrimSpaceCheck(str) IF TRIM(str) = "" THEN GetTrimSpaceCheck = False ELSE GetTrimSpaceCheck = True END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시판 접근 권한 부족시 처리되는 스크립트 생성 * ' * 변수설명 : strLinkPage : 이동할 페이지 * ' * strLinkLogin : 0 : 메지시 출력, 1 : 로그인 페이지 이동 * ' * strBoardID : 게시판 아이디 * ' * intBoardSeq : 게시글 번호 * ' * intCommentSeq : 댓글번호 * ' * intCommentPage : 댓글 페이지 * ' * prevAct : 이전 액션값 * ' * msgCode : 메시지코드 * ' *************************************************************************************** FUNCTION GetBoardAuthScript(strLinkPage, strLinkLogin, intBoardSeq, intCommentSeq, intCommentPage, prevAct, msgCode) IF strLinkPage <> "" AND ISNULL(strLinkPage) = False THEN GetBoardAuthScript = strLinkPage ELSE IF strLinkLogin = "0" THEN GetBoardAuthScript = GetBoardUrl("message", "seq=" & intBoardSeq & ",comment_seq=" & intCommentSeq & ",comment_page=" & intCommentPage & ",prevAct=" & prevAct & ",msgCode=" & msgCode) ELSE IF SESSION("memberSeq") = "" THEN GetBoardAuthScript = GetBoardUrl("login", "") ELSE GetBoardAuthScript = GetBoardUrl("message", "seq=" & intBoardSeq & ",comment_seq=" & intCommentSeq & ",comment_page=" & intCommentPage & ",prevAct=" & prevAct & ",msgCode=" & msgCode) END IF END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 비밀번호 입력 (글수정, 글삭제, 댓글삭제) * ' * 변수설명 : intBoardSeq : 게시글번호 * ' * intCommentSeq : 댓글번호 * ' * intCommentPage : 댓글페이지 * ' * prevAct : 이전 액션값 * ' * nextAct : 다음 액션값 * ' *************************************************************************************** FUNCTION GetPasswordFormScript(intBoardSeq, intCommentSeq, intCommentPage, prevAct, nextAct) GetPasswordFormScript = GetBoardUrl("password", "seq=" & intBoardSeq & ",comment_seq=" & intCommentSeq & ",comment_page=" & intCommentPage & ",prevAct=" & prevAct & ",nextAct=" & nextAct) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시판 정렬 항목 DB 필드명으로 변경 * ' * 변수설명 : strField : 정렬 항목 * ' *************************************************************************************** FUNCTION GetBoardOrderField(strField) SELECT CASE strField CASE "no" : GetBoardOrderField = "intSeq" CASE "update" : GetBoardOrderField = "strModifyDate" CASE "regdate" : GetBoardOrderField = "strRegDate" CASE "voted_count" : GetBoardOrderField = "intVote" CASE "blamed_count" : GetBoardOrderField = "intBlamed" CASE "readed_count" : GetBoardOrderField = "intRead" CASE "comment_count" : GetBoardOrderField = "intComment" CASE "title" : GetBoardOrderField = "strTitle" CASE ELSE : GetBoardOrderField = "intSeq" END SELECT END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시판 검색 항목 DB 필드명으로 변경 * ' * 변수설명 : strField : 검색 항목 * ' *************************************************************************************** FUNCTION GetBoardSearchField(strField) SELECT CASE strField CASE "title" : GetBoardSearchField = "strTitle" CASE "content" : GetBoardSearchField = "strContent" CASE "title_content" : GetBoardSearchField = "title_content" CASE "user_name" : GetBoardSearchField = "strUserName" CASE "nick_name" : GetBoardSearchField = "strNickName" CASE "user_id" : GetBoardSearchField = "strUserID" CASE "tag" : GetBoardSearchField = "strTag" CASE "strAddData1", "strAddData2", "strAddData3", "strAddData4", "strAddData5", "strAddData6", "strAddData7", "strAddData8", "strAddData9", "strAddData10", "strAddData11", "strAddData12", "strAddData13", "strAddData14", "strAddData15" GetBoardSearchField : strField CASE ELSE GetBoardSearchField = "" END SELECT END FUNCTION ' *************************************************************************************** ' * 함수설명 : 첨부파일 사이즈 반환 * ' * 변수설명 : intSize : 파일크기 * ' *************************************************************************************** FUNCTION GetFilesize(intSize) IF intSize <> "" AND ISNULL(intSize) = False THEN IF INT(intSize) > 1048576 THEN GetFilesize = ROUND((intSize / 1048576) * 1000 / 1000) & " MB" ELSEIF INT(intSize) > 1024 THEN GetFilesize = ROUND((intSize / 1024) * 10 / 10) & " KB" ELSE GetFilesize = intSize & " Byte" END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시글 수정 및 삭제권한 체크 * ' * 변수설명 : staff : 관리자 여부 (True or False) * ' * intDocMemmberSrl : 게시글 소유자 회원 고유번호 * ' * intMemberSrl : 회원고유번호 * ' *************************************************************************************** FUNCTION GetDocumentModifyCheck(staff, intDocMemmberSrl, intMemberSrl) IF staff = True THEN GetDocumentModifyCheck = True ELSE IF intDocMemmberSrl = 0 THEN GetDocumentModifyCheck = True ELSE IF intMemberSrl = "" THEN GetDocumentModifyCheck = False ELSE IF INT(intDocMemmberSrl) = INT(intMemberSrl) THEN GetDocumentModifyCheck = True ELSE GetDocumentModifyCheck = False END IF END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 댓글 삭제 또는 휴지통 넣기 함수 * ' * 변수설명 : intSrl : 게시판 고유번호 * ' * intBoardSeq : 게시글 고유번호 * ' * intCommentSeq : 댓글 고유번호 * ' * intMemberSrl : 회원 고유번호 * ' * bitUseTrash : 삭제 (0), 휴지통 (1) * ' * strPath : 첨부파일 기본경로 * ' *************************************************************************************** FUNCTION ActCommentRemove(intSrl, intBoardSeq, intCommentSeq, intMemberSrl, bitUseTrash, strPath) SET RS = DBCON.EXECUTE("[ARTY30_SP_COMMENTS_READ] '" & intCommentSeq & "', 'Y' ") IF RS(0) = 0 THEN IF intMemberSrl <> "0" THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_MEMBER_READ] '" & intMemberSrl & "' ") IF GetBoardAdminCheck(intSrl, intMemberSrl, RS("strAdmin")) = False THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_POINT_READ] '', '" & intMemberSrl & "', '', '', '" & intCommentSeq & "', '', 'comment' ") IF NOT(RS.EOF) THEN DBCON.EXECUTE("[ARTY30_SP_POINT_REMOVE] '" & RS("intSeq") & "', '" & bitUseTrash & "' ") END IF END IF IF bitUseTrash = "0" THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_FILES_LIST] '', '', '" & intCommentSeq & "', 'C', '' ") WHILE NOT(RS.EOF) strPath = strPath & "\comment\" & RS("intSrl") IF RS("bitImage") = True THEN strPath = strPath & "\images\" CALL ActFileDelete(strPath & RS("strFilename")) CALL ActFileDelete(strPath & "temp\" & RS("strFilename")) CALL ActFileDelete(strPath & "thrum\" & RS("strFilename")) ELSE strPath = strPath & "\files\" CALL ActFileDelete(strPath & RS("strSid")) END IF DBCON.EXECUTE("[ARTY30_SP_FILES_REMOVE] '" & RS("intSeq") & "' ") RS.MOVENEXT WEND END IF DBCON.EXECUTE("[ARTY30_SP_COMMENTS_REMOVE] '" & intCommentSeq & "', '" & intBoardSeq & "', '" & bitUseTrash & "', '" & intMemberSrl & "' ") ActCommentRemove = True ELSE ActCommentRemove = False END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시글 삭제 또는 휴지통 넣기 함수 * ' * 변수설명 : intSrl : 게시판 고유번호 * ' * intBoardSeq : 게시글 고유번호 * ' * intMemberSrl : 회원 고유번호 * ' * bitUseTrash : 삭제 (0), 휴지통 (1) * ' * strDefaultPath : 첨부파일 기본경로 * ' *************************************************************************************** FUNCTION ActBoardRemove(intSrl, intBoardSeq, intMemberSrl, bitUseTrash, strDefaultPath) IF intMemberSrl <> "0" THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_MEMBER_READ] '" & intMemberSrl & "' ") IF GetBoardAdminCheck(intSrl, intMemberSrl, RS("strAdmin")) = False THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_POINT_READ] '', '" & intMemberSrl & "', '', '" & intBoardSeq & "', '', '', 'write' ") IF NOT(RS.EOF) THEN DBCON.EXECUTE("[ARTY30_SP_POINT_REMOVE] '" & RS("intSeq") & "', '" & bitUseTrash & "' ") SET RS = DBCON.EXECUTE("[ARTY30_SP_COMMENTS_LIST] 'R', '" & intSrl & "', '" & intBoardSeq & "' ") DIM tmpCommentSeq WHILE NOT(RS.EOF) IF INT(RS("intMemberSrl")) = INT(intMemberSrl) THEN IF tmpCommentSeq <> "" THEN tmpCommentSeq = tmpCommentSeq & "," tmpCommentSeq = tmpCommentSeq & RS("intSeq") END IF RS.MOVENEXT WEND IF tmpCommentSeq <> "" THEN FOR EACH intCommentSeq IN SPLIT(tmpCommentSeq, ",") SET RS = DBCON.EXECUTE("[ARTY30_SP_POINT_READ] '', '" & intMemberSrl & "', '', '', '" & intCommentSeq & "', '', 'comment' ") IF NOT(RS.EOF) THEN DBCON.EXECUTE("[ARTY30_SP_POINT_REMOVE] '" & RS("intSeq") & "', '" & bitUseTrash & "' ") NEXT END IF SET RS = DBCON.EXECUTE("[ARTY30_SP_POINT_READ] '', '" & intMemberSrl & "', '', '" & intBoardSeq & "', '', '', 'upload' ") IF NOT(RS.EOF) THEN WHILE NOT(RS.EOF) DBCON.EXECUTE("[ARTY30_SP_POINT_REMOVE] '" & RS("intSeq") & "', '" & bitUseTrash & "' ") RS.MOVENEXT WEND END IF END IF END IF IF bitUseTrash = "0" THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_FILES_LIST] '', '" & intBoardSeq & "', '', 'A', '' ") WHILE NOT(RS.EOF) strPath = strDefaultPath IF RS("intCommentSeq") = "0" THEN strPath = strPath & "\board\" & RS("intSrl") ELSE strPath = strPath & "\comment\" & RS("intSrl") END IF IF RS("bitImage") = True THEN strPath = strPath & "\images\" CALL ActFileDelete(strPath & RS("strFilename")) CALL ActFileDelete(strPath & "temp\" & RS("strFilename")) CALL ActFileDelete(strPath & "thrum\" & RS("strFilename")) ELSE strPath = strPath & "\files\" CALL ActFileDelete(strPath & RS("strSid")) END IF DBCON.EXECUTE("[ARTY30_SP_FILES_REMOVE] '" & RS("intSeq") & "' ") RS.MOVENEXT WEND END IF SET RS = DBCON.EXECUTE("[ARTY30_SP_COMMENTS_LIST] 'R', '" & intSrl & "', '" & intBoardSeq & "' ") WHILE NOT(RS.EOF) DBCON.EXECUTE("[ARTY30_SP_COMMENTS_REMOVE] '" & RS("intSeq") & "', '" & intBoardSeq & "', '" & bitUseTrash & "', '" & RS("intMemberSrl") & "' ") RS.MOVENEXT WEND DBCON.EXECUTE("[ARTY30_SP_BOARD_REMOVE] '" & intBoardSeq & "', '" & bitUseTrash & "', '" & intMemberSrl & "' ") ActBoardRemove = True END FUNCTION ' *************************************************************************************** ' * 함수설명 : NULL 값을 NULL이 아닌 값으로 변환 * ' * 변수설명 : strValue : 체크값 * ' *************************************************************************************** FUNCTION GetNullTextChange(strValue) IF ISNULL(strValue) = True THEN GetNullTextChange = "" ELSE GetNullTextChange = strValue END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시판 링크 반환 * ' * 변수설명 : sub_act : 서브 액션값 * ' * strParameters : 추가 전달값 * ' *************************************************************************************** FUNCTION GetBoardUrl(sub_act, strParameters) DIM tmpUrl, strParameter SELECT CASE LCASE(sub_act) CASE "login", "logout" tmpUrl = "?act=" & sub_act CASE ELSE tmpUrl = "?act=bbs" IF sub_act <> "" THEN tmpUrl = tmpUrl & "&subAct=" & sub_act END SELECT IF REQ_strBid <> "" THEN tmpUrl = tmpUrl & "&bid=" & REQ_strBid IF INSTR(LCASE(strParameters), "search_keyword=") = 0 AND INSTR(LCASE(strParameters), "search_target=") = 0 THEN IF REQ_strSearchKeyword <> "" AND REQ_strSearchTarget <> "" THEN tmpUrl = tmpUrl & "&search_keyword=" & Server.URLEncode(REQ_strSearchKeyword) & "&search_target=" & REQ_strSearchTarget END IF IF INSTR(LCASE(strParameters), "page=") = 0 AND REQ_intPage <> "" THEN tmpUrl = tmpUrl & "&page=" & REQ_intPage IF INSTR(LCASE(strParameters), "category=") = 0 AND REQ_intCategory <> "" THEN tmpUrl = tmpUrl & "&category=" & REQ_intCategory IF INSTR(LCASE(strParameters), "order_index=") = 0 AND REQ_strOrderIndex <> "" THEN tmpUrl = tmpUrl & "&order_index=" & REQ_strOrderIndex IF INSTR(LCASE(strParameters), "order_type=") = 0 AND REQ_strOrderType <> "" THEN tmpUrl = tmpUrl & "&order_type=" & REQ_strOrderType IF INSTR(LCASE(strParameters), "list_style=") = 0 AND REQ_strListType <> "" THEN tmpUrl = tmpUrl & "&list_style=" & REQ_strListType FOR EACH strParameter IN SPLIT(strParameters, ",") IF SPLIT(strParameter, "=")(1) <> "" THEN tmpUrl = tmpUrl & "&" & SPLIT(strParameter, "=")(0) & "=" & SPLIT(strParameter, "=")(1) NEXT GetBoardUrl = tmpUrl END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시글 및 댓글 비밀번호 세션 체크 * ' * 변수설명 : intCheckSeq : 체크 번호 * ' * strCheckSeq : 저장된 세션 체크 번호 * ' *************************************************************************************** FUNCTION GetPasswordSessionCheck(intCheckSeq, strCheckSeq) IF strCheckSeq = "" THEN GetPasswordSessionCheck = False ELSE DIM intTmpSeq GetPasswordSessionCheck = False FOR EACH intTmpSeq IN SPLIT(strCheckSeq, ",") IF intTmpSeq <> "" THEN IF CDbl(intTmpSeq) = CDbl(intCheckSeq) THEN GetPasswordSessionCheck = True EXIT FOR END IF END IF NEXT END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 게시글 목록 정렬 변환 * ' * 변수설명 : strOrder : 현재 정렬상태 * ' *************************************************************************************** FUNCTION GetListSortChange(strOrder) SELECT CASE LCASE(strOrder) CASE "desc" : GetListSortChange = "asc" CASE "asc" : GetListSortChange = "desc" CASE ELSE : GetListSortChange = "desc" END SELECT END FUNCTION ' *************************************************************************************** ' * 함수설명 : 추가필드 형식에 따른 입력값 반환 * ' * 변수설명 : strValue : 등록된 정보 * ' * fieldType : 입력형식 * ' *************************************************************************************** FUNCTION GetExtraVar(strValue, fieldType) IF fieldType = "" OR ISNULL(fieldType) = True THEN GetExtraVar = "" ELSE IF strValue = "" OR ISNULL(strValue) = True THEN GetExtraVar = "" ELSE SELECT CASE fieldType CASE "url" : GetExtraVar = "" & strValue & "" CASE "email" : GetExtraVar = "" & strValue & "" CASE "text", "textarea", "checkbox", "select", "radio", "tel" : GetExtraVar = strValue CASE "date" : GetExtraVar = LEFT(strValue, 4) & "-" & MID(strValue, 5, 2) & "-" & MID(strValue, 7, 2) CASE "addr" : GetExtraVar = REPLACE(strValue, "$$$", " ") CASE "datetime" : IF strValue = "" THEN GetExtraVar = "" ELSE GetExtraVar = SPLIT(strValue, "$$$")(0) & "-" & SPLIT(strValue, "$$$")(1) & "-" & SPLIT(strValue, "$$$")(2) & " " & SPLIT(strValue, "$$$")(3) & ":" & SPLIT(strValue, "$$$")(4) END IF END SELECT END IF END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 아이피 주소 마지막 값 숨김 * ' * 변수설명 : strIpAddr : 아이피주소 * ' *************************************************************************************** FUNCTION GetHiddenIpAddr(strIpAddr) IF strIpAddr <> "" AND ISNULL(strIpAddr) = False THEN GetHiddenIpAddr = SPLIT(strIpAddr, ".")(0) & "." & SPLIT(strIpAddr, ".")(1) & ".xxx." & SPLIT(strIpAddr, ".")(3) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 닉네임 체크 (사용 불가능한 특수문자 제한) * ' * 변수설명 : str : 입력값 * ' * strLen : 입력길이 제한값 * ' *************************************************************************************** FUNCTION GetNickNameCheck(str, strLen) IF LEN(str) < strLen THEN GetNickNameCheck = False ELSE DIM tmpFor FOR tmpFor = 1 TO LEN(str) IF ASC(MID(str, tmpFor, 1)) >= 33 AND ASC(MID(str, tmpFor, 1)) <= 47 THEN IF ASC(MID(str, tmpFor, 1)) = 45 OR ASC(MID(str, tmpFor, 1)) = 46 THEN GetNickNameCheck = True ELSE GetNickNameCheck = False EXIT FOR END IF ELSEIF ASC(MID(str, tmpFor, 1)) >= 58 AND ASC(MID(str, tmpFor, 1)) <= 64 THEN GetNickNameCheck = False EXIT FOR ELSEIF ASC(MID(str, tmpFor, 1)) >= 91 AND ASC(MID(str, tmpFor, 1)) <= 96 THEN IF ASC(MID(str, tmpFor, 1)) = 95 THEN GetNickNameCheck = True ELSE GetNickNameCheck = False EXIT FOR END IF ELSEIF ASC(MID(str, tmpFor, 1)) >= 123 OR ASC(MID(str, tmpFor, 1)) = 126 THEN GetNickNameCheck = False EXIT FOR ELSE GetNickNameCheck = True END IF NEXT END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 회원아이디 체크 (사용 불가능한 특수문자 제한) * ' * 변수설명 : str : 입력값 * ' * strLen : 입력길이 제한값 * ' *************************************************************************************** FUNCTION GetUserIDCheck(str, strLen) IF LEN(str) < strLen THEN GetUserIDCheck = False ELSE IF ASC(MID(str, 1, 1)) = 46 THEN GetUserIDCheck = False EXIT FUNCTION END IF IF ASC(MID(str, LEN(str), 1)) = 46 THEN GetUserIDCheck = False EXIT FUNCTION END IF DIM tmpFor FOR tmpFor = 1 TO LEN(str) IF ASC(MID(str, tmpFor, 1)) >= 65 AND ASC(MID(str, tmpFor, 1)) <= 90 THEN GetUserIDCheck = True ELSEIF ASC(MID(str, tmpFor, 1)) >= 97 AND ASC(MID(str, tmpFor, 1)) <= 122 THEN GetUserIDCheck = True ELSEIF ASC(MID(str, tmpFor, 1)) >= 48 AND ASC(MID(str, tmpFor, 1)) <= 57 THEN GetUserIDCheck = True ELSEIF ASC(MID(str, tmpFor, 1)) = 45 OR ASC(MID(str, tmpFor, 1)) = 46 OR ASC(MID(str, tmpFor, 1)) = 95 THEN GetUserIDCheck = True ELSE GetUserIDCheck = False EXIT FOR END IF NEXT END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : INT 값 MONEY 변형 함수 * ' * 변수설명 : intValue = 변환할 값 * ' *************************************************************************************** FUNCTION GetMoneyComma(intValue) IF intValue <> "" AND ISNULL(intValue) = False THEN GetMoneyComma = MID(FORMATCURRENCY(intValue), 2, LEN(FORMATCURRENCY(intValue))) ELSE GetMoneyComma = 0 END FUNCTION ' *************************************************************************************** ' * 함수설명 : 회원 그룹 및 레벨 이미지 반환 * ' * 변수설명 : strGroupLevel = 회원그룹코드,레벨 * ' * bitDispLevelIcon = 레벨아이콘 출력유무 (True or False) * ' * strLevelIconFolder = 레벨아이콘 폴더 * ' * strFilePath = 파일저장 경로 * ' *************************************************************************************** FUNCTION GetMemberGroupLevelIcon(strGroupLevel, bitDispLevelIcon, strLevelIconFolder, strFilePath) DIM strGroupImg, strLevelImg, strReturn IF strGroupLevel <> "" AND ISNULL(strGroupLevel) = False THEN strGroupImg = GetFolderFileList(GetNowFolderPath("") & "\" & strFilePath & "\member\group\" & SPLIT(strGroupLevel, ",")(0) & "\") IF strGroupImg <> "" THEN strGroupImg = strFilePath & "/member/group/" & SPLIT(strGroupLevel, ",")(0) & "/" & strGroupImg IF bitDispLevelIcon = True THEN strLevelImg = strFilePath & "/member/level/" & strLevelIconFolder & "/" & SPLIT(strGroupLevel, ",")(1) & ".gif" END IF END IF strReturn = "" IF strGroupImg <> "" THEN strReturn = strReturn & "" IF strLevelImg <> "" THEN strReturn = strReturn & "" GetMemberGroupLevelIcon = strReturn END FUNCTION ' *************************************************************************************** ' * 함수설명 : 회원 사진, 마크, 이름 이미지 반환 * ' * 변수설명 : intMemberSrl = 회원고유번호 * ' * bitUse = 사용유무 (True or False) * ' * strImageType = 이미지 구분 * ' * strPdsPath = 파일저장 경로 * ' * dispType = 이미지 또는 파일명 * ' * intWidth = 이미지 너비 * ' * intHeight = 이미지 높이 * ' *************************************************************************************** FUNCTION GetMemberImage(intMemberSrl, bitUse, strImageType, strPdsPath, dispType, intWidth, intHeight) DIM strFileName IF intMemberSrl > 0 THEN IF bitUse = True THEN strFileName = GetFolderFileList(GetNowFolderPath("") & "\" & strPdsPath & "\member\" & strImageType & "\" & intMemberSrl & "\") IF strFileName = "" THEN GetMemberImage = "" ELSE SELECT CASE dispType CASE "image" GetMemberImage = " "profile" THEN GetMemberImage = GetMemberImage & "margin-right:3px;" GetMemberImage = GetMemberImage & """ class=""member_" & strImageType & """>" CASE "file" : GetMemberImage = strFileName END SELECT END IF ELSE GetMemberImage = "" END IF ELSE GetMemberImage = "" END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 날짜 추가 반환 * ' * 변수설명 : strDate = 기준날짜 * ' * strAddType = 추가 구분 (년,월,일,시,분등) * ' * intAdd = 추가수치 * ' *************************************************************************************** FUNCTION GetDateAdd(strDate, strAddType, intAdd) IF strDate = "" THEN GetDateAdd = "" ELSE GetDateAdd = DATEADD(strAddType, intAdd, strDate) END FUNCTION ' *************************************************************************************** ' * 함수설명 : 한글 및 영문 단어 개수 반환 * ' * 변수설명 : str = 입력값 * ' * retType = k : 한국어, e : 영문 * ' *************************************************************************************** FUNCTION GetLangWordCheck(str, retType) DIM eCount, kCount eCount = 0 kCount = 0 FOR tmpLen = 1 TO LEN(str) IF ASC(MID(str, tmpLen, 1)) >= 97 AND ASC(MID(str, tmpLen, 1)) <= 122 THEN eCount = eCount + 1 ELSE IF ASC(MID(str, tmpLen, 1)) >= 65 AND ASC(MID(str, tmpLen, 1)) <= 90 THEN eCount = eCount + 1 ELSE IF ASC(MID(str, tmpLen, 1)) >= 48 AND ASC(MID(str, tmpLen, 1)) <= 57 THEN eCount = eCount + 1 ELSE IF ASC(MID(str, tmpLen, 1)) = 45 THEN eCount = eCount + 1 ELSE kCount = kCount + 1 END IF END IF END IF END IF NEXT IF retType = "k" THEN GetLangWordCheck = kCount ELSE GetLangWordCheck = eCount END FUNCTION ' *************************************************************************************** ' * 함수설명 : 금지단어 체크 * ' * 변수설명 : strSplit = 금지단어 목록, strFind = 입력값 * ' *************************************************************************************** FUNCTION GetSplitFindWord(strSplit, strFind) IF strSplit <> "" AND ISNULL(strSplit) = False AND strFind <> "" AND ISNULL(strFind) = False THEN strSplit = SPLIT(strSplit, ",") FOR EACH p IN strSplit IF INSTR(strFind, p) > 0 THEN GetSplitFindWord = False EXIT FUNCTION ELSE GetSplitFindWord = True END IF NEXT ELSE GetSplitFindWord = True END IF END FUNCTION ' *************************************************************************************** ' * 함수설명 : 모바일 접속 체크 * ' *************************************************************************************** FUNCTION GetMobileConnect() DIM mobile, i, n, strAgent i = 0 IF LEN(Request.ServerVariables("HTTP_USER_AGENT")) = 0 THEN GetMobileConnect = False ELSE mobile = Array("iPhone", "ipad", "BlackBerry", "Android", "Windows CE", "LG", "MOT", "SAMSUNG", "SonyEricsson") FOR EACH n IN mobile IF (INSTR(LCASE(Request.ServerVariables("HTTP_USER_AGENT")), LCASE(n)) > 0) THEN i = i + 1 END IF NEXT END IF IF i <> 0 THEN GetMobileConnect = True ELSE GetMobileConnect = False END FUNCTION ' *************************************************************************************** ' * 함수설명 : SSL 보안서버 URL 변경 * ' * 변수설명 : sslPort = SSL 포트 * ' *************************************************************************************** FUNCTION GelSSLUrl(sslPort) DIM strServerName, strServerPort, strUrlQuery strServerName = Request.ServerVariables("server_name") strServerPort = Request.ServerVariables("server_port") strUrlPath = REPLACE(Request.ServerVariables("path_info"), SPLIT(Request.ServerVariables("path_info"), "/")(UBOUND(SPLIT(Request.ServerVariables("path_info"), "/"))), "") strUrlQuery = Request.ServerVariables("query_string") GelSSLUrl = "https://" & strServerName & ":" & sslPort & strUrlPath IF strUrlQuery <> "" THEN GelSSLUrl = GelSSLUrl & "?" & strUrlQuery END FUNCTION %> <% DIM Act, subAct, strPageID Act = LCASE(GetInputReplce(REQUEST.QueryString("Act"), "")) subAct = LCASE(GetInputReplce(REQUEST.QueryString("subAct"), "")) strPageID = LCASE(GetInputReplce(REQUEST.QueryString("pid"), "")) DIM CONF_strBrowserTitle, CONF_strLayoutCode, CONF_strSKinName, CONF_strHeaderHtml, CONF_strFooterHtml, CONF_bitDispReadList DIM CONF_skinExecuteFile, CONF_bitMobileMode IF Act = "" THEN IF strPageID = "" THEN Act = "bbs" ELSE Act = "page" END IF SELECT CASE Act CASE "member", "login", "logout" SET RS = DBCON.EXECUTE("[ARTY30_SP_MEMBER_CONFIG_READ] ") CONF_strBrowserTitle = RS("strBrowserTitle") CONF_strLayoutCode = RS("strLayoutCode") CONF_strSKinName = RS("strSKinName") CONF_bitDispAgree = RS("bitDispAgree") CONF_bitUseCertified = RS("bitUseCertified") SELECT CASE Act CASE "member" IF subAct = "" THEN IF CONF_bitDispAgree = True THEN subAct = "agree" ELSE SET RS = DBCON.EXECUTE("[ARTY30_SP_MEMBER_FORM_READ] 'strSSN' ") IF RS("bitUse") = True AND RS("bitRquired") = True THEN subAct = "ssncheck" ELSE IF CONF_bitUseCertified = True THEN subAct = "certified" ELSE subAct = "dispform" END IF END IF END IF SELECT CASE subAct CASE "agree" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.agree.asp" CASE "ssncheck" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.ssn.asp" CASE "certified" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.certified.asp" CASE "dispform" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.join.asp" CASE "joinresult" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.join.result.asp" CASE "info" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.info.asp" CASE "modify" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.modify.check.asp" CASE "modifyform" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.modify.asp" CASE "modifyresult" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.modify.result.asp" CASE "modifypwd" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.modify.pwd.asp" CASE "out" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.out.asp" CASE "outresult" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.out.result.asp" CASE "findid" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/account.id.form.asp" CASE "findidresult" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/account.id.result.asp" CASE "findpwd" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/account.pwd.form.asp" CASE "findpwdresult" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/account.pwd.result.asp" CASE "messagesend" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/message.send.asp" CONF_strLayoutCode = "" CASE "message" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/message.list.asp" CASE "messageread" CONF_strLayoutCode = "" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/message.read.asp" CASE "friend" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.friend.asp" CASE "friendadd", "friendmodify" CONF_strLayoutCode = "" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.friend.add.asp" CASE "friendgroup" CONF_strLayoutCode = "" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.friend.group.asp" CASE "scrap" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.scrap.asp" CASE "document" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/member.document.asp" END SELECT CASE "login" CONF_skinExecuteFile = "skin/member/" & CONF_strSKinName & "/login.form.asp" CASE "logout" CONF_skinExecuteFile = "libs/logout.asp" CONF_strLayoutCode = "" END SELECT IF CONF_strUseSSL = "yes" THEN IF Request.ServerVariables("server_port") <> CONF_intHttpsPort THEN RESPONSE.REDIRECT GelSSLUrl(CONF_intHttpsPort) RESPONSE.End() END IF END IF CASE "bbs" DIM REQ_strBid, REQ_intPage, REQ_intCategory, REQ_strOrderIndex, REQ_strOrderType, REQ_strSearchTarget DIM REQ_strSearchKeyword, REQ_strListType, REQ_intSeq REQ_strBid = GetInputReplce(REQUEST.QueryString("bid"), "S") REQ_intPage = GetInputReplce(REQUEST.QueryString("page"), "") REQ_intCategory = GetInputReplce(REQUEST.QueryString("category"), "") REQ_strOrderIndex = GetInputReplce(REQUEST.QueryString("order_index"), "") REQ_strOrderType = GetInputReplce(REQUEST.QueryString("order_type"), "") REQ_strSearchTarget = GetInputReplce(REQUEST.QueryString("search_target"), "") REQ_strSearchKeyword = GetInputReplce(REQUEST.QueryString("search_keyword"), "S") REQ_strListType = GetInputReplce(REQUEST.QueryString("list_style"), "") REQ_intSeq = GetInputReplce(REQUEST.QueryString("seq"), "") SET RS = DBCON.EXECUTE("[ARTY30_SP_BOARD_CONFIG_READ] '', '" & REQ_strBid & "' ") IF RS.EOF THEN RESPONSE.WRITE "ERROR" RESPONSE.End() END IF CONF_intSrl = RS("intSrl") CONF_strBrowserTitle = RS("strBrowserTitle") IF GetMobileConnect = True AND RS("bitUseMobile") = True THEN CONF_bitMobileMode = True ELSE CONF_bitMobileMode = False IF CONF_bitMobileMode = True THEN CONF_strLayoutCode = RS("strMobileLayoutCode") CONF_strSKinName = RS("strMobileSKinName") CONF_strSkinLang = RS("strMobileSkinLang") CONF_strSkinColor = RS("strMobileSkinColor") CONF_skinPath = "skin/m_board/" & CONF_strSkinName & "/" ELSE CONF_strLayoutCode = RS("strLayoutCode") CONF_strSKinName = RS("strSKinName") CONF_strSkinLang = RS("strSkinLang") CONF_strSkinColor = RS("strSkinColor") CONF_skinPath = "skin/board/" & CONF_strSkinName & "/" END IF CONF_strHeaderHtml = RS("strHeaderHtml") CONF_strFooterHtml = RS("strFooterHtml") CONF_bitDispReadList = RS("bitDispReadList") CONF_strOrderField = RS("strOrderField") CONF_strOrderDescAsc = RS("strOrderDescAsc") CONF_bitUseCategory = RS("bitUseCategory") CONF_bitUseConsult = RS("bitUseConsult") CONF_intListCount = RS("intListCount") 'L CONF_bitBoardAdmin = GetBoardAdminCheck(CONF_intSrl, SESSION("memberSeq"), SESSION("staff")) IF REQ_strOrderIndex = "" THEN REQ_strOrderIndex = CONF_strOrderField IF REQ_strOrderType = "" THEN REQ_strOrderType = CONF_strOrderDescAsc IF REQ_intCategory <> "" THEN IF GetNumericCheck(REQ_intCategory, "i") = False THEN REQ_intCategory = "" END IF IF REQ_intSeq <> "" THEN IF GetNumericCheck(REQ_intSeq, "i") = False THEN REQ_intSeq = 0 END IF IF REQ_intPage = "" THEN IF subAct = "view" THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_BOARD_LIST] '" & CONF_intSrl & "', 'P', '" & REQ_intCategory & "', '', '', '" & GetBoardSearchField(REQ_strSearchTarget) & "', '" & REQ_strSearchKeyword & "', '', '', '" & GetBitTypeNumberChg(CONF_bitUseConsult) & "', '" & SESSION("memberSeq") & "', '', '" & REQ_intSeq & "' ") REQ_intPage = INT(RS(0) / CONF_intListCount) + 1 ELSE REQ_intPage = 1 END IF ELSE IF GetNumericCheck(REQ_intPage, "i") = False THEN intPage = 1 END IF IF subAct = "" THEN subAct = "list" SELECT CASE subAct CASE "list" CONF_skinExecuteFile = CONF_skinPath & "list.asp" CASE "view" CONF_skinExecuteFile = CONF_skinPath & "view.asp" CASE "write", "modify" CONF_skinExecuteFile = CONF_skinPath & "write.asp" CASE "remove" CONF_skinExecuteFile = CONF_skinPath & "board.remove.asp" CASE "message" CONF_skinExecuteFile = CONF_skinPath & "message.asp" CASE "password" CONF_skinExecuteFile = CONF_skinPath & "password.asp" CASE "comment_modify", "comment_reply" CONF_skinExecuteFile = CONF_skinPath & "comment.write.asp" CASE "comment_remove" CONF_skinExecuteFile = CONF_skinPath & "comment.remove.asp" CASE "filedown" CONF_skinExecuteFile = "libs/file.down.asp" CASE "tag" CONF_skinExecuteFile = CONF_skinPath & "tag.asp" CASE "category" IF CONF_bitMobileMode = True THEN CONF_skinExecuteFile = CONF_skinPath & "category.asp" ELSE CONF_skinExecuteFile = CONF_skinPath & "list.asp" END IF END SELECT CASE "page" SET RS = DBCON.EXECUTE("[ARTY30_SP_PAGE_READ] '" & strPageID & "' ") IF RS.EOF OR RS("bitUse") = False THEN RESPONSE.End() END IF CONF_strBrowserTitle = RS("strBrowserTitle") CONF_strLayoutCode = RS("strLayoutCode") DIM strPageContent, strPageContentFile SELECT CASE RS("strAccessType") CASE "1" IF SESSION("memberSeq") = "" THEN RESPONSE.WRITE ActFormSubmit("", "?act=login", "post", "strPrevUrl", "/" & REPLACE(LCASE(CONF_strBbsUrl), LCASE(CONF_strSiteUrl), "") & "?pid=" & strPageID) RESPONSE.End() END IF CASE "2" IF INSTR(RS("strAccessGroup"), SESSION("memberGroup")) < 0 THEN RESPONSE.WRITE ActJsAlertMsg(RS("strMessage"), "", "") RESPONSE.End() END IF END SELECT IF RS("strPageType") = "0" THEN strPageContent = RS("strContent") ELSE strPageContentFile = RS("strContentFile") END IF CASE "document" SET RS = DBCON.EXECUTE("[ARTY30_SP_BOARD_CONFIG_READ] '', '" & GetInputReplce(REQUEST.QueryString("bid"), "") & "' ") IF RS.EOF THEN RESPONSE.WRITE "ERROR" RESPONSE.End() END IF CONF_strBrowserTitle = RS("strBrowserTitle") CONF_strLayoutCode = "" CONF_skinExecuteFile = "libs/board.print.asp" CASE "search" SET RS = DBCON.EXECUTE("[ARTY30_SP_SEARCH_CONFIG] ") CONF_strBrowserTitle = RS("strBrowserTitle") CONF_strLayoutCode = RS("strLayoutCode") CONF_strSKinName = RS("strSKinName") CONF_strSkinLang = RS("strSkinLang") CONF_strSkinColor = RS("strSkinColor") CONF_skinExecuteFile = "skin/search/" & CONF_strSKinName & "/list.asp" END SELECT %> <% IF CONF_bitMobileMode = True THEN %><% END IF %> <% IF CONF_bitMobileMode = False THEN %> <% END IF %> <% RESPONSE.AddHeader "Pragma","no-cache" RESPONSE.AddHeader "Cache-Control","private" RESPONSE.CacheControl = "no-chche" RESPONSE.Buffer = True RESPONSE.Expires = -1 SELECT CASE Act CASE "bbs" %>
<% CASE "search" %> <% END SELECT IF CONF_strLayoutCode <> "" THEN SET RS = DBCON.EXECUTE("[ARTY30_SP_LAYOUT_READ] '" & CONF_strLayoutCode & "' ") IF NOT(RS.EOF) THEN IF RS("bitUse") = True THEN LAYOUT_strHeaderConts = RS("strHeaderConts") LAYOUT_strBrowserTitle = RS("strBrowserTitle") IF CONF_strBrowserTitle = "" OR ISNULL(CONF_strBrowserTitle) = True THEN CONF_strBrowserTitle = LAYOUT_strBrowserTitle LAYOUT_strLayoutStyle = GetLayoutStyle(RS("strLayoutAlign"), RS("intLayoutWidth"), RS("strLayoutWidth"), RS("strLayoutMargin"), RS("strBackType"), RS("strBackColor"), RS("strBackImg"), RS("strBackImgRepeat"), CONF_strFilePath & "/site/layout/") LAYOUT_strUserStyle = RS("strUserStyle") LAYOUT_strHeaderFile = RS("strHeaderFile") LAYOUT_strHeaderHtml = RS("strHeaderHtml") LAYOUT_strFooterFile = RS("strFooterFile") LAYOUT_strFooterHtml = RS("strFooterHtml") END IF END IF END IF SELECT CASE Act CASE "page", "document", "search" CASE ELSE %> <% END SELECT %> <%=CONF_strBrowserTitle%> <% IF LAYOUT_strHeaderConts <> "" AND ISNULL(LAYOUT_strHeaderConts) = False THEN RESPONSE.WRITE LAYOUT_strHeaderConts %> <% IF LAYOUT_strUserStyle <> "" THEN %> <% END IF %> id="boardLayout"> <% IF LAYOUT_strHeaderFile <> "" AND ISNULL(LAYOUT_strHeaderFile) = False THEN SERVER.EXECUTE(LAYOUT_strHeaderFile) IF LAYOUT_strHeaderHtml <> "" AND ISNULL(LAYOUT_strHeaderHtml) = False THEN RESPONSE.WRITE LAYOUT_strHeaderHtml IF CONF_strHeaderHtml <> "" AND ISNULL(CONF_strHeaderHtml) = False THEN RESPONSE.WRITE CONF_strHeaderHtml IF CONF_skinExecuteFile = "" THEN IF strPageContent <> "" THEN RESPONSE.WRITE strPageContent ELSE SERVER.EXECUTE(strPageContentFile) END IF ELSE SERVER.EXECUTE(CONF_skinExecuteFile) IF Act = "bbs" AND subAct = "view" AND CONF_bitDispReadList = True AND CONF_bitMobileMode = False THEN SERVER.EXECUTE("skin/board/" & CONF_strSKinName & "/list.asp") END IF IF CONF_strFooterHtml <> "" AND ISNULL(CONF_strFooterHtml) = False THEN RESPONSE.WRITE CONF_strFooterHtml IF LAYOUT_strFooterHtml <> "" AND ISNULL(LAYOUT_strFooterHtml) = False THEN RESPONSE.WRITE LAYOUT_strFooterHtml IF LAYOUT_strFooterFile <> "" AND ISNULL(LAYOUT_strFooterFile) = False THEN SERVER.EXECUTE(LAYOUT_strFooterFile) %> <% SET RS = NOTHING : DBCON.CLOSE : SET objXmlLang = NOTHING %>