관리 메뉴

tapito.tistory.com

세션을 이용한 ASP 로그인/로그아웃 소스 본문

Common Gateway Interface/Active Server Page

세션을 이용한 ASP 로그인/로그아웃 소스

Tapito 2015.06.11 17:43

 ASP의 세션 객체를 사용한 로그인/로그아웃 소스입니다.

 

login.asp

 ID와 암호를 입력받아 process.asp로 전달하는 소스입니다.


<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="utf-8" />
		<title>ID와 암호를 입력하십시오.</title>
	</head>
	<body>
		<form method="post" action="process.asp">
			<label>ID: <input type="text" name="member_id" /></label>
			<label>PW: <input type="password" name="member_password" /></label>
			<input type="submit" />
		</form>
	</body>
</html>

실행 결과 :

 

process.asp

 ID와 암호를 비교하여 로그인 성공 여부를 판별합니다.

 POST 방식으로 전달된 파라미터를 읽을 때는 Request.Form("변수명")을 사용하고, GET 방식으로 전달된 파라미터를 읽을 때는 Request.QueryString("변수명")을 사용합니다. GET, POST 구분 없이 어떤 파라미터를 읽을 때는 Request("변수명")을 사용합니다.

 세션에서 값을 읽어올 때는 Session("변수명")를 사용하고, 세션으로 값을 기록할 때는 Session("변수명") = 값를 사용합니다.


<%
	' 미리 정의된 ID와 암호
	Const member_id = "user"
	Const member_password = "password"

	' PHP의 isset과 같은 기능을 합니다. 문자열이 null이거나 빈 문자열이 아니면 True를 반환합니다.
	Function isset(str)
		If str Is Nothing Then
			isset = False
		ElseIf str = "" Then
			isset = False
		Else
			isset = True
		End If
	End Function
%>
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="utf-8">
		<title>로그인 처리</title>
	</head>
	<body>
		<!-- POST 방식으로 전달된 데이터를 읽어올 때는 Request.Form("변수명")을 사용합니다. -->

		<!-- ID가 전달되었는지 검사 -->
		<% If isset(Request.Form("member_id")) = False Then %>
		<p style="text-align: center;">ID가 입력되지 않았습니다.</p>
		<p style="text-align: center;"><a href="login.asp">로그인하기</a></p>
		<% End If %>

		<!-- 암호가 전달되었는지 검사 -->
		<% If isset(Request.Form("member_password")) = False Then %>
		<p style="text-align: center;">암호가 입력되지 않았습니다.</p>
		<p style="text-align: center;"><a href="login.asp">로그인하기</a></p>
		<% End If %>

		<!-- ID 잘못 입력 시 -->
		<% If Request.Form("member_id") <> member_id Then %>
		<p style="text-align: center;">ID가 일치하지 않습니다.</p>
		<p style="text-align: center;"><a href="login.asp">다시 로그인하기</a></p>
		<!-- 암호 잘못 입력 시 -->
		<% ElseIf Request.Form("member_password") <> member_password Then %>
		<p style="text-align: center;">암호가 일치하지 않습니다.</p>
		<p style="text-align: center;"><a href="login.asp">다시 로그인하기</a></p>
		<!-- 로그인 성공 -->
		<% Else %>
			<% Session("member_id") = Request.Form("member_id") %>
			<% Session("member_password") = Request.Form("member_password") %>
		<p style="text-align: center;">로그인 성공</p>
		<p style="text-align: center;"><a href="membership.asp">회원 페이지</a></p>
		<% End If %>
	</body>
</html>

실행 결과 :

 

membership.asp

 로그인 한 회원에게만 보여질 페이지입니다. 로그인 하지 않고 접속한 경우 로그인 페이지로 안내합니다.


<%
	' PHP의 isset과 같은 기능을 합니다. 문자열이 null이거나 빈 문자열이 아니면 True를 반환합니다.
	Function isset(str)
		If str Is Nothing Then
			isset = False
		ElseIf str = "" Then
			isset = False
		Else
			isset = True
		End If
	End Function
%>
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="utf-8" />
		<title>회원 페이지</title>
	</head>
	<body>
		<% If Not isset(Session("member_id")) Or Not isset(Session("member_password")) Then %>
		<p style="text-align: center;">로그인되지 않았습니다.</p>
		<p style="text-align: center;"><a href="login.asp">로그인 하기</a></p>
		<% Else %>
		<p style="text-align: center;">환영합니다. <%=Session("member_id")%>님</p>
		<p style="text-align: center;"><a href="logout.asp">로그아웃 하기</a></p>
		<% End If %>
	</body>
</html>

실행 결과

 

logout.asp

 세션을 삭제하여 로그아웃 처리합니다.


<%
	' PHP의 isset과 같은 기능을 합니다. 문자열이 null이거나 빈 문자열이 아니면 True를 반환합니다.
	Function isset(str)
		If str Is Nothing Then
			isset = False
		ElseIf str = "" Then
			isset = False
		Else
			isset = True
		End If
	End Function
%>
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="utf-8" />
		<title>로그아웃</title>
	</head>
	<body>
		<!-- 세션에 로그인 정보가 없는 경우 -->
		<% If Not isset(Session("member_id")) Or Not isset(Session("member_password")) Then %>
		<p style="text-align: center;">로그인되지 않았습니다.</p>
		<p style="text-align: center;"><a href="login.asp">로그인 하기</a></p>
		<!-- 현재 세션 데이터를 지우는 메서드는 Session.Abandon -->
		<% Else %>
			<% Session.Abandon %>
		<p style="text-align: center;">로그아웃 되었습니다.</p>
		<p style="text-align: center;"><a href="login.asp">로그인 하기</a></p>
		<% End If %>
	</body>
</html>

실행 결과

 

2 Comments
댓글쓰기 폼