반응형
[ASP] 한번 되돌아보자..(Request와 Response 객체 활용) | ASP 강좌 및 팁2006.07.07 13:57
 http://cafe.naver.com/myprogramming/8833

BinaryRead를 호출한 다음에는 일반 Request 컬렉션을 사용할 수 없습니다


■ Request와 Response 객체 활용 구성


- 기본 구성도

             [그림] Request와 Response 객체 구성 현황


■ Request 객체


                       [표] Request 객체 구성

콜렉션

속성

메서드

QueryString

TotalBytes

BinaryRead

Form

Cookies

ClientCertificate

ServerVariables


- HTTP 요청 중에 클라이언트가 웹 서버로 보낸 값을 저장


Request[.collection|property|method](variable)

Request 객체에 사용되는 컬렉션은


                 [표] Request 객체 사용에 대한 컬렉션

컬렉션

설 명

QueryString

HTTP 쿼리 문자열의 변수 값

Form

HTTP 요청 본문의 폼 객체 값

Cookies

HTTP 요청에 보내진 쿠키 값

ClientCertificate

필드 값이 HTTP 요청에 보내진 클라이언트 보증서에 저장

ServerVariables

환경 변수 값


그 속성으로는....

(1) TotalBytes


클라이언트가 요청 본문에 보내는 총 바이트 수를 지정


사용 메서드로는....


(2) BinaryRead


POST 요청의 일부로서 클라이언트에서 웹 서버로 보내진 데이터를 저장


사용 매개 변수로는....


  ① QueryString 컬렉션 

  ② Form 컬렉션 

  ③ Cookies 컬렉션 

  ④ ClientCertificate 컬렉션 

  ⑤ ServerVariables 컬렉션  

 


■ QueryString 컬렉션


GET 메서드를 사용하여 HTTP Request 본문에 보내진 쿼리 문자열의 변수 값으로 사용


  Request.QueryString(variable)[(index)|.Count]


매개 변수로서....


(1) variable - 저장할 HTTP 쿼리 문자열의 변수 이름을 지정


(2) index -


variable에 대한 여러 값들 중 하나를 저장할 수 있는 선택적인 매개 변수로서, 이 값은 1에서 Request.QueryString(variable).Count 까지 임의의 정수가 될 수 있다.


QueryString 컬렉션을 사용할 경우, 다음과 경우를 생각해보자.!


HTTP 쿼리 문자열은 물음표(?) 다음의 값으로 지정할 수 있다. 즉 하나의 쿼리 문자열을 작성하는 데에는 몇 가지 다른 프로세스를 사용


예를 들어, HTML 앵커 태그는 다음과같이 사용


  <A HREF= "example.asp?string=this is a sample">string sample</A>


예를 들어, 다음의 요청을 서버로 보낼 경우....


  http://localhost/names.asp?var=kim&var=lee

"names.asp"에는 다음 스크립트가 포함


<!-- names.asp --> 

<% 

For Each item In Request.QueryString("var") 

  Response.Write item & "<br>" 

Next 

%> 

 


실행 결과 : 각각 “kim"과 ”lee" 데이터가 출력

앞의 예를 Count를 사용하여 작성할 수도 있다.


<% 

For I = 1 To Request.QueryString("var").Count    

  Response.Write Request.QueryString("var")(I) & "<br>" 

Next 

%> 

 


예를들면....


QueryString 컬렉션에 Count 속성을 사용하여 클라이언트에서 값이 입력되는 개수만큼 데이터를 나타낼 수 있다.


<!-- QueryString_1.asp --> 

<!-- 다수의 값 형식들을 표시 --> 

<%Total = Request.QueryString("name").Count%> 

<% Response.Write "클라이언트에서 입력된 매개변수의 개수 :" & Total %> <br> 

<p> 

<%For i = 1 to Total%> 

  <%= Request.QueryString("name")(i)  %> <br> 

<%Next%> 

 


위의 스크립트를 실행하기 위해 브라우저 주소란에 다음과같이 입력한다.


http://localhost/QueryString_1.asp?name=kim&name=lee&name=nam


여기서 “?”는 asp 파일과 입력된 매개변수와 구별하기 위해 사용하며, “&” 기호는 여러 매개 변수 값을 구별할 때 사용하는 기호 


실행 결과는....

                        [그림] 실행 결과


■ Form 컬렉션 - POST 메서드로 보낸 값


   Request.Form(element)[(index)|.Count]


매개 변수로서....


(1) element - 컬렉션에서 값을 찾을 폼 요소 이름을 지정


(2) index -


하나의 매개 변수의 여러 값 중 하나를 사용할 수 있는 선택적인 매개 변수로서, 이 값은 1에서 Request.Form(parameter).Count까지의 정수를 사용

<% 

For Each item In Request.Form("system_name") 

  Response.Write item & "<br>" 

Next 

%> 

 

결과 : "Print"와 “Mouse" 값을 출력

For...Next 루프를 사용해도 같은 결과를 얻을 수 있다.


<% 

For i = 1 To Request.Form("system_name").Count 

  Response.Write Request.Form("system_name")(i) & "<br>" 

Next 

%> 

 


반복 인수를 이용하면 다음 스크립트에서와 같이 매개 변수 이름을 표시


<% For Each x In Request.Form %> 

Request.Form( <%= x %> ) = <%= Request.Form(x) %> <BR> 

<% Next %> 

 

이 스크립트는 브라우저에 다음 내용을 표시


system_name = Print 

system_name = Mouse 

 


또한 Form 컬렉션은 QueryString 컬렉션과 비슷한 방법으로 값을 저장한다. 예를 들어, 사용자가 긴 이름 목록을 입력하여 양식을 작성하면 다음과 같은 스크립트를 사용하여 이름들을 찾을 수 있다.


