Dreamweaver에서 세션 변수 만들기

소개

웹 애플리케이션을 설계할 때 웹 개발자는 URL을 통해 전달되지 않지만, 애플리케이션에서 사용할 수 있는 변수 정보에 액세스하고자 하는 경우가 있습니다. 예를 들어, 캘린더 웹 애플리케이션에서 표준 시간대 환경 설정에 대해 방문자에게 물을 수 있습니다. 그런 다음, 해당 애플리케이션의 전체 페이지에서 날짜와 시간을 해당 표준 시간대로 표시할 수도 있습니다. 세션 변수에서 이 기능을 제공할 수 있습니다.

세션 변수가 웹 개발자의 무기 중 강력한 도구이긴 하지만, Dreamweaver가 세션 변수의 작동에 필요한 모든 코드를 자동으로 생성하지는 않습니다. 이 문서에서는 세션 변수에 대해 설명하고 Dreamweaver가 지원하는 다양한 서버 모델에서 사용하기 위한 절차를 제공합니다.

사전 요구 사항

이 문서를 사용하고 이해하기 위해서는 개발자가 ASP나 ColdFusion과 같은 서버 모델을 사용하여 작업을 수행 중이어야 합니다. 개발자는 다음의 개념에 대한 작업 지식이 있어야 합니다. 또한 동적 개발을 지원하는 Dreamweaver 버전을 사용해야 합니다(Dreamweaver MX 또는 Dreamweaver MX 2004). 더 알아보려면 Dreamweaver 사용 설명서나 도움말 시스템의 관련 섹션을 참조하십시오.

  • 동적 사이트 빌드 준비
  • 동적 페이지 만들기

세션 변수의 작동 방식

개발자는 세션 변수를 사용하여 방문자의 세션 동안 애플리케이션에 액세스할 수 있는 변수를 설정하여 방문자 정보를 저장할 수 있습니다.

세션 변수의 특성은 다음과 같습니다.

  • 별도로 지정되지 않은 경우, 세션 변수는 방문자가 사이트를 떠나고 20분 후 만료됩니다.
  • 해당 특정 사이트 방문자의 활동이 사이트에서 20분 동안 감지되지 않을 경우 세션 변수가 만료됩니다. 방문자가 웹 브라우저를 종료하는 경우에도 만료됩니다.
  • 세션 변수가 작동하도록 하려면, 방문자의 브라우저가 쿠키를 허용하도록 설정되어 있어야 합니다.
  • 사이트에 대한 모든 페이지는 웹 서버에서 단일 디렉터리 내에 있어야 합니다.
  • 세션 변수에 저장된 정보는 사이트 방문자마다 다릅니다. 서로 다른 사이트 방문자는 서로의 세션 변수 정보에 액세스할 수 없습니다.

일반적으로, 개발자는 방문자가 웹 애플리케이션에서 양식을 채우도록 함으로써 세션 변수에 대한 데이터를 수집합니다. 세션 변수는 양식 필드의 값으로 설정됩니다. 이 TechNote의 예에서는 양식 요소의 정보를 사용하여 세션 변수의 값을 설정합니다.

ASP.NET을 제외한 모든 서버 모델에 대해 Dreamweaver에는 세션 변수가 만들어진 후 세션 변수를 페이지에 쓰는 메뉴 기반 기능이 있습니다. 하지만 Dreamweaver에는 값을 세션 변수에 할당(세션 변수 인스턴스화라고도 함)하는 메뉴 기반 기능이 없습니다. 소스 코드 내에서 수동으로 세션 변수에 값을 할당해야 합니다.

ASP, ColdFusion, JSP 또는 PHP 애플리케이션에서 세션 변수 만들기

