'ASP/TIP'에 해당되는 글 6건

  1. 2010.02.19 OWC(Office Web Components) 11 버전 설치시 ASP에서 객체 생성방법
  2. 2010.01.06 ASP용 CAPTCHA 소스
  3. 2009.11.27 ASP로 GUID 생성하기
  4. 2009.11.27 지정한 문자열 길이만큼 문자열을 반환하는 함수
  5. 2009.11.27 윈도우2003서버에서 asp 버퍼 제한 에러 해결 방법
  6. 2009.01.13 CGZipLibrary를 이용하여 ASP에서 파일 압축 및 압축 해제하기

OWC(Office Web Components) 11 버전 설치시 ASP에서 객체 생성방법

ASP/TIP 2010. 2. 19. 20:12
<%
	Dim objChart

	'// 아래와 같이 객체를 생성하면 OWC 11 에서는 오류가 발생한다.
	Set objChart = Server.CreateObject("OWC.Chart")
	Set objChart = Nothing

	'// OWC 11 에서 정상적으로 객체 생성하는 방법
	Set objChart = Server.CreateObject("OWC11.ChartSpace")
	Set objChart = Nothing

	Set objChart = Server.CreateObject("OWC11.Spreadsheet")
	Set objChart = Nothing
%>
:

ASP용 CAPTCHA 소스

ASP/TIP 2010. 1. 6. 00:38
위키피디아에는 CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 자동가입방지)를 어떠한 사용자가 실제 인간인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법으로, 인간은 구별할 수 있지만 컴퓨터는 구별하기 힘들게 의도적으로 비틀어 놓거나 그림을 주고 그 그림에 쓰여 있는 내용을 물어보는 방법에 사용되는 된다고 풀이되어 있습니다.

최근 게시판이나 회원가입시 로봇프로그램 등을 이용하여 자동으로 회원가입을 하거나 스팸 게시물을 올리는 것을 방지하기 위해서 실시간으로 변경되는 숫자나 문자 이미지를 사용하는 것을 종종 볼 수 있습니다.

ASP에서는 쉽게 구현할 수 있는 기능이 아니라고 생각되어서 검색을 하던 중 해당 기능을 구현한 공개 소스가 있어서 소개하고자 합니다.

http://www.tipstricks.org/ 에서는 Classic ASP Security Image Generator 를 이용하여 CAPTCHA를 구현하고 있습니다.

사이트에서 소개하고 있는 내용은 다음과 같습니다.

Generate images with letters and numbers to make a CAPTCHA test.
  • Completely FREE Classic ASP VBScript.
  • The secure code is completely random.
  • Dynamic image processing.
  • No image file requires.
  • No components requires.
  • Create a cross browser compatible BMP images.
  • You can use a custom color palette for image.

* User browsers must support cookies and ASP session state must be enabled

공개된 소스는 3가지 형태로 제공되고 있습니다.

  • 숫자로만 이미지를 보여주는 소스 : captcha_numbers.zip
  • 문자(영문)로만 이미지를 보여주는 소스 : captcha_words.zip
  • 숫자와 문자를 섞어서 이미지를 보여주는 소스 : captcha_numchar.zip

아쉽게도 현재 더 이상 개선작업을 위한 개발은 진행되지 않고 있으나 현재 기능으로도 충분히 원하는 기능을 구현하는데는 부족함이 없습니다.

소스를 다운로드 받아서 압축을 풀어보면 captcha.asp 와 test.asp 두개의 파일이 들어있습니다.
captcha.asp 는 이미지파일을 생성하는 소스이며 test.asp 에서는 실제 사용하는 방법을 소개한 예제 파일이 들어있습니다. 따라서 test.asp 파일을 분석하면 사용방법을 쉽게 익힐 수 있습니다.

:

ASP로 GUID 생성하기

ASP/TIP 2009. 11. 27. 17:04
<%
    Dim strGUID
    '// GUID 생성하기
    strGUID = fnGetGuid()

    '// 생성된 GUID를 화면에 출력
    Response.Write strGUID

    '// GUID 생성해서 값을 리턴하는 함수
    Function fnGetGUID()
        Dim myTypeLib
        Set myTypeLib = Server.CreateObject("Scriptlet.Typelib")
        fnGetGUID = myTypeLib.guid
        Set myTypeLib = Nothing
    End Function
%>
:

지정한 문자열 길이만큼 문자열을 반환하는 함수

ASP/TIP 2009. 11. 27. 16:59
<%
    Function fnGetCutString(strString, intCutLen, strDiv)
        Dim intLen '// 문자열 길이
        Dim intByte '// byte 수
        Dim strCutString
        Dim strRes
        Dim strChar
        Dim intX
        intLen = 0
        intByte = 0
        strRes = ""
        intLen = Len(strString)

        For intX = 1 to intLen
            strChar = ""
            strCutString = Mid(strString, intX, 1)        '//    일단 1만큼 잘라서 strCutString에 저장한다.
            strChar = Asc(strCutString)        '//    아스키 코드값 읽어오기
            strChar = Left(strChar, 1)
            If strChar = "-" Then            '//    "-"이면 2바이트 문자임
                intByte = intByte + 2
            Else
                intByte = intByte + 1
            End If
            If intCutLen < intByte Then
                '// 현재 문자열 byte 수가 지정한 byte 수보다 크면 For 문을 빠져나간다.
                strRes = strRes & strDiv
                Exit For
            Else
                '// 현재 문자열 byte 수가 지정한 byte 수보다 작으면 strRes 에 잘라낸 문자열을 추가한다.
                strRes = strRes & strCutString
            End If
        Next
        fnGetCutString = strRes
    End Function

    '// 함수 사용 예제
    Dim strSubject
    strSubject = "소비자를 중심으로 소비자의 심리를 이해하고 마케팅을 하는 고객지향적 마케팅 기법"

    '// strSubject 변수에 지정된 문자열의 첫 40 byte 만 가져오고 문자열이 40byte 보다 크면 ".." 로 대체한다.
    Response.Write(fnGetCutString(strSubject, 40, ".."))

    '// "소비자를 중심으로 소비자의 심리를 이해하.." 가 화면에 출력된다.