<% For i = 1 to Request.Form.Count %> 

<% =Request.Form("names")(i) %> 

<% Next %> 

 

예를 실행해보자.!


<!-- form_1.asp --> 

<FORM  METHOD = "post" ACTION = "form_1_response.asp"> 

<P>당신의 이름 : <INPUT NAME = "name_1" SIZE = 12> 

<P>당신의 취미 : <SELECT NAME = "name_2"> 

<OPTION>골프  

<OPTION>축구  

<OPTION>배구  

<OPTION>농구</SELECT> 

<p><INPUT TYPE = SUBMIT> 

</FORM> 

 


실행시키면....

                          [그림] 실행 결과


쿼리 전송 단추를 눌러서 실행해보면,....

                           [그림] 실행 결과


위 그림은 "form_1_response.asp" 파일이 실행되면서, 폼에서 입력된 결과가 전달된 것을 볼 수 있다.


<!-- form_1_response.asp --> 

안녕하세요,  <%= Request.Form("name_1") %>.<br>  

당신은 <%= Request.Form("name_2") %>를(을) 좋아하군요.!<br> 

<p> 

폼에서 보낸 매개변수와 데이터 :  <%= Request.Form %>  

 


다음은 사용자가 실제로 텍스트가 아닌 수치 정보를 입력했는지 결과를 확인하는 스크립트로 다음과같이 작성할 수 있다.


<!-- Form_2.asp --> 

<% If Isnumeric(Request.Form("Age")) then %>                   

  <p>안녕하세요.<%=Request.Form("Name")%>님,  

        당신의 나이는 <%=Request.Form("age")%> 입니다. 

<%Else %> 

  <p>나이는 필히 숫자를 입력하세요..... 

<%End If %>  

<FORM METHOD= "POST"  ACTION="form_2.asp"  >    

이름 : <INPUT TYPE="text" NAME="Name"  size=15> 

나이 : <INPUT TYPE="text" NAME="Age" size=5> 

<INPUT TYPE="submit" VALUE="실행">                        

</FORM> 

 


위 스크립트를 실행하면....

                           [그림] 실행 결과


■ Cookies 컬렉션 - HTTP 요청에서 보내진 쿠키의 값을 찾을 수 있게 한다.


  Request.Cookies(cookie)[(key)|.attribute]


① Response.Cookies - 쿠키 값 설정 

② Request.Cookies - 쿠키 값 가져오기 

 


매개 변수로서는....


(1) cookie - 검색해야 하는 쿠키 값을 지정


(2) key -  쿠키 사전에서 하위 키 값을 찾는데 사용하는 선택적 매개 변수


(3) attribute - 쿠키 자체에 관한 정보를 지정


쿠키가 쿠키 사전인지 여부(쿠키에 키가 있는지 여부)를 판별하려면 아래 스크립트를 사용한다.


  <%= Request.Cookies("myCookie").HasKeys %>


여기서 myCookie는 쿠키 사전으로서, 앞의 값은 True로 평가되며, 반대의 경우는 False로 평가된다.


■ Cookie 활용 절차


(1) Response를 이용하여 쿠키 값을 설정하는데, 만일 쿠키가 없으면 새로 작성


'testcookie라는 쿠키에 값(computer)을 넣는다. 

Response.cookies("testcookie") = "computer"    

 


(2) 정의된 쿠키 값을 가져올 때는 다음과같이 사용


'testcookie라는 쿠키의 정의 값을 읽어온다. 

Reqeust.cookies("testcookie")      

 


(3) 쿠키는 사전으로서 다음과같이 사용


Response.cookies("testcookie")("test1") = "value1" 

Response.cookies("testcookie")("test2") = "value2" 

Response.cookies("testcookie")("test3") = "value3" 

 


이렇게 하면 testcookie에서 key 값으로 test1,test2,test3을 사용할 수가 있다. 즉 testcookie라는 쿠키사전은 "test_3=value3&test_2=value2&test1=value1"란 값을 가지고 있으며, 이들 모두 쿠키사전에 저장된다.


예를 들면....(Cookies_2.asp)


<% 

' 문자열을 쿠키에 설정 

Response.Cookies("myCookie1") = "안녕하세요." 

' 날짜 및 시간을 기억하는 함수를 쿠키에 설정 

Response.Cookies("myCookie2") = Now() 

%> 

기억된 쿠키 값 클라이언트에 출력<br><hr> 

<% 

'Request.Cookies는 설정된 쿠키 값을 가져온다. 

Response.Write Request.Cookies("myCookie1") & "<br>" 

Response.Write Request.Cookies("myCookie2") 

%> 

 


결과는....

                          [그림] 출력 결과

■ ServerVariables 컬렉션 - 미리 정의된 환경 변수 값을 저장


  Request.ServerVariables (server environment variable)  

 

매개 변수로서....


▶ server environment variable 값


(1) ALL_HTTP - 클라이언트가 보낸 모든 HTTP 헤더

(2) ALL_RAW - 원본 형식으로 된 모든 헤더를 찾는다.

(3) APPL_MD_PATH - 응용 프로그램에 대한 메타베이스 경로를 찾는다.

(4) APPL_PHYSICAL_PATH - 메타베이스 경로에 따라 실제 경로를 찾는다.

(5) AUTH_PASSWORD - 클라이언트의 인증 대화 상자에 입력한 값

(6) AUTH_TYPE - 사용자를 인증하기 위해 서버가 사용하는 인증 방법

(7) AUTH_USER - 인증된 사용자 이름

(8) CERT_COOKIE - 클라이언트 보증서를 위한 고유 ID

(9) CERT_FLAGS - 클라이언트 보증서가 있는 경우 bit 0은 1로 설정

(10) CERT_ISSUER - 클라이언트 보증서의 발급 필드

(11) CERT_KEYSIZE - SSL(Secure Sockets Layer) 연결 키 크기의 비트 수

(12) CERT_SECRETKEYSIZE - 서버 보증서 개인 키의 비트 수

(13) CERT_SERIALNUMBER - 클라이언트 보증서의 일련 번호 필드

(14) CERT_SERVER_ISSUER - 서버 보증서의 발급 필드

(15) CERT_SERVER_SUBJECT - 서버 보증서의 제목 필드

(16) CERT_SUBJECT - 클라이언트 보증서의 제목 필드

(17) CONTENT_LENGTH - 클라이언트가 제공한 내용의 길이

(18) CONTENT_TYPE - GET, POST 및 PUT 등의 내용을 첨부 데이터 유형

(19) GATEWAY_INTERFACE - 서버에서 사용되는 CGI 개정 기능

(20) HTTPS_SERVER_ISSUER - 서버 보증서의 발급자 필드.

(21) HTTPS_SERVER_SUBJECT - 서버 보증서의 제목 필드.

(22) PATH_INFO - 클라이언트가 제공한 추가 경로 정보

(23) QUERY_STRING - HTTP 요청의 물음표(?) 다음에 오는 문자열에 저장된 쿼리 정보.

(24) REMOTE_ADDR - 요청을 만드는 원격 호스트의 IP 주소.

(25) REMOTE_HOST - 요청을 만드는 호스트 이름.

(26) REQUEST_METHOD - 요청을 만들기 위해 사용한 방법

(27) SCRIPT_NAME - 실행되는 스크립트의 가상 경로

(28) SERVER_NAME - 서버의 호스트 이름, DNS 별명 또는 IP 주소

(29) SERVER_PORT - 요청이 보내진 포트 번호

(30) SERVER_PROTOCOL - 요청된 정보 프로토콜의 이름 및 버전


ServerVariables 컬렉션을 이용하여 전체 환경 변수를 출력시키는 예.!


<!-- servervariables_1.asp --> 

<% 

'서버 환경 변수 출력 

For each item_list in request.servervariables 

    response.write "<b>" & item_list & "</b>: " 

    response.write request.servervariables(item_list) & "<br>" 

Next 

%> 

 


실행 결과는....

                     [그림] 출력 결과


■ TotalBytes 속성 - 본문에서 클라이언트가 내보내는 총 바이트 수를 지정하는 기능


  Counter = Request.TotalBytes


다음 스크립트는 변수를 Request 객체에 들어 있는 총 바이트 수와 같게 지정


<% 

Dim bytecount 

bytecount = Request.TotalBytes 

%> 

 


■ Response 객체


                   [표] Response 객체 구성

컬렉션

속성

메서드

Cookies

Buffer

AddHeader

CacheControl

AppendToLog

Charset

BinaryWrite

ContentType

Clear

Expires

End

ExpiresAbsolute

Flush

IsClientConnected

Redirect

PICS

Write

status


Response 객체를 사용하여 클라이언트에 결과를 보낼 수 있다.


  Response.collection|property|method

컬렉션은 Cookies 쿠키 값을 지정한다. 즉 컬렉션을 사용하여 쿠키 값을 설정할 수 있다.


속성으로는....


                   [표] Response 객체에 대한 속성

속 성

설  명

Buffer

페이지 결과가 버퍼 처리가 되었는지 여부를 나타낸다.

CacheControl

프록시 서버가 ASP로 작성한 결과를 캐시에 놓을 수 있을지 여부를 결정

Charset

내용-형식 헤더에 문자 집합 이름을 추가

ContentType

응답에 대한 HTTP 내용 형식을 지정

Expires

브라우저에 캐시된 페이지가 만료되기 전의 기간을 지정

ExpiresAbsolute

브라우저에 캐시된 페이지가 만료되는 날짜 및 시간을 지정

IsClientConnected

클라이언트가 서버와 연결이 해제되었는지를 나타낸다.

Pics

응답 헤더의 pics-label 필드에 PICS 레이블 값을 추가

Status

서버에서 보낸 상태 표시줄의 값


메서드로는....


                   [표] Response 객체에 대한 메서드

메서드

설  명

AddHeader

HTML 헤더 name을 value로 설정한다.

AppendToLog

요청에 따라 문자열을 웹 서버 로그 항목 끝에 추가한다.

BinaryWrite

문자 집합을 변환하지 않고 주어진 내용을 현재 HTTP 출력으로 작성한다.

Clear

버퍼에 있는 모든 HTML 결과를 지운다.

End

“.asp” 파일 처리를 멈추고 현재 결과 값을 보낸다.

Flush

버퍼에 있는 결과를 즉시 보낸다.

Redirect

전달 메시지를 브라우저에 보내고 그 결과 다른 URL에 연결한다.

Write

현재 HTTP에 변수를 문자열로 쓴다.


■ Cookies 컬렉션


  Response.Cookies(cookie)[(key)|.attribute] = value


(1) key  - 쿠키는 사전으로 사용되고 key는 value로 설정

(2) attribute  - 쿠키 자체 정보를 지정


속성 매개 변수는....


               [표] Cookies 컬렉션에 대한 속성 매개 변수와 설명

속성 매개 변수

설  명

Domain

쓰기 전용. 지정하면 쿠키는 지정된 도메인 요청에만 보내진다.

Expires

쿠키 만료 날짜로서, 이 날짜는 세션이 끝난 후 쿠키가 클라이언트 디스크에 저장된 순서대로 설정되어야 한다. 현재 날짜 이전의 날짜로 속성이 설정되지 않으면 쿠키는 세션이 끝날 때 만료된다.

HasKeys

읽기 전용으로 쿠키에 키를 포함할지 여부를 지정

Path

쓰기 전용으로, 지정하면 쿠키는 지정된 경로 요청에만 보내진다. 만일 속성을 설정하지 않으면 응용 프로그램 경로가 사용

Secure

쓰기 전용으로, 쿠키 보안 여부를 지정


(3) Value - key 또는 attribute을 할당하도록 값을 지정


예에서 처럼 key로 쿠키를 작성하면....


<%  

Response.Cookies("mycookie")("type1") = "sugar" 

Response.Cookies("mycookie")("type2") = "ginger snap" 

%>  

 

다음의 헤더를 보내게 된다.


  Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=ginger+snap


만일 key를 지정하지 않고 이후 myCookie를 지정하면 type1과 type2가 없어지게 된다.


다음 예를 보면....


  <% Response.Cookies("myCookie") = "chocolate chip" %>


앞의 예에서 type1과 type2 key는 없어지고 이들 값은 버려진다. 즉 myCookie 쿠키는 새 chocolate chip값을 가지게 된다.


반대로 key가 있는 쿠키를 호출하면 쿠키에 포함된 비 key 값들이 없어진다. 예를 들어, 앞의 코드는 다음에 아래대로 Response.Cookies를 호출하면....


  <% Response.Cookies("myCookie")("newType") = "peanut butter" %>

chocolate chip 값이 버려지고 newType은 peanut butter로 설정된다.


다음 구문을 이용하여 쿠키에 key를 포함할 지를 결정한다.


  <%= Response.Cookies("myCookie").HasKeys %>


myCookie가 쿠키 사전이라면 앞의 값은 True가 되고, 그렇지 않을 경우 값은 False가 된다.


만일 반복 인수를 사용하면 쿠키 속성을 설정할 수 있다. 예를 들어, 모든 쿠키를 특정 날짜에 만료되도록 하려면 다음 스크립트를 이용한다.


<%  

For Each cookie in Response.Cookies 

  Response.Cookie(cookie).Expires = #July 4, 1999# 

Next 

%>  

 

또한 반복 인수를 이용하면 한 모음의 모든 쿠키 값 또는 한 쿠키의 모든 key를 설정할 수 있다. 하지만 key가 없는 쿠키에서 불렀을 경우는 반복 인수가 실행되지 않는다. 이것을 방지하려면 먼저 “.HasKeys” 구문을 이용하여 쿠키에 key가 있는지를 확인하여야 한다.


다음 예를 보면....


<%  

If Not cookie.HasKeys Then 

  '쿠키 값 설정  

  Response.Cookies(cookie) = "" 

Else 

  ' 쿠키 콜렉션에 각 Key 값을 설정한다. 

  For Each key in Response.Cookies(cookie) 

    Response.Cookies(cookie)(key) = "" 

  Next key 

%>  

 


다음 예제는 쿠키 값 설정 방법과 속성에 값을 지정하는 방법을 나타낸다.


<%  

Response.Cookies("name").Domain = "www.cookiemonster.com"  

Response.Cookies("name").Expires = Date + 365  

Response.Cookies("name").Expires = #January 01, 1999# 

Response.Cookies("name").Path = "/this/is/the/path" 

Response.Cookies("name").Secure = True  

%>  

 


예를 들면....


<% Response.buffer = True %> 

  <form action="<%=Request.ServerVariables("URL")%>" method="post">  

   이름:  

   <input type="text" name="name" value="<%=Request("name")%>" size="20">  

   <input type="submit" value="submit">  

  </form>  

cookie 정보 설정<br><p> 

<%  

' 폼에 입력된 데이터를 전달 

f_name = Request("name")  

'쿠키 값 설정 

Response.Cookies("name") = f_name 

%>  

<!-- 클라이언트에 쿠키 값 출력 --> 

Response.Cookie("name") =<%=f_name%><br> 

 


결과는....


                          [그림] 출력 결과


■ 쿠키 값 설정 및 읽어오기 활용


(1) 폼에서 사용자 ID와 Password를 입력한다.


<!-- Cookies_3.asp  --> 

<!-- 사용자 ID 와 Password를 입력하는 폼 --> 

<HTML> 

<BODY> 

<FORM ACTION="Cookies_3_Response.asp" METHOD="POST"> 

사용자 ID : <INPUT TYPE="TEXT" NAME="user_id"><br> 

사용자 Password : <INPUT TYPE="password" NAME="user_password"><br><p> 

<INPUT TYPE="SUBMIT" VALUE="Submit"> 

</FORM> 

</BODY> 

</HTML> 

 


출력 결과.....

                            [그림] 출력 결과


여기서 사용자 ID와 Password를 각각 “kim"과 ”1234“를 입력하였다.


(2) 폼에서 입력한 사용자 ID와 Password 및 만료 날짜를 쿠키에 저장한다.

<% 

'Cookies_3_response.asp 

' 폼에서 입력된 ID와 Password를 현재 쿠키 값으로 설정 

Response.Cookies("user_id")= Request.Form("user_id") 

Response.Cookies("user_id").Expires="Jan 1, 2002" 

Response.Cookies("user_password")= Request.Form("user_password") 

%> 

<HTML> 

<BODY> 

쿠키에 저장했음. 

</BODY> 

</HTML> 

 


실행 결과....

                               [그림] 출력 결과


(3) 저장된 쿠키 값을 가져온다.


