홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP 쿠키 로그인 구현
6년 전

의견

  • (주의!) 본 예제는 보안상 쿠키 변조에 취약하다. 학습용으로만 사용하자.

회원정보 테이블은 다음과 같다. 다만 본문서에서는 쿠키 구현에 집중하기 위해 의도적으로 DB부분을 제외하고 간단히 배열에 기록하였다. (login_ok.php 참조)

회원정보 테이블
member
m_id m_pw m_name
user1 pw1 한놈
user2 pw2 두시기
user3 pw3 석삼

예를 들어 아이디 user2, 패스워드 pw2를 입력하면 두시기 사용자로 로그인될 것이다.

main.php

  • 로그인된 상태면 이름 출력
  • 로그인 안된 상태면 로그인 페이지(login.php)로 이동
<!DOCTYPE html>
<meta charset="utf-8" />
<?php
if(!isset($_COOKIE['user_id']) || !isset($_COOKIE['user_name'])) {
	echo "<meta http-equiv='refresh' content='0;url=login.php'>";
	exit;
}
$user_id = $_COOKIE['user_id'];
$user_name = $_COOKIE['user_name'];
echo "<p>안녕하세요. $user_name($user_id)님</p>";
echo "<p><a href='logout.php'>로그아웃</a></p>";

login.php

<!DOCTYPE html>
<meta charset="utf-8" />
<form method='post' action='login_ok.php'>
<table>
<tr>
	<td>아이디</td>
	<td><input type='text' name='user_id' tabindex='1'/></td>
	<td rowspan='2'><input type='submit' tabindex='3' value='로그인' style='height:50px'/></td>
</tr>
<tr>
	<td>비밀번호</td>
	<td><input type='password' name='user_pw' tabindex='2'/></td>
</tr>
</table>
</form>

login_ok.php

<?php
if(!isset($_POST['user_id']) || !isset($_POST['user_pw'])) exit;
$user_id = $_POST['user_id'];
$user_pw = $_POST['user_pw'];
$members = array('user1'=>array('pw'=>'pw1', 'name'=>'한놈'),
	'user2'=>array('pw'=>'pw2', 'name'=>'두시기'),
	'user3'=>array('pw'=>'pw3', 'name'=>'석삼'));
 
if(!isset($members[$user_id])) {
	echo "<script>alert('아이디 또는 패스워드가 잘못되었습니다.');history.back();</script>";
	exit;
}
if($members[$user_id]['pw'] != $user_pw) {
	echo "<script>alert('아이디 또는 패스워드가 잘못되었습니다.');history.back();</script>";
	exit;
}
setcookie('user_id',$user_id,time()+(86400*30),'/');
setcookie('user_name',$members[$user_id]['name'],time()+(86400*30),'/');
?>
<meta http-equiv='refresh' content='0;url=main.php'>

logout.php

<?php
setcookie('user_id', '', time()-3600, '/');
setcookie('user_name', '', time()-3600, '/');
?>
<meta http-equiv='refresh' content='0;url=main.php'>
쿠키의 만료시점을 과거로 지정하였다. 이것은 곧 삭제와 같은 의미이다.

예제

→ [로그인]을 클릭하여 로그인 페이지로 이동.
→ 아이디와 패스워드를 아무거나 입력하여 로그인해본다.
→ 아이디 user1, 패스워드 pw1 을 입력하여 테스트
추천추천 : 278 추천 목록
번호 제목
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
3,008
 윈도우10 시스템 파일 및 Dism 검사
3,007
 텍스트 줄바꿈, 글자자르기 CSS
3,006
 jQuery Mobile에서 유용한 코드 10가지.
3,005
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,004
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,003
 [jQuery] jQuery Quick API
3,002
 [ transition ] 링크 hover 색상 변화 속도 조절
3,001
 PHP 5.3.0 에서 사라진 함수들 대체
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.