참고: ASP.NET은 일반적으로 기존의 HTML 양식 대신 웹 양식을 사용하므로 ASP.NET의 예는 다른 서버 모델과는 상당히 다릅니다. ASP.NET 서버 모델을 사용 중이라면, 이 설명서의 끝 부분에 있는 ASP.NET 예를 참조하십시오.

  1. ASP, ColdFusion, JSP 또는 PHP 웹 사이트를 정의합니다.
  2. 사이트 내에 세 개의 동적 페이지를 만듭니다. 첫 번째 페이지에는 두 번째 페이지에 제출하는 HTML 양식(다음 단계에서 설명)이 포함되어 있습니다. 두 번째 페이지에서는 세 번째 페이지를 가리키는 하이퍼링크를 만듭니다.

    참고: 이 예에서 세 개의 페이지를 사용하는 이유는 세션 변수를 두 번째, 세 번째 및 그 다음 페이지에 사용할 수 있다는 것을 증명하기 위한 것입니다. 세션 변수 대신 사용할 수 있는 요청 변수는 한 페이지에서 두 번째 페이지로 가져갈 수 있습니다. 하지만 세 번째 페이지나 그 다음 페이지에는 사용할 수 없습니다.

  3. 첫 번째 페이지에서는 하나의 텍스트 필드 양식 요소와 전송 버튼이 포함된 양식을 만듭니다. 양식 컨트롤 특성이 다음과 같이 설정되어 있는지 확인하십시오.
    • 텍스트 필드를 선택하고 속성 검사기를 사용하여 이름을 “txtFirstName”으로 지정합니다.
    • 양식 태그를 선택합니다(양식 컨트롤 둘레의 빨간색 점선을 클릭하거나 태그 선택기에 있는 양식 태그 클릭). 속성 검사기에서 두 번째 페이지를 양식 동작으로 설정합니다. post를 양식 메서드로 지정합니다. “get” 메서드도 세션 변수와 함께 자주 사용되지만, 이 예에서는 간단히 하기 위해 post 메서드를 사용합니다.
  4. 두 번째 페이지에서는 코드 보기를 시작합니다([보기]> [코드]). 여는 <html> 태그 위에, 아래 목록 중 사용 중인 서버 모델에 대한 코드를 입력합니다.

    이 코드는 첫 번째 페이지에서 만들었던 “txtFirstName”이라는 양식 요소의 내용을 가져옵니다. 그런 다음 양식 요소의 내용과 동일하게 설정된 "sessFirstName"이라는 세션 변수를 만듭니다. 즉, 이 코드는 사용자가 양식 페이지에서 입력하는 정보를 보관하는 세션 변수를 만듭니다.

    • ASP(VBScript) (코드가 줄바꿈 없이 한 줄에 들어 있는지 확인)

      <%session("sessFirstName")=Request.Form(“txtFirstName”)%>
    • ASP(JavaScript) (코드가 줄바꿈 없이 한 줄에 들어 있는지 확인)
      <%Session("sessFirstName")=String(Request.Form(“txtFirstName”))%>
    • ColdFusion
      <cfset Session.sessFirstName = #Form.txtFirstName#>

      세션 변수를 사용하려면, 사이트에 이미 Application.cfm 파일이 없는 경우 ColdFusion에서도 이 파일을 사이트 루트에 만들 것을 요구합니다. Application.cfm 파일은 다음 코드를 포함해야 합니다.

      <CFAPPLICATION NAME="Name" SESSIONMANAGEMENT="Yes">

      참고: UNIX 시스템에서 파일 이름은 대소문자를 구분합니다. Application.cfm 파일 이름의 철자에 대문자 A를 사용하도록 하십시오. 기타 Application.cfm 설정에 대해서는 ColdFusion 설명서를 참조하십시오.
    • JSP (코드가 줄바꿈 없이 한 줄에 들어 있는지 확인)
      <%session.setAttribute("sessFirstName", request.getParameter(“txtFirstName”));%>

      다음 코드도 작동하지만, 최신 Java 사양에서는 더 이상 사용되지 않습니다.

      <%session.putValue("sessFirstName", request.getParameter(“txtFirstName”));%>
    • PHP
      <?php session_start(); session_register("sessFirstName"); $sessFirstName = $HTTP_POST_VARS['txtFirstName']; ?>

      Windows에서 브라우저에 PHP 오류가 발생한다면, PHP의 설치에 세션 데이터에 대한 올바른 저장 디렉터리가 없는 것일 수 있습니다. 이 매개변수는 httpd.conf 파일은 물론 PHP.ini 파일에서도 session.save_path라고 합니다. 디렉터리 위치는 선택 사항이지만, 다음 설정이 작동할 것입니다.

      session.save_path = c:\php\sessiondata

      사용 중인 PHP 구성에 따라, 해당 세션과 관련된 모든 페이지에서 세션 관리를 수동으로 활성화해야 할 경우가 있습니다. 다음 코드 줄을 각 페이지의 맨 위에 배치하십시오.

      <?php session_start();?>

      각 페이지에서 session_start() 함수를 호출하는 대신 php.ini에서 session.auto_start 옵션을 켜서 PHP가 세션을 자동으로 시작하도록 할 수 있습니다.
  5. 계속 이 페이지에서 [창] > [바인딩]을 선택하여 [바인딩] 패널을 엽니다. 더하기 (+) 메뉴에서 [세션 변수]를 선택합니다. [세션 변수] 대화 상자에서 이름 필드에 "sessFirstName"(따옴표 없이)을 입력하고 [확인]을 클릭합니다.
  6. [바인딩] 패널에 나타나는 세션 변수 아이콘을 확장합니다. "sessFirstName" 아이콘을 [문서] 창으로 드래그합니다. 세션 변수 내용이 이 페이지에 쓰여집니다.
  7. 세 번째 페이지를 열고 4단계와 5단계를 반복합니다. 다시, 두 번째 페이지에 세 번째 페이지에 대한 링크가 있는지 확인합니다.
  8. 세 페이지를 모두 저장, 게시 및 테스트합니다. 예상한 결과를 얻지 못하는 경우, 양식 요소, 세션 변수 및 요청 변수의 대소문자와 철자를 확인합니다. 이제 이 사이트의 각 페이지에 대해 [바인딩] 패널에 세션 아이콘이 표시됩니다.

 

ASP.NET에서 세션 변수 만들기

  1. ASP.NET 웹 사이트를 정의합니다.
  2. 사이트 내에 두 개의 페이지를 만듭니다. 첫 번째 페이지에는 다시 자신에게 게시했다가 두 번째 페이지로 리디렉션하는 ASP.NET 웹 양식이 포함되어 있습니다.

    참고: 이 예에서 두 개의 페이지를 사용하는 이유는 세션 변수를 두 번째, 세 번째, 네 번째 및 그 다음 페이지에 사용할 수 있다는 것을 증명하기 위한 것입니다. 세션 변수 대신 사용할 수 있는 요청 변수는 한 페이지의 ASP.NET 웹 양식에서 두 번째 페이지로 가져갈 수 없습니다.

  3. 첫 번째 페이지는 하나의 <asp:textbox> 서버 컨트롤과 <asp:button> 서버 컨트롤을 포함하는 하나의 ASP.NET 웹 양식을 포함해야 합니다. 텍스트 상자 컨트롤의 "id" 특성을 “txtFirstName”으로 설정합니다. 첫 번째 페이지에 대한 전체 코드는 아래에 제공되어 있습니다. ASP.NET 사이트에 대해 선택한 언어에 따라 C# 또는 VB를 선택하십시오.

    이 코드는 “txtFirstName”이라는 <asp:textbox> 서버 컨트롤의 내용을 가져옵니다. 그리고 서버 컨트롤의 내용과 동일하게 설정된 "sessFirstName"이라는 세션 변수를 만듭니다. 즉, 이 코드는 사용자가 양식 페이지에서 입력하는 정보를 보관하는 세션 변수를 만듭니다.

    • ASP.NET (VB) - Page 1 <%@ Page Language="vb"%><script runat="server"> Sub Button1_Click(ByVal s As Object, ByVal e As EventArgs) Session("sessFirstName") = Request(“txtFirstName”) Response.Redirect("session2.aspx") End Sub</script><html><head><title>Session Page 1</title></head><body> ASP.NET VB session variable and web form example - page 1 <form id="Form1" method="post" runat="server"><p>first name:<asp:TextBox id=“txtFirstName” runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Submit" onClick="Button1_Click" /></p></form></body></html>
    • ASP.NET (C#) - Page 1 <%@ Page Language="C#" %><script runat="server"> void Button1_Click(object sender, EventArgs e) { Session["sessFirstName"] = Request[“txtFirstName”]; Response.Redirect("session2.aspx"); }</script><html><head><title>Session Page 1</title></head><body> ASP.NET C# session variable and web form example - page 1<form id="Form1" method="post" runat="server"><p>first name:<asp:TextBox id=“txtFirstName” runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Submit" onClick="Button1_Click" /></p></form></body></html>
  4. 두 번째 페이지에서 [보기] > [코드]를 선택하여 코드 보기에 액세스하고, 아래의 코드를 입력하여 세션 변수 내용을 페이지에 씁니다. 다시, ASP.NET 사이트에 대해 선택한 언어에 따라 C# 또는 VB를 선택하십시오.
    • ASP.NET (VB) - Page 2 <%@ Page Language="vb" %><html><head><title>Session Page 2</title></head><body><p>ASP.NET VB session variable and web form example - page 2</p><p>first name: <%= session("sessFirstName") %></p></body></html>
    • ASP.NET (C#) - Page 2 <%@ Page Language="C#" %><html><head><title>Session Page 2</title></head><body><p>ASP.NET C# session variable and web form example - page 2</p><p>first name: <%=Session["sessFirstName"]%></p></body></html>
  5. 양쪽 페이지를 저장, 게시 및 테스트합니다. 예상한 결과를 얻지 못하는 경우, 서버 컨트롤, 세션 변수 및 요청 변수의 대소문자와 철자를 확인합니다.

추가 정보

세션 변수에 대한 자세한 내용은 다음 문서를 참조하십시오.

 

Adobe, Inc.

쉽고 빠르게 지원 받기

신규 사용자이신가요?