<!-- Cookies_3_read.asp  --> 

<% 

'저장된 쿠키 값을 가져온다. 

Name_id = Request.Cookies("user_id") 

Name_password = Request.Cookies("user_password") 

%> 

<HTML> 

<BODY> 

쿠키에 저장된 사용자 ID와 Password<br> 

<hr> 

사용자 ID : <%=name_id%><br> 

사용자 Password : <%=name_password%> 

</BODY> 

</HTML> 

 


실행 결과....

                            [그림] 출력 결과


■ ContentType 속성 - HTTP 내용 형식 지정


기본값 : “text/HTML”


  Response.ContentType [= ContentType ]

다음은 내용 형식을 Channel Definition Format(CDF)로 설정한 예


  <% Response.ContentType = "application/x-cdf" %>


다음은 ContentType 속성을 다른 일반 값으로 설정한 예


<% Response.ContentType = "text/HTML" %> 

<% Response.ContentType = "image/GIF" %> 

<% Response.ContentType = "image/JPEG" %> 

 

■ End 메서드 - 웹 서버가 스크립트 처리를 멈추고 현재의 결과 값을 클라이언트로 보낸다.


  Response.End


예를 들면....


<!-- Response.End_1.asp -->  

<% 

test_1 = 10 

test_2 = 20 

'출력됨 

response.write test_1 & "<br>" 

Response.End 

'출력되지 않음 

response.write test_2  

%> 

 


결과는....

                             [그림] 출력 결과


만일 Response.Buffer를 True로 설정한 경우에 Response.End를 요청하면 버퍼가 지워진다.


참고로 결과 값을 사용자에게 보내지 않으려면 다음을 호출해야한다.


<%  

Response.Clear 

Response.End 

%>  

 


예를 들면....


<% Response.Buffer = TRUE %>  

<% 

test_1 = 10 

test_2 = 20 

response.write test_1 & "<br>" 

'모든 자료가 출력되지 않음 

Response.Clear 

Response.End 

response.write test_2 

%> 

 


결과는 클라이언트 브라우저에 전혀 자료가 출력되지 않는다.


■ Write 메서드 - 지정한 문자열을 현재 HTTP로 출력


      Response.Write variant


예제는 Response.Write 메서드를 사용하여 클라이언트에게 결과를 보내는 기능


I just want to say <% Response.Write "Hello World." %>  

Your name is: <% Response.Write Request.Form("name") %>  

 


예를 들면....


<!-- ResponseWrite_1.asp --> 

<html><head> 

<title>ResponseWrite_1.asp</title> 

</head><body> 

<%  

   '문자열을 연결해서 출력 

   Name_1 = "홍길동" 

   Name_2 = "학생" 

   Name_3 = Name_1 & "은 " & Name_2  & " 입니다." 

   Response.Write Name_3 

%> 

</body></html> 

 


실행 결과는....

v

 


반응형
반응형

***  한페이지에서 처리

<!-- 인터페이스 가격체크 -->

<script language="JavaScript">
<!--
 function account(){

 var frm = document.frmReg;

  if ((frm.houseType[0].checked) == false && (frm.houseType[1].checked) == false)
  {
   alert('주택여부를 선택하여 주십시오');
   frm.houseType[0].focus();
   return;
  }

  if ((frm.goodType_code[0].checked) == false && (frm.goodType_code[1].checked) == false )
  {
   alert('거래종류를 선택하여 주십시오');
   frm.goodType_code[0].focus();
   return;
  }

   if(frm.price.value == ''){
    alert("거래금액을 입력하여 주십시오");
    frm.price.value = '';
    frm.price.focus();
    return;
   }else{
   if (!ChkNum(frm.price.value)) {
    alert("거래금액은 숫자만 입력 가능합니다!");
    frm.price.value = '';
    frm.price.focus();
    return;
   }
  }
  document.frmReg.action = 'Taxd.asp';
  document.frmReg.submit();
 }

 function ChkNum(Num) {
  var num ="0123456789";
  for (var i=0; i< Num.length; i++){
    if(-1 == num.indexOf(Num.charAt(i))){
     return false;
    }
  }
  return true;
 }

//-->
</script>

<!-- 변수 받아 계산처리 -->

<%
Dim houseType,houseTypeText
Dim goodType_code,goodTypeText '(1:매매,교환 2:임대, 전세)
Dim price,brokerage,brokerageText

houseType   = Request("houseType")
goodType_code = Request("goodType_code")
price     = Request("price")  * 10000

 Select Case houseType
  Case 1 : houseTypeText = "일반주택"
  Case 2 : houseTypeText = "주택외 비거주용 건물, 토지"
 End Select

 Select Case goodType_code
  Case 1 : goodTypeText = "매매, 교환"
  Case 2 : goodTypeText = "임대, 전세"
 End Select

 IF goodType_code = 1 Then '매매, 교환

  IF houseType  = 2 Then
   brokerage   = " ~ " & formatnumber(price * 0.009,0)
   brokerageText = "~ 0.9%"
  Else
   IF price < 50000000 Then
    brokerage   = price * 0.006
    brokerageText = "0.6%"
    IF brokerage > 250000 Then brokerage = 250000
   ElseIF price >= 50000000  and price <= 200000000 Then
    brokerage   = price * 0.005
    brokerageText = "0.5%"
    IF brokerage > 800000 Then brokerage = 800000
   Else
    brokerage   = price * 0.004
    brokerageText = "0.4%"
   End IF
    brokerage = formatnumber(brokerage,0)
  End IF

 Else '임대, 전세

  IF houseType  = 2 Then
   brokerage   = " ~ " & formatnumber(price * 0.009,0)
   brokerageText = "~ 0.9%"
  Else
   IF price < 50000000 Then
    brokerage   = price * 0.005
    brokerageText = "0.5%"
    IF brokerage > 200000 Then brokerage = 200000
   ElseIF price >= 50000000  and price <= 100000000 Then
    brokerage   = price * 0.004
    brokerageText = "0.4%"
    IF brokerage > 300000 Then brokerage = 300000
   Else
    brokerage   = price * 0.003
    brokerageText = "0.3%"
   End IF
    brokerage = formatnumber(brokerage,0)
  End IF

 End IF
%>

<!-- 체크값-->

<form name="frmReg" method="post">

                             <input type="radio" name="houseType" value=1 />
                              주택&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                              <input type="radio" name="houseType" value=2 />
                              주택 외 부동산 </td>

</form>

<a href="javascript:account();"><!-- 함수 호출 -->

반응형
반응형

<%

h_Price = Request("price")
If Request("price")="" Then h_Price=""

  If h_Price = "b" Then     //radio 값 받기
   kaGuk = "5천미만"   

  end if

%>

 

<FORM METHOD=POST ACTION="ThemeList.asp" name="frm">

 

      <td width="33%"><input name="price" type="radio" value="b">
                                5천미만 </td> //레디오 선택

 

</FORM>           

 

<a href="javascript:document.frm.submit();"> //스크립트로 서브밋~!!

[시세기준일 : <% if strDates  then %> <%=formatDateTime(strDates,2)%>] <% else %> - ]<% end if %></td> //날짜뽑기

<% if rsListData(2, inti)  then %> <%=formatcurrency(rsListData(2, inti))%> <% else %> - <% end if %></td> //원단위로 뽑기

 

 

//프로지져 호출

 

    objConn.CursorLocation = 3  ' = adUseClient
      With objCmd
       .ActiveConnection = objConn
       .CommandText = "CM_SISE_TLIST_SELECT_PROC"  
       .CommandType = adCmdStoredProc
       .Parameters.Append  .CreateParameter("@SI_CD", adVarChar, adParamInput, 10, strSiCode)
       .Parameters.Append  .CreateParameter("@GU_CD", adVarChar, adParamInput, 10, strMainGuCD)
       .Parameters.Append  .CreateParameter("@H_PRICE", adVarChar, adParamInput, 10, h_Price)
         .Parameters.Append  .CreateParameter("@SPACE_CD ", adVarChar, adParamInput, 10, gong_Cd)
        
       .Execute , , adExecuteNoRecords  
       
      End With
      objRS.Open objCmd, , adOpenForwardOnly, adLockReadOnly, adCmdStoredProc

 

    If Not objRs.EOF Then
        rsListData = objRs.GetRows()               //전체 테이블 가져옴
        rsListCnt = Ubound(rsListData,2)         

        If Request("strDates")=""  Then
           strDates = rsListData(8, 0)  '선택셀렉트  데이타 없으면 배열 값 가져오기
          end if   

   End if

 

//프로시져 처리

 

   IF @H_PRICE <> ''
   BEGIN
    IF  @H_PRICE  = 'b'
       BEGIN
          SET @SQL = @SQL +' AND HIGI_SALE_PRICE < 50000 '
      END

  IF  @H_PRICE  = 'c'
    BEGIN
       SET @SQL = @SQL +' AND HIGI_SALE_PRICE between 50000 and 70000'
    END

.

.

.

END

 

 

반응형
반응형

' include 전문 조회변수
Dim strDispKb  : strDispKb=chr(26) 
Dim strDispKb1  : strDispKb1=chr(27)
Dim strRecvData : strRecvData = ""
Dim strRecvData1 : strRecvData1 = ""
Dim objNodeList
Dim i
Dim j
Dim arrData : Redim arrData(intColCnt)

Set objNodeList = objXML.selectNodes("//" & ArrayStartCode)

For i = 0 To objNodeList.length - 1
 If objNodeList.Item(i).hasChildNodes = True Then
  For j = 1 To objNodeList.Item(i).childNodes.length - 1

'  If  j = 5 And objNodeList.Item(i).childNodes.Item(j).Text = "" Then  '  값이 없으면 0으로 셋팅
 '   strRecvData = strRecvData & "0" & strDispKb                              '변경처리
   If  j = 5 And  True Then  '                                                          5 값 삭제처리 
    strRecvData = strRecvData & " "
   ElseIf j = 7 And True Then
    strRecvData = strRecvData & " "
   Else
               'arrData(j) = arrData(j) & objNodeList.Item(i).childNodes.Item(j).Text & strDispKb  
      strRecvData = strRecvData & objNodeList.Item(i).childNodes.Item(j).Text & strDispKb
   End If
  Next

  strRecvData = strRecvData & strDispKb1
 End If
Next

반응형
반응형

익스 소스보기 - > 에디트 플러스 연결

 

http://cafe.naver.com/ssesse/584

반응형
반응형

준비물은 자선이가 제공 ㅋㅋ

 

윈도 서버 사양

 

AMD 애슬론 654mhz 

512램 (128*128 *256)

하드 60기가

 

다음달부터 전기세좀 나올꺼야 ~ 램이 3개~ ㅋㅋ;;;

 

모니터는 없고 마우스만 필요할때만 연결

원격접속으로 서버 관리

 

** 애로 사항  **

 

**    인터넷 라인 끌어오기 힘듬 (공유기 큰방) **

*****해결  *****

   무선랜으로 대처 공유기 에서 super dmz 설정으로 외부 접속 가능

   dmz 와 super dmz 차이점?

 