%>
:

윈도우2003서버에서 asp 버퍼 제한 에러 해결 방법

ASP/TIP 2009. 11. 27. 16:56

1. IIS6.0 콘솔에서 컴퓨터이름에서 속성 - 메타베이스 직접 편집 허용 체크합니다.

2. %SystemRoot%\System32\Inetsrv\Metabase.xml 을 메모장으로 엽니다.

3. AspBufferingLimit = "4194304" 값을 크게 변경합니다.  => -1 로 지정하면 가장 큰 값으로 할당됩니다.

4. IIS를 Reset 한 후 확인합니다.

:

CGZipLibrary를 이용하여 ASP에서 파일 압축 및 압축 해제하기

ASP/TIP 2009. 1. 13. 16:22

가끔 ASP로 작업을 하다보면 파일을 압축하거나 압축해제를 해야하는 경우가 생깁니다. 그런데 ASP에서는 이런 기능을 제공하지 않기 때문에 서버용 콤포넌트를 개발해서 사용해야됩니다.

일반개발자들이 이런 서버용 콤포넌트를 개발하기란 쉽지 않습니다. 그래서 몇 군데 자료를 찾다가 괜찮은 압축처리 콤포넌트를 찾아 소개합니다.

첨부된 GZipLibrary.dll 파일을 다운로드 받아서 레지스트리에 등록해야합니다. 다운로드 받은 dll 파일의 경로는 아무곳이나 상관없지만 일반적으로 C:\Windows\System32 폴더나 C:\Windows\System 폴더에 복사를 한후 등록을 합니다.(일부 OS의 경우는 C:\Windows 폴더 대신 C:\WinNT 폴더)

레지스터리에 등록하는 방법은 다음과 같습니다.

시작 > 실행을 눌러서 열기항목에 regsvr32 [CGZipLibrary.dll 이 있는 폴더경로]\CGZipLibrary.dll 라고 입력하고 엔터를 누릅니다.

예를 들어서 C:\Windows\System32 폴더에 CGZipLibrary.dll 파일이 있다면

regsvr32 C:\Windows\System32\CGZipLibrary.dll

라고 입력해서 등록합니다.

ASP에서 압축 및 압축해제 처리하는 예제 소스는 아래와 같습니다.

[ASP 소스 예제]

<%
    '=====================================================
    ' 압축
    '=====================================================
    Dim oZip
    Set oZip = Server.CreateObject("CGZipLibrary.CGZipFiles")

    ' 압축할 파일을 추가합니다.
    oZip.AddFile "C:\Inetpub\wwwroot\default.asp"
    oZip.AddFile "C:\Inetpub\wwwroot\test.txt"
    ' 이렇게하면 폴더안의 모든파일/폴더 압축합니다.
    'oZip.AddFile "C:\Inetpub\wwwroot\*.*"
    ' 압축 파일 이름을 지정합니다.
    oZip.ZipFileName = "C:\Inetpub\wwwroot\ziptest\test.zip"
    oZip.UpdatingZip = False

    ' 오류가 발생하면 오류 내용을 출력합니다.
    If oZip.MakeZipFile <> 0 Then
        Response.Write(oZip.GetLastMessage)
    End If
    Set oZip = Nothing
    '=====================================================

    ' 압축 해제
    '=====================================================
    Dim oUnZip
    Set oUnZip = Server.CreateObject("CGZipLibrary.CGUnzipFiles")
    ' 압축파일이름을 지정합니다.
    oUnZip.ZipFileName = "C:\Inetpub\wwwroot\ziptest\test.zip"
    ' 압축파일 내용을 풀 경로를 지정합니다.
    oUnZip.ExtractDir = "C:\Inetpub\wwwroot\ziptest\extractfolder"
    ' 오류가 발생하면 오류 내용을 출력합니다.
    If oUnZip.Unzip <> 0 Then
        Response.Write(oUnZip.GetLastMessage)
    End If
    Set oUnZip = Nothing
%>
참고한 정보들 입니다.

코드구루 zip/unzip 관련 글


http://www.codeguru.com/vb/gen/vb_graphics/fileformats/article.php/c6743/

위의 url에서 압축관련 모듈을 다운받으면 VB에서 실행해볼 수 있습니다. 압축풀면GZipLibrary.dll 파일이있는데 여기에 올린 파일은 코드구루에 있는 CGZipLibrary.dll 파일이 아주 조금 틀립니다. 코드구루의CGZipLibrary.dll 은 압축할때 디렉토리 경로까지 압축을 합니다.

원본 소스를 수정한 내용은 CGZipFiles.cls 파일에서 MakeZipFile 함수를 보면 iIgnorePath 부분 변수 사용한곳이있는데그곳의 값을 '1' 로 수정한후 재컴파일 하였습니다.
이 값은 0 과 1 두가지 옵션이 있는데 '0' 일 경우 디렉토리 경로까지 압축하고'1' 일경우엔 경로무시합니다.

: