'Programing/ASP & XML & DOM'에 해당되는 글 4건

  1. 2006/06/28 회원별 가상주소 발급의 구현 (WIN+IIS+ASP 환경)
  2. 2006/04/18 SiteGalaxyUpload.Form.1 오류 '80004005' (2)
  3. 2006/02/10 CSS를 이용한 대문자 입력
  4. 2006/02/09 ASP & XML #1

회원별 가상주소 발급의 구현 (WIN+IIS+ASP 환경)

|

제목

회원별 가상주소 발급의 구현  (WIN+IIS+ASP 환경)

작성자

송준우 ( http://iendev.com http://blog.nbloger.com/iendev )

업데이트

2004년 5월 26일

라이센스

출처만 밝혀주신다면 어디든지 가져가실수 있습니다.

단, 본 문서를 임의로 수정하여 배포하지는 말아주십시오.

블로그나 미니홈피,클럽등의 서비스를 제공함에 있어서 계정 사용자에게 가상적으로 주소를 발급하기 위한 방법입니다. 설명의 편의상 제가 개인적으로 운영하고 있는 http://nbloger.com 을 예로 들었습니다. 그리고 다음 두가지 형태로 분류하여 설명하도록 하겠습니다.

1. http://아이디.nbloger.com
이 형태는 윈도우즈 DNS 상의 편집을 필요로 합니다. 즉, * 라는 host 명을 가지는 호스트를 추가시켜 주셔야 합니다. 물론 기본적인 윈도우즈 DNS GUI 환경에서는  편집이 불가능합니다. 따라서 zone 파일을 직접 수정하셔야 합니다. zone 파일은 텍스트 형태로서 winnt/system32/dns 폴더도메인.dns 형태로 존재합니다. 예컨데 nbloger.com 이라는 zone 파일의 최하단에 다음과 같이 host 리스트들이 존재한다면..

;
;  Zone records
;
@                      A   IP
blog                  A   IP
www                 A   IP


최하단에 다음과 같이 추가하여 주십시오.


*                       A   IP

DNS를 새로고침 하신 이후 DNS의 MMC를 보시면 * 라는 host 가 추가된 것을 확인하실수 있습니다.

이제는 IIS에서 작업을 하셔야 합니다. IIS에서 웹사이트 추가후 웹사이트 등록정보에서 웹사이트 탭에 보시면 IP 적는란 오른쪽에 고급 이라는 버튼이 있습니다. 이 버튼을 클릭하신후 나타나는 창(고급 복수 웹사이트 구성)에서 아래와 같이 추가하여 주십시오.


IP : 해당 IP

포트 : 일반적으로 80

호스트헤더 이름 : 입력하지 마십시오.

지금까지 ID.도메인.com 형태의 접근을 해당 웹사이트로 연결시켜 주는 설정을 마쳤습니다. 마지막으로 ASP 상의 코딩이 필요합니다. 웹사이트 방문시 가장 처음 실행되는 default.asp에서 다음 예제를 참고하여 코딩하여 주십시오.

default.asp




<%

dim request_url,array_url

' 서버명을 받아온다. (접근자가 실제 입력한 주소)

request_url = Request.ServerVariables("SERVER_NAME")

' .을 기준으로 분리한다.

array_url = split (request_url,".")

if UBound (array_url) > 1 then

' ID.nbloger.com 형태로 host 명을 가지고 접근하는 경우

  ' array_url(0) 가 host 명 , 즉 회원 아이디입니다.

  Response.Redirect("mem.asp?blogid="&array_url(0))

else

  ' host 명 없이 nbloger.com 으로 접근한 경우

  Response.Redirect(해당 주소)

end if

%>

2. http://nbloger.com/아이디

이 형태에서는 실제 서버상에 존재하지 않는 폴더이지만 가상적으로 하위 경로 주소를 구현합니다.

DNS 의 편집은 필요하지 않습니다. 다만 IIS 의 404 에러에 대하여 약간의 트릭을 사용하셔야 합니다.

404 에러란 웹사이트 접근자가 잘못된 경로로 접근하였을 경우 접근자에게 발생시키는 에러입니다. 자주 보셨을 것입니다.


이 페이지를 찾을 수 없습니다.

찾고 있는 페이지가 삭제되었거나 이름이 변경되었거나 일시적으로 사용할 수 없습니다.

--------------------------------------------------------------------------------

다음을 시도해 보십시오.

주소 표시줄에 페이지 주소를 입력했다면 주소를 정확히 입력했는지 확인해 보십시오.

nbloger.com 홈 페이지를 연 다음 원하는 정보에 대한 링크를 찾으십시오.

뒤로 단추를 클릭하여 다른 링크를 시도해 보십시오.

HTTP 404 - 파일을 찾을 수 없음

Internet Information Services

위에 나타나는 404 에러 페이지는 실제 서버상에 존재하는 html 페이지입니다. 예컨데 접근자가 http://nbloger.com/iendev 형태로 접근하였을 경우 사실 nblog.com 서버상에는 iendev 라는 폴더가 존재하지 않습니다. 따라서 접근자에게 위와 같은 404 에러를 발생시킬 것입니다. 따라서 우리는 위의 404 에러페이지를 바꿀 필요가 있습니다.

IIS에서 웹사이트 등록정보 창의 사용자정의 오류 라는 탭을 보시면 웹사이트 접근에 대하여 발생할 수 있는 에러들에 대하여 확인하실수 있습니다. 이 창에서 404 에러에 대한 부분을 찾으신후 다음과 같이 편집하여 주십시오.

메시지 형식 : URL

URL : user_redirect.asp

user_redirect.asp 는 접근자가 404 에러를 발생시킬 경우 실행시킬 asp 파일입니다. 위 예제에서 URL 은 웹사이트 홈디렉토리 최상단을 기준으로 한 경로입니다.

이제는 user_redirect.asp 를 만드셔서 접근자의 접근주소를 해석하여 새로운 경로로 이동시켜 주기만 하면됩니다. 다음 예제를 참고하여 주십시오.

user_redirect.asp

<%

' 에러번호를 포함한 접근자가 입력한 주소를 받아온다. (404;해당주소 형태)

original_url= Request.ServerVariables("QUERY_STRING")

' ;를 기준으로 분리한다.

url_str = split(original_url,";")

' 분리된 오른쪽 문자열(접근자가 실제로 브라우저상에 입력한 주소)

array_url = split(url_str(1),"/")

' 다시 분리된 문자열에서 아이디를 추출한후 특정 위치로 이동시킨다.

Response.Redirect("user_blog.asp?blogid=" & array_url(3) )

%>

Trackback 0 And Comment 0

SiteGalaxyUpload.Form.1 오류 '80004005'

|
SiteGalaxyUpload.Form.1 오류 '80004005'

Failed to read binary data.

이런 오류를 접하는 경우 다음의 방법으로 해결 가능
  1. IIS Admin Service 중지
    시작 ==> 실행 ==> IISReset /Stop
  2. C:\Windows\system32\inetsrv\metabase.xml 수정
    1. 메모장 같은 편집 도구를 이용하여 해당 파일을 불러온다.
    2. AspMaxRequestEntityAllowed 항목을 찾는다.
    3. 204800 라는 값이 들어있다.
      1024B[1KB] * 200 ==> 204800[200KB]
      1024B[1KB] * 2000 ==> 2048000[2000KB] ==> 2MB
      원하시는 용량을 계산하여 Byte 단위로 넣는다.
    4. 저장후 닫기
  3. IIS Admin Service 재시작
    시작 ==> 실행 ==> IISReset /Start

위의 순서대로 진행하신 후 페이지를 확인한다.

만약 그래도 오류가 난다면, 보통 업로드하시려는 용량이 계산하여 입력한 값보다 큰 경우가 많다.
조금 더 넉넉한 용량으로 입력하신 후 테스트 해볼 것.

Trackback 0 And Comment 2

CSS를 이용한 대문자 입력

|
<table border="0" cellspacing="0" cellpadding="0">
    <form name="Form">
    <tr>
      <th align="right">CSS&nbsp;:&nbsp;</th>
      <td><input type="text" name="CSS" style="text-transform: uppercase;"></td>
    </tr>
    </form>
    <tr>
        <td colspan="2">본 예제는 실제 Submit 이벤트 후 다음 페이지에서 입력값을 어떻게 입력했느냐에 따라 소문자로 나오거나 소문자가 섞여서 나올 수 있습니다.</td>
    </tr>
</table>


CSS :
본 예제는 실제 Submit 이벤트 후 다음 페이지에서 입력값을 어떻게 입력했느냐에 따라 소문자로 나오거나 소문자가 섞여서 나올 수 있습니다.
Trackback 0 And Comment 0

ASP & XML #1

|
초보 프로그래머인 idios입니다. XML을 공부하고 있는데 문서를 찾기도 힘들고 강좌를 찾기도 힘들더군요.
그래서 Wrox의 서적이나 MSDN을 참고하며 공부하고 있습니다. 하지만 기초적인 내용이라도 필요하실 분이 있을것 같아서 포스팅합니다.
내용은 주로 XML을 MS의 DOM을 사용하여 처리하는 내용에 관한 것입니다.


XML은 기존의 HTML의 단점을 극복하기 위해서 나온 마크업 랭귀지 입니다.
하지만 HTML과는 다른 측면에서 접근해야 그 재미를 느낄 수 있습니다. (라고 나름대로 생각중. 개인적으로 이쪽이 더 재미가 나서 말이죠...^^;)
무슨말이냐 하면 HTML처럼 어떤걸 보여주는 측면 보다는 스토리지라는 개념에서 접근하면 더 효율적이라고 생각하는 것이죠.
XML이 우선 일반인들에게는 별로 호감이 안가는지라 XSL이나 CSS로 꾸미는 방법이 많기는 하지만. 역시 XML은 저장 포맷으로 생각하는 것이 옳을것 같습니다.

예를 들어서 다음의 XML문서는 무엇을 나타내는 것일까요?

<?xml version="1.0"?>
<MailMessage>
<Sender/>
<Receiver/>
<Header/>
<Body/>
<Attachment/>
</MailMessage>

이걸보면 메일을 다루는 XML파일이라는 느낌이 오지 않나요? 쩝! 아니면 어쩔수 없는거구요.
혹시 메일이 그냥 오는것의 소스를 분석해 본사람이 있다면 그런 포맷과 XML의 포맷중에 어떤것이 이해하기 쉽고 처리하기 쉬울지는 안봐도 훤한(본사람이 없으면 어쩌지....^^;) 일입니다.
게다가 XML은 각종 차세대 언어와 기술의 데이터 교환 포맷의 표준으로 자리잡고 있기도 하고 말이죠.
예를 들어 ADO.NET(지금 하고 있는 ADO의 .Net버젼임당.)에서는 데이터베이스에서 가져온 데이터를 .Net Framework에서 XML으로 전환하여 이쪽 저쪽에다가 던지는 형식으로 진행 된다고 합니다.
이게 무슨말이냐 하면 ADO.NET에서 구현되는 XML 포맷을 잘 알면 그 데이터가 VC++이든 VB이든 VC#이든 VBScript든 간에 같은 형식으로 처리된다는 거죠.
그리고 레코드셋을 파일로 저장할 수도 있다는 거구요.
하나의 예로 SQL Server에서 구현되는 푸시 기술에는 DELETE, UPDATE등 데이터가 변할 때마다 트리거를 발생시켜 XML파일을 만들어 이것을 게시판에 이용하는 방법도 있습니다.
게시판이 .asp가 아니고 .html로 된다는 것이죠. 신기하지 않나요?
.html이 동적으로 움직인다는게 말이죠.
물론 이기술은 XML Data Island라는 기술이라서 익스 전용이라는 문제가 있기는 하지만 말이죠.
하지만 무거운 DB연결이 아닌 조금은 가벼운 XML파서를 이용해서 조금이라도 더 빠른 게시판을 만들수도 있을겁니다.

그럼 이제부터 차근차근 XML에 대한 썰을 풀어보도록 하죠....^^;
Trackback 0 And Comment 0
prev | 1 | next