<참고> DMZ와 Super DMZ 는 차이점은 무엇인가요?
DMZ나 Super DMZ 모두 지정한 PC로 외부에서 직접 접근할 수 있다는 공통점이 있지만, DMZ 서버는 사설 IP를 사용하는 반면 Super DMZ는 공인 IP를 그대로 사용한다는 차이점이 있습니다. 따라서 DMZ 서버는 사설 IP를 사용함으로 인해 발생하는 문제점을 그대로 가지고 있지만 Super DMZ는 이런 모든 문제점을 근본적으로 해결했기 때문에 모든 서비스를 인터넷 공유기를 사용하지 않은 것 처럼 사용하실 수 있습니다.
예를 들어, 소리바다 채팅방 개설, 세이클럽 노래팅, 일부 인터넷 폰은 DMZ 서버로 지정을 해도 이용하실 수 없지만, Super DMZ를 이용하면 아무런 제한없이 이용하실 수 있습니다. (단, AH 프로토콜을 사용하는 VPN은 사용하실 수 없습니다.)

네이버 지식 -_-v

 

외부 접속 가능 iis 셋팅완료

 

**  유동 아이피 문제 **

***** 해결 *****

  codns.com 서비스 이용

 유동아이피를 codns가 제공하는 도메인으로 연결

 아이피가 변동할때마다 알아서 바뀌어 내가 사용하는 도메인으로 연결

 서버가 부팅시 프로그램 실행으로 완벽해결 ㅋ ㅋ ㅋ

 자세한 내용 codns.com 사이트 참조

 

----- 작업중 난감 상황  -----

 

ftp 가 열리지 않아 삽질 ;;;

공유기설정에서 가성서버 포트 풀어주고

dmz 론 해결이 안되고 superdmz 서비스를 이용해서 해결

변경후 공유기 리부팅

 

윈도우 ftp 서비스 기능이 좀 부족한듯하여 서버유 설치

 

원할 접속

 

무선랜으로 속도가 조금 느림

 

차후 공유기 한대더 구입후 해결 ;; 또 얼마나 삽질을 할까 에고에고 ~;;

 

내일은 고스트로 백업을 떠노코 디비와 연동까지 체크후 정식으로 공부할 서버가 탄생됨 캬캬캬

 

내일 까지 샛팅완료!!!!

 

 

 

 

 

 

반응형
반응형

Parameters 컬렉션

Parameters 컬렉션은 Command 개체의 Parameter 개체들을 포함하고 있는 컬렉션이다.

Parameters 컬렉션은 저장 프로시저 또는 질의에 대한 매개변수를 전달할 때 주로 사용하는 개체이며, Parameter 개체는 Append 메서드를 사용해서 Parameters 컬렉션에 추가된다.

매개변수를 갖는 저장 프로시저 또는 질의를 수행할 때, 매개변수를 전달하는 방법에는 Command 개체의 Parameters 컬렉션을 사용하는 방법과 Execute 메서드의 두 번째 인수로 배열 값을 지정해서 매개변수로 넘겨주는 방법이 있다.

Command 개체를 사용하면 여러 가지 편리한 점이 있지만, 반면에 저장 프로시저로부터 다양한 Recordset 개체를 반환받지 못한다는 점이 제한 사항이다. Command 개체를 사용해서 반환되는 Recordset 개체는 디폴트 Recordset 개체로서 CursorLocation 속성은 adUseServer(2) 이며, CursorType 속성은 adOpenForwardOnly(0) 이며, LockType 속성은 adLockReadOnly(1) 이다.

Parameters 컬렉션은 한 개의 속성과 네 개의 메서드를 가지고 있다.

Parameters 컬렉션의 속성

속성 설명 기본 값 데이터 형식
Count Parameters 컬렉션에 포함된 Parameter 개체의 개수를 반환한다 (읽기 전용) 0 Long
Item 이름이나 인덱스를 사용해서 Parameters 컬렉션에서 특정 Parameter 구성원을 반환한다. 없음 Parameter

Count 속성

Count 속성은 Parameters 컬렉션에 포함된 Parameter 개체의 개수를 반환한다. 이 속성의 데이터 형식은 Long이며, 읽기 전용이다.

루프를 사용해서 Parameters 컬렉션의 모든 Parameter 개체를 반복해서 처리하려면 For Each…Next 문을 사용한다.

Count 속성이 0이면 컬렉션 내에 Parameter 개체가 존재하지 않는다.

[예제]

다음 예제는 SQL 서버의 Pubs 데이터 베이스에 있는 byroyalty라는 저장 프로시저를 실행하는 예이며, Parameters 개체의 Count 속성을 사용해서 매개변수의 개수를 MsgBox로 나타낸다.

Private Sub cmdCount_Click()
  Dim adocn As New ADODB.Connection
  Dim adoCmd As New ADODB.Command
  Dim adoPara As New ADODB.Parameter
  Dim adoRs As New ADODB.Recordset
  Dim strConn As String

  strConn = "Provider=sqloledb;" & _
        "Data Source=(local);Initial Catalog=Pubs;User ID=sa;Password=; "

  adocn.Open strConn

  Set adoCmd.ActiveConnection = adocn

  adoCmd.CommandText = "byroyalty"
  adoCmd.CommandType = adCmdStoredProc
  adoCmd.CommandTimeout = 15

  adoPara.Type = adInteger
  adoPara.Size = 3
  adoPara.Direction = adParamInput
  adoPara.Value = 100
  adoCmd.Parameters.Append adoPara

  MsgBox "Count 속성 값 : " & adoCmd.Parameters.Count

  ' 명령을 실행해서 Recordset 개체 생성
  Set adoRs = adoCmd.Execute()

  adoRs.Close
  Set adoRs = Nothing

  Set adoCmd = Nothing

  adocn.Close
  Set adocn = Nothing
End Sub

Item 속성

Item 속성은 이름이나 인덱스를 사용해서 Parameters 컬렉션에서 특정 Parameter 구성원을 반환하는 속성이며, Item 속성의 구문은 다음과 같다.

Set adoPara = adoCmd.Parameters.Item(Index)

위의 구문에서 매개변수 Index는 컬렉션에 들어 있는 개체의 이름이나 개체의 위치 순서를 나타내는 서수로 평가되는 Variant 값이다.

Item 속성은 Parameters 컬렉션의 기본 속성이며, 생략할 수 있다. 그래서 다음과 같은 구문을 모두 사용할 수 있다.

  adoCmd.Parameters.Item(Index)
  adoCmd(Index)
  adoCmd.Parameters("Name")

Parameters 컬렉션의 메서드

속성 설명
Append Parameters 컬렉션에 Parameter 개체를 추가한다.
Delete Parameters 컬렉션에서 Parameter 개체를 제거한다.
Refresh Parameters 컬렉션에 있는 Parameter 개체들의 목록을 갱신한다.

Append 메서드

Append 메서드는 Parameter 컬렉션에 Parameter 개체를 추가하는 메서드이며, 다음과 같이 사용된다.

  Dim adoCmd As New ADODB.Command
  Dim adoPara As New ADODB.Parameter

  adoCmd.CommandText = "byroyalty"
  adoCmd.CommandType = adCmdStoredProc
  adoCmd.CommandTimeout = 15

  adoPara.Type = adInteger
  adoPara.Size = 3
  adoPara.Direction = adParamInput
  adoPara.Value = 100
  adoCmd.Parameters.Append adoPara

저장 프로시저의 매개변수 목록을 얻기 위해서 Refresh 메서드를 사용할 수 있다. 하지만, Refresh 메서드를 사용하면 네트워크를 통해서 데이터베이스에 한번 더 갔다 오기 때문에 응용 프로그램의 속도를 저하시키는 요인이 될 수 있다. 그렇기 때문에 매개변수를 Append 하는 것이 Refresh 메서드 보다 더 효율적이다.

Parameters 컬렉션에 Parameter 개체를 추가하려면 먼저 이 개체의 Type 속성을 설정해야 하며, 가변 길이 데이터 형식을 선택한 경우에는 Size 속성을 0보다 큰 값으로 설정해야 한다.

Delete 메서드

Delete 메서드는 Parameter 컬렉션에서 Parameter 개체를 제거하는 메서드이며, Parameter 개체의 이름 또는 인덱스를 사용해서 제거할 수 있다.

Delete 메서드는 다음과 같이 사용한다.

adoCmd.Parameters.Delete 0

위의 코드는 Command 개체의 첫번째 Parameter 개체를 제거하는 예이다.

Refresh 메서드

Refresh 메서드는 Parameters 컬렉션에 있는 Parameter 개체들의 목록을 갱신하는 메서드이다. 이 메서드는 Parameter의 정보를 갱신하기 위해서 데이터 소스까지 네트워크를 통해서 갔다 오는 성능 저하를 감수할 경우에 사용된다.

Refresh 메서드는 다음과 같이 사용한다.

  adoCmd.Parameters.Refresh
  adoCmd.Parameters.Item(1).Value = "가"

Refresh 메서드를 호출하기 위해서는 Command 개체의 ActiveConnection 속성을 유효한 Connection 개체로, CommandText 속성을 유효한 명령으로 그리고 CommandType 속성을 adCmdStoredProc로 설정해야 한다.

Posted by
반응형
반응형

1. main.html

테이블이 구성된 소스에서 링크를 다음과 같은 형태로 합니다.

 

<table border=1>
  <tr>
    <td>
      <a href="contents.html#a" target="contents">a</a><br>
      <a href="contents.html#b" target="contents">b</a>
    </td>
    <td>
      <iframe name=contents src=contents.html width=100% height=100%></iframe>
    </td>
  </tr>
</table>

 

2. contents.html

iframe에 들어갈 본문html에는 메인페이지에서 #링크로 호출했을때의 고유id를 다음과 같이 줍니다.

 

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div id="a">
    a부분입니다.
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div id="b">
    b부분입니다.
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

 

****div 부분이 중요

 

 

링크 부분

<a href="main.asp?page=<%=intTemp%>#a"><%=intTemp%></a>

이쪽부분을 아이프레임으로 잡고 처리했음

<div id="a">
<iframe src="" name="iframeComment" frameborder="0" scrolling="no" width="0" height="0"></iframe>
</div>

반응형
반응형

 

 IIF ( isnull(getxmap), "" , getxmap )

 

아래 와  동일

 

case [문장] when [조건] then [내용]

반응형
반응형

ㅋㅋ 회사 과장님꺼 가져왔음메 ㅋㅋ

 

'=========================================================================
' 기능 : 페이지로 넘어온 파라미터값 출력하기(임시)
'=========================================================================
Sub displayRequest(methodtype)

 Dim strFormName
 If methodtype = "GET" Then
  For Each strFormName In Request.QueryString
   Response.Write strFormName & " : " & Request.QueryString(strFormName) & "<br>" & vbCrLf
  Next
 ElseIf methodtype = "POST" Then
  For Each strFormName In Request.Form
   Response.Write strFormName & " : " & Request.Form(strFormName) & "<br>" & vbCrLf
  Next
 End If

End Sub

 

사용예

받아오는 페이지에서

displayRequest(POST)  

 

심플~

반응형

+ Recent posts