62
4 쿠쿠쿠 쿠쿠 8

쿠키와 세션

Embed Size (px)

DESCRIPTION

8 장. 쿠키와 세션. 학습 목표. 쿠키의 개념에 대하여 이해한다 쿠키를 생성하고 삭제하는 방법을 익힌다 세션 개념을 이해하고 쿠기와의 차이점을 이해한다 세션의 초기화 , 생성 , 삭제하는 방법을 익힌다 . 등록된 세션 변수의 사용법을 익힌다. 주요 학습 내용. 01. 쿠키 02. 세션. 쿠키란 ?. 01. 로그인한 다음 사이트의 어떠한 페이지로 이동하여도 로그인 상태가 유지 쿠키 : 클라이언트 사용자가 웹 서버에 접속하여 로그인 하였을 때 클라이언트 컴퓨터에 저장되는 데이터 - PowerPoint PPT Presentation

Citation preview

Page 1: 쿠키와 세션

4 장 쿠키와 세션쿠키와 세션8 장

Page 2: 쿠키와 세션

2 2

Section 01Section 01학습 목표학습 목표

쿠키의 개념에 대하여 이해한다

쿠키를 생성하고 삭제하는 방법을 익힌다

세션 개념을 이해하고 쿠기와의 차이점을 이해한다

세션의 초기화 , 생성 , 삭제하는 방법을 익힌다 .

등록된 세션 변수의 사용법을 익힌다

Page 3: 쿠키와 세션

3 3

Section 01Section 01주요 학습 내용주요 학습 내용

01. 쿠키

02. 세션

Page 4: 쿠키와 세션

4 4

Section 01Section 01 쿠키란 ?쿠키란 ?01

로그인한 다음 사이트의 어떠한 페이지로 이동하여도 로그인

상태가 유지

쿠키 : 클라이언트 사용자가 웹 서버에 접속하여 로그인 하였을 때

클라이언트 컴퓨터에 저장되는 데이터

사이트의 어떠한 페이지에서도 로그인된 상태와 로그인된 아이디

등을 이용 가능

만약 쿠기라는 개념이 없다면 로그인 시 로그인 상태와 로그인

아이디를 DB 에 써 넣어야 함

Page 5: 쿠키와 세션

5 5

Section 01Section 01 쿠키 생성쿠키 생성02

setcookie() 함수

 bool setcookie ( string name [, string value [, int expire [, string path

[, string domain [, bool secure]]]]] )

함수의 인자 설명

name 쿠기의 이름

value 쿠키의 값

expire 쿠키가 유효한 시간

path '/home/' 이라고 설정하면 ‘ /home/' 디렉토리와 서브 디렉토리에서 쿠키를 사용 가능 .

domain 쿠키를 이용할 수 있는 도메인을 의미

secure TRUE 로 설정하면 접속에서만 쿠키가 설정

Page 6: 쿠키와 세션

6 6

Section 01Section 01

쿠키 생성 예

02【예제 8-1 】 cookie1.php 【예제 8-1 】 cookie1.php

01 <?

02    $cookie_r1 = setcookie("userid", "hkd", time()+8);

03    $cookie_r2 = setcookie("username", " 홍 길 동 ",

time()+8);   

04

05     if ( $cookie_r1 and $cookie_r2)

06         echo " 쿠키 생성이 완료 되었습니다 ( 단 , 생성된 쿠키는 8

초간

지속됩니다 ).";

07 ?>

Page 7: 쿠키와 세션

7 7

Section 01Section 01

생성된 쿠키 사용 예

02【예제 8-2 】 cookie2.php 【예제 8-2 】 cookie2.php

01 <?

02    echo " 생성된 'userid' 쿠키 : ".$_COOKIE[userid]."<br>";

03    echo " 생 성 된 'username' 쿠 키 : ".

$_COOKIE[username]."<br>";

04 ?>

Page 8: 쿠키와 세션

8 8

Section 01Section 01

쿠키 삭제 예

02【예제 8-3 】 cookie3.php 【예제 8-3 】 cookie3.php

01 <?

02      setcookie("userid");      // userid 쿠키 삭제

03      setcookie("username");       // username 쿠기 삭제

04

05

06      echo " 생성된 'userid' 쿠키 : ".$_COOKIE[userid]."<br>";

07      echo " 생 성 된 'username' 쿠 키 : ".

$_COOKIE[username]."<br>";

08   ?>

Page 9: 쿠키와 세션

9 9

Section 01Section 01 세션이란 ?세션이란 ?02

쿠기가 로그인 정보를 클라이언트 컴퓨터에 저장하는데 반하여

세션에서는 보안상 로그인 정보를 서버에 저장

PHP 4 에서 추가 되었는데 웹 사이트에 연속적으로 접속할 때

이전의 접속 정보를 이용할 수 있는 방법을 제공

서버에서 세션 아이디 (Session id) 라고 부르는 유일한 아이디를

부여하여 서버의 특정 디렉토리에 저장

세션 아이디는 또한 클라이언트 컴퓨터에 저장되거나 URL 를

통하여 클라이언트를 통하여 전달

Page 10: 쿠키와 세션

10 10

Section 01Section 01

session_start( ) 함수

02【예제 8-4 】 session1.php 【예제 8-4 】 session1.php

 bool session_start( )

<?    session_start();

   echo ' 세션이 시작되었습니다 .<br><br>';    $_SESSION['color'] = 'blue';    $_SESSION['animal']  = 'dog';    $_SESSION['time']    = time();

   echo "<a href='session2.php'>session2.php 로 이동 </a>"; ?>

Page 11: 쿠키와 세션

11 11

Section 01Section 01

등록된 세션 사용 예

02【예제 8-5 】 session2.php 【예제 8-5 】 session2.php

<?    session_start();

   echo ' 세션이 시작되었습니다 .<br><br>';

   echo $_SESSION['color'].'<br>';    echo $_SESSION['animal'].'<br>';     echo date('Y-m-d(H:i:s)', $_SESSION['time']); ?>

Page 12: 쿠키와 세션

12 12

Section 01Section 01

세션 등록의 세가지 방법

02【예제 8-6 】 session3.php 【예제 8-6 】 session3.php

<?

   // session_register() 는 PHP 4 와 PHP 5 에서 사용    $var1 = " 조관우 ";

   session_register("var1");

   // PHP 4.1.0 버전 이후에는 일반적으로 $_SESSION 이 더 많이 사용    $_SESSION["var2"] = " 동방신기 ";

   // PHP 4.1.0 이전 버전에서는 $HTTP_SESSION_VARS 를 사용    $HTTP_SESSION_VARS["var3"] = " 조용필 ";

   echo "<a href='session4.php'> session4.php 로 이동 </a>";

?>

Page 13: 쿠키와 세션

13 13

Section 01Section 01

등록된 세션 출력 예

02【예제 8-7 】 session4.php 【예제 8-7 】 session4.php

<?    session_start();    echo ' 세션이 시작되었습니다 .<br><br>';

   echo $_SESSION['var1'].'<br>';    echo $_SESSION['var2'].'<br>';     echo $_SESSION['var3'].'<br>';

   echo '<br>';

   echo $var1.'<br>';    echo $var2.'<br>';    echo $var3.'<br>'; ?>

Page 14: 쿠키와 세션

14 14

Section 01Section 01

세션 삭제

02【예제 8-8 】 session5.php 【예제 8-8 】 session5.php

<?      session_start();      unset($var1);    //  unset($_SESSION[var1]), session_unregister('var1')      unset($var2);    //  unset($_SESSION[var2]), session_unregister('var2')      unset($var3);    //  unset($_SESSION[var3]), session_unregister('var3')

     if ($var1 and $var2 and $var3)      {          echo $var1.'<br>';          echo $var2.'<br>';          echo $var3.'<br>';      }      else        echo " 세션 변수가 모두 삭제 되었습니다 ."; ?>

Page 15: 쿠키와 세션

4 장 웹 사이트 초기 화면 제작웹 사이트 초기 화면 제작9 장

Page 16: 쿠키와 세션

16 16

Section 01Section 01학습 목표학습 목표

완성된 실습 홈페이지의 기능을 이해한다

홈페이지의 프레임 구성을 이해한다

세션 변수를 이용하는 법을 익힌다

홈페이지 초기 화면을 제작하는 법을 익힌다 .

Page 17: 쿠키와 세션

17 17

Section 01Section 01주요 학습 내용주요 학습 내용

01. 완성된 홈페이지

02. 홈페이지 초기 화면

Page 18: 쿠키와 세션

18 18

Section 01Section 01 완성된 홈페이지 완성된 홈페이지 01

[ 그림 9-1] 완성된 홈페이지 (http://php.swc.ac.kr)

Page 19: 쿠키와 세션

19 19

Section 01Section 01 실습 홈페이지 기능실습 홈페이지 기능02

⑴ 회원가입 및 로그인 기능

⑵ 블로그형 방명록

⑶ 누구나 자유롭게 글을 쓸 수 있는 자유게시판

⑷ 관리자만이 글을 쓸 수 있는 리플형의 공지사항

게시판

⑸ 답변글을 올릴 수 있는 질의응답 게시판

⑹ 파일 첨부 기능이 있는 자료실

⑺ 설문조사

Page 20: 쿠키와 세션

20 20

Section 01Section 01 홈페이지 초기 화면 ( 로그인 전 )홈페이지 초기 화면 ( 로그인 전 )03

[ 그림 9-2] 로그인 전의 홈페이지 초기 화면

Page 21: 쿠키와 세션

21 21

Section 01Section 01 홈페이지 초기 화면 ( 로그인 후 )홈페이지 초기 화면 ( 로그인 후 )04

[ 그림 9-3] 로그인 후의 홈페이지 초기 화면

Page 22: 쿠키와 세션

22 22

Section 01Section 01 초기 홈페이지 프레임 구성초기 홈페이지 프레임 구성05

상단 프레임 ( 메뉴 부분 ) : top.php

하단 프레임 ( 메인 부분 ) : main_init.php

사용되는 3 개 파일

⑴ index.php : 메인 화면의 틀⑵ top.php   : 메인 화면의 상단 프레임 ( 메뉴 부분 )

⑶ main_init.php : 메인 화면의 하단 프레임 ( 메인 부분 )

Page 23: 쿠키와 세션

23 23

Section 01Section 01

홈페이지 화면의 프레임 틀

02【예제 9-1 】 index.php 【예제 9-1 】 index.php

1 : <html>  2 :  <head>  3 : <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;        charset=ks_c_5601-1987">  4 :   <title>:: PHP 프로그래밍 입문에 오신 것을 환영합니다 ~~ ::</title>  5 :  </head>  6 :  7 :   <frameset framespacing="0" border="0" frameborder="0“ rows="210,*">  8 :    <frame name="top" src="top.php" scrolling="auto" noresize>  9 :    <frame name="main" src="main_init.php" scrolling="auto" noresize>  10 :   </frameset>  11 :  12 : </html>

Page 24: 쿠키와 세션

24 24

Section 01Section 01

상단 프레임

02【예제 9-2 】 top.php 【예제 9-2 】 top.php

 1 : <?      session_start(); ?> // 세션 변수 초기화 4 : <html>  5 :  <head>  6 :   <title>:: PHP 프로그래밍 입문에 오신것을 환영합니다 ~~ ::</title>  7 :   <link rel="stylesheet" href="style.css" type="text/css">  8 :  </head>  9 : <body leftmargin="0" topmargin="0" marginwidth="0“ marginheight="0">  10 :  <table width="776" align="center" cellspacing="0"              cellpadding="0" border="0">  11 :   <tr><td>  13 :     <table width=776 cellspacing="0" cellpadding="0" border="0">  15 :         <tr> <td colspan="10">  17 :            <img border="0" src="img/sub_title.gif" width="776"                        height="146"></td></tr>

Page 25: 쿠키와 세션

25 25

Section 01Section 0102【예제 9-2 】 top.php 【예제 9-2 】 top.php

 31 : <?  32 :     if (!$userid)  33 :     {  34 :         echo "<TD>  36 :             <a href='login/login_form.html'  target='main'>  37 :             <img SRC='img/menu_02.gif' WIDTH=87 HEIGHT=47                          border=0 ALT=''></a></TD> ";  39 :     }  40 :     else  41 :     {  42 :         echo " <TD>  44 :            <a href='login/logoff.php'  target='main'>  45 :            <img SRC='img/menu_10.gif' WIDTH=87 HEIGHT=47                       border=0 ALT=''></a></TD> ";  47 :     }

Page 26: 쿠키와 세션

26 26

Section 01Section 0102【예제 9-2 】 top.php 【예제 9-2 】 top.php

48 :     if (!$userid)  49 :     {    echo "  51 :     <TD>  52 :       <a href='login/member_form.html'  target='main'>  53 :       <img SRC='img/menu_03.gif' WIDTH=84 HEIGHT=47                     border=0 ALT=''></a></TD> ";  55 :     }  56 :     else  57 :     { echo "  59 :           <TD>  60 :       <a href='login/modify_memberinfo.php'  target='main'>  61 :             <img SRC='img/menu_11.gif' WIDTH=84 HEIGHT=47                          border=0 ALT=''></a></TD> ";  63 :     }  64 : ?>

Page 27: 쿠키와 세션

27 27

Section 01Section 0102【예제 9-2 】 top.php 【예제 9-2 】 top.php

 65 :           <TD>  66 :             <a href="guestbook/guestbook.php"  target="main">  67 :             <img SRC="img/menu_04.gif" WIDTH=86 HEIGHT=47                               border=0 ALT=""></a></TD>  68 :           <TD>  69 :       <a href="freeboard/list.php"  target="main">  70 :             <img SRC="img/menu_05.gif" WIDTH=86 HEIGHT=47                               border=0 ALT=""></a></TD>  71 :           <TD>  72 :             <a href="notice/list.php"  target="main">  73 :             <img SRC="img/menu_06.gif" WIDTH=90 HEIGHT=47                               border=0 ALT=""></a></TD>  74 :           <TD>  75 :             <a href="qna/list.php"  target="main">  76 :             <img SRC="img/menu_07.gif" WIDTH=85 HEIGHT=47                               border=0 ALT=""></a></TD>

방명록

자유게시판 버튼

자유게시판 목록보기 방명록 버튼

공지사항 버튼

자유게시판 버튼

공지사항 목록보기

질의응답 목록보기

Page 28: 쿠키와 세션

28 28

Section 01Section 0102【예제 9-2 】 top.php 【예제 9-2 】 top.php

77 :           <TD>  78 :       <a href="down/list.php"  target="main">  79 :       <img SRC="img/menu_08.gif" WIDTH=88 HEIGHT=47                         border=0 ALT=""></a></TD>  80 :           <TD>  81 :       <a href="survey/survey.php"  target="main">  82 :       <img SRC="img/menu_09.gif" WIDTH=89 HEIGHT=47                         border=0 ALT=""></a></TD>  83 :   </TR>  84 :     </table>  85 :           </td>  86 :         </tr>  87 :     </table>  88 : <!-- 메뉴끝 -->  89 : </body>  90 : </html>

설문조사 버튼

설문조사자료실 버튼

자료실 목록보기

Page 29: 쿠키와 세션

29 29

Section 01Section 01

초기 하단 프레임

02【예제 9-3 】 main_init.php 【예제 9-3 】 main_init.php

 1 : <html>  2 :  <head>  3 :   <title> :: PHP 프로그래밍 입문에 오신 것을 환영합니다 ~~ :: </title>  4 :   <link rel="stylesheet" href="style.css" type="text/css">  5 :  </head>  7 : <body leftmargin="0" topmargin="0" marginwidth="0“ marginheight="0">  8 : <table width="776" align="center" cellspacing="0" cellpadding="0“ border="0">  9 : <tr height=150><td></td></tr>  10 : <tr align=center>  11 : <td>   메인화면 입니다 . </td></tr>  15 : </table>  16 : </body>  17 : </html>

Page 30: 쿠키와 세션

4 장 회원 가입과 로그인회원 가입과 로그인10 장

Page 31: 쿠키와 세션

31 31

Section 01Section 01학습 목표학습 목표

작성된 회원가입 내용을 DB 테이블에 저장하는 방법을 익힌다

세션에 의한 로그인 처리에 대해 이해한다

아이디 중복 체크 기능을 이해한다

로그인 시 아이디와 비밀번호를 확인하고 처리하는 방법을 익힌다

로그아웃 시 세션을 삭제하는 방법을 익힌다 .

회원 정보를 수정하는 법을 익힌다 .

Page 32: 쿠키와 세션

32 32

Section 01Section 01주요 학습 내용주요 학습 내용

01. 회원가입

02. 로그인

03. 회원가입 및 로그인 동작 확인

Page 33: 쿠키와 세션

33 33

Section 01Section 01 회원가입 및 로그인 파일 목록회원가입 및 로그인 파일 목록01

파일명 설명

member.sql 회원가입 DB 테이블 생성 명령

member_form.html 회원가입 양식

insert.php 회원가입 양식 시 작성한 내용 DB 에 저장

modify_memberinfo.php 회원정보 수정 양식

check_id.php 아이디 중복 확인

modify.php 회원정보 DB 에서 수정

login_form.html 로그인 화면

login.php 로그인 시 아이디와 비밀번호 확인

logoff.php 로그 아웃 처리

[ 표 10-1] 회원 가입과 로그인에 사용되는 파일 목록

Page 34: 쿠키와 세션

34 34

Section 01Section 01 회원가입 /로그인 설치회원가입 /로그인 설치02

⑴ 교재 뒤에 첨부된 CD 의 "www" 폴더에서 “ dbconn.php"

파일과 “style.css” 파일을 찾아 여러분의 작업 폴더 (“C:\Apache\

htdocs\ 본인이니셜 \www") 밑으로 복사한다 .

⑵ 작업 폴더 (“www" 폴더 ) 밑에 “login" 폴더를 만들고 생성된

“ login" 폴더 밑에 교재 뒤 CD 의 “www\login" 폴더에 있는

파일들과 "img" 디렉토리를 통째로 복사한다 .

⑶ 회원가입 DB 테이블을 생성한다 .

Page 35: 쿠키와 세션

35 35

Section 01Section 01 회원가입 DB 테이블회원가입 DB 테이블03

필드 이름 타입 추가 사항 필드 설명

id varchar(10) not null, primary key 아이디

passwd varchar(10) not null 비밀 번호

name varchar(10) not null 이름

sex char(1)   성별

tel varchar(20)   전화 번호

address varchar(90)   주소

[ 표 10-2] 회원 가입 DB 테이블 ( 테이블 명 : member)

Page 36: 쿠키와 세션

36 36

Section 01Section 01 회원가입 DB 테이블 만들기회원가입 DB 테이블 만들기04

메모장으로 다음을 타이핑한 다음 “c:\mysql\bin” 폴더 밑에

“member.sql”이름으로 저장 create table member (     id varchar(10) not null,     passwd varchar(10) not null,     name varchar(10) not null,     sex char(1),     tel varchar(20),     address varchar(90),     primary key(id) );

명령 프롬프트에서 다음을 실행

 C:\mysql\bin> mysql -uphp5 -p1234 php5_db < member.sql

Page 37: 쿠키와 세션

37 37

Section 01Section 01

회원가입 폼 양식

02【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 1 : <html>  2 :  <body>  3 :   <head>  4 :    <script>  5 :     function check_id( )  6 :     { window.open("check_id.php?id=" + document.member_form.id.value,  8 :      "IDcheck","left=200, top=200, width=250,height=100,  9 :      scrollbars=no,resizable=yes");    }  11 :  12 :    function check_input( )  13 :    { if (!document.member_form.id.value)  15 :       {   alert(" 아이디를 입력하세요 ");     17 :           document.member_form.id.focus( );  18 :           return;    }

Page 38: 쿠키와 세션

38 38

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 21 :       if (!document.member_form.name.value)  22 :       {   alert(" 이름을 입력하세요 ");     24 :           document.member_form.name.focus( );  25 :            return;        }  27 :  28 :       if (!document.member_form.passwd.value)  29 :       {     alert(" 비밀번호를 입력하세요 ");     31 :           document.member_form.passwd.focus( );  32 :           return;       }  34 :  35 :       if (!document.member_form.passwd_confirm.value)  36 :       {     alert(" 비밀번호확인을 입력하세요 ");     38 :           document.member_form.passwd_confirm.focus( );  39 :           return;        }

Page 39: 쿠키와 세션

39 39

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 42 :       if (document.member_form.passwd.value !=  43 :             document.member_form.passwd_confirm.value)  44 :       { alert(" 비밀번호가 일치하지 않습니다 .\n 다시 입력해주세요 .");     46 :         document.member_form.passwd.focus( );  47 :         document.member_form.passwd.select( );  48 :         return;        }  51 :       document.member_form.submit( );  52 :    }  53 :  54 :    function reset_form( )  55 :    {   document.member_form.id.value = "";  57 :       document.member_form.name.value = "";  58 :       document.member_form.passwd.value = "";  59 :       document.member_form.passwd_confirm.value = "";  60 :       document.member_form.phone1.value = "";  61 :       document.member_form.phone2.value = "";  62 :       document.member_form.phone3.value = "";

Page 40: 쿠키와 세션

40 40

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 63 :       document.member_form.address.value = "";     65 :       document.member_form.id.focus( );  67 :       return;  68 :    }  69 :  70 :    </script>  71 :     <link rel="stylesheet" href="../style.css" type="text/css">   72 :   </head>  73 :  <body topmargin="0">  74 :     <table border=0 cellspacing=0 cellpdding=0 width='776'  75 :             align='center'>  76 :         <tr><td><img src="img/member_title.gif"></td></tr>  79 :         <tr><td background="img/bbs_bg.gif">  81 :           <img border="0" src="img/blank.gif" width="1" height="2">  82 :           </td>  83 :         </tr>  84 :     </table>

Page 41: 쿠키와 세션

41 41

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

85 :     <table align=center border="0" cellspacing="0" cellpadding="15"  86 :            width="718">  87 :         <tr><td align=center>  89 :     <form  name=member_form method=post action=insert.php>  90 :     <table border=0 cellspacing=0 cellpadding=0 align=center  91 :             width="682" >  92 :         <tr><td bgcolor=DEDEDE>  95 :     <table border="0" width=682 cellspacing="1" cellpadding="4">  96 :         <tr><td width=20% bgcolor=#F7F7F7 align=right  98 :                           style=padding-right:6>  99 :               * 아이디 :</td>  100 :           <td bgcolor=#FFFFFF style=padding-left:10>  101 :              <input type=text size=12 class=m_box  102 :               maxlength=12 name=id>  103 :              <font color=#2590B3></font>  104 :              <input type=button value=" 중복 확인 "  105 :                               onClick="check_id( )"> </td> </tr>

Page 42: 쿠키와 세션

42 42

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 108 :         <tr><td bgcolor=#F7F7F7 align=right style=padding-right:6>  110 :            * 이름 :</td>  111 :           <td bgcolor=#FFFFFF style=padding-left:10>  112 :              <input type=text size=12 class=m_box maxlength=12  113 :                     name=name></td> </tr>  115 :         <tr> <td bgcolor=#F7F7F7 align=right style=padding-right:6>  117 :            * 비밀번호 :</td>  118 :           <td bgcolor=#FFFFFF style=padding-left:10>  119 :            <input type=password size=10 class=m_box maxlength=10  120 :                   name=passwd><font color=#2590B3>  121 :               </font/></td> </tr>  123 :         <tr> <td bgcolor=#F7F7F7 align=right style=padding-right:6>  125 :                * 비밀번호 확인 :</td>  126 :           <td bgcolor=#FFFFFF style=padding-left:10>  127 :              <input type=password size=12 class=m_box maxlength=12  128 :                     name=passwd_confirm> </td>

Page 43: 쿠키와 세션

43 43

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 130 :         <tr><td bgcolor=#F7F7F7 align=right style=padding-right:6>  132 :            성별 :</td>  133 :           <td bgcolor=#FFFFFF style=padding-left:10>  134 :              <input type=radio name=sex value='M' checked>남  135 :              <input type=radio name=sex value='W'> 여  136 :           </td></tr>  138 :         <tr><td bgcolor=#F7F7F7 align=right style=padding-right:6>  140 :            휴대전화 :</td>  141 :           <td bgcolor=#FFFFFF style=padding-left:10>  142 :              <select class=input2 name=phone1>  143 :               <option value=''> 선택 </option>  144 :               <option value='010'>010</option>  145 :               <option value='011'>011</option>  146 :               <option value='016'>016</option> 147 :               <option value='017'>017</option>  148 :               <option value='018'>018</option>  150 :              </select>

Page 44: 쿠키와 세션

44 44

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 151 :             - <input type=text size=4 class=m_box name=phone2  152 :                maxlength=4>  153 :             - <input type=text size=4 class=m_box name=phone3  154 :                maxlength=4>   155 :           </td>  156 :         </tr>  157 :         <tr>  158 :           <td bgcolor=#F7F7F7 align=right  159 :                 style=padding-right:6 rowspan=3>  160 :               주 소 :</td>  161 :         </tr>  162 :         <tr>  163 :           <td bgcolor=#FFFFFF style=padding-left:10>  164 :              <input type=text size=50 class=m_box name=address>  165 :           </td>  166 :         </tr>         168 :     </table>

Page 45: 쿠키와 세션

45 45

Section 01Section 0102【예제 10-1 】 member_form.html 【예제 10-1 】 member_form.html

 169 :         <!---------- 회원가입 입력 폼 끝 --------------->  170 :           </td>  171 :         </tr>  172 :         <tr> <td align=center height=60>  174 :            <img src="img/ok.gif" border="0" onclick=check_input( )>  175 :            <img src="img/reset.gif" border="0"  176 :                      onclick=reset_form( )></td> </tr>  178 :            </form>  179 :     </table>      180 :           </td>  181 :         </tr>  182 :     </table>  183 :     <!------------- 컨텐츠 테이블 끝 ---------------->   185 :           </td> </tr> </table>  188 :   </body>  189 : </html>

Page 46: 쿠키와 세션

46 46

Section 01Section 0102【예제 10-2 】 check_id.php 【예제 10-2 】 check_id.php

아이디 중복 체크

1 : <?  2 :    if(!$id)  3 :    {  4 :       echo(" 아이디를 입력하세요 .");  5 :    }  6 :    else  7 :    {  8 :        include "../dbconn.php"; // DB 접속 및 선택 9 :   10 :       $sql = "select * from member where id='$id' ";  11 :  12 :       $result = mysql_query($sql, $connect);  13 :       $num_record = mysql_num_rows($result);

Page 47: 쿠키와 세션

47 47

Section 01Section 0102【예제 10-2 】 check_id.php 【예제 10-2 】 check_id.php

15 :       if ($num_record)  16 :       {  17 :          echo " 아이디가 중복됩니다 .<br>";  18 :          echo " 다른 아이디를 사용하세요 .<br>";  19 :       }  20 :       else  21 :       {  22 :          echo " 사용가능한 아이디입니다 .";  23 :       }  24 :      25 :       mysql_close( );  26 :    }  27 : ?>

Page 48: 쿠키와 세션

48 48

Section 01Section 0102【예제 10-3 】 dbconn.php 【예제 10-3 】 dbconn.php

데이터베이스 접속

1 : <?

 2 :    $connect = mysql_connect( "localhost", "php5",

"1234") or 

 3 :         die( "SQL server 에 연결할 수 없습니다 .");

 4 :

 5 :    mysql_select_db("php5_db",$connect);

 6 : ?>

Page 49: 쿠키와 세션

49 49

Section 01Section 01

회원 가입 내용 DB 저장

02【예제 10-4 】 insert.php 【예제 10-4 】 insert.php

1 : <?  3 :    include "../dbconn.php";       // dconn.php 파 일 을 불러옴  5 :    $sql = "select * from member where id='$id'";  6 :    $result = mysql_query($sql, $connect);  7 :    $exist_id = mysql_num_rows($result);  8 :  9 :    if($exist_id) { echo("  11 :            <script>  12 :              window.alert(' 해당 아이디가 존재합니다 .')  13 :              history.go(-1)  14 :            </script>  15 :          ");  16 :          exit;     }  19 :    $regist_day = date("Y-m-d (H:i)");  // 현 재 날짜 저장  20 :    $ip = $REMOTE_ADDR;         // 방문자의 IP 주소를 저장

Page 50: 쿠키와 세션

50 50

Section 01Section 0102【예제 10-4 】 insert.php 【예제 10-4 】 insert.php

22 :    if ($phone1 && $phone2 && $phone3)  23 :        $tel = $phone1."-".$phone2."-".$phone3;  24 :    else  25 :        $tel = "";  26 :  27 :    $sql = "insert into member(id, passwd, name, sex, tel, address) ";  28 :    $sql .= "values('$id', '$passwd', '$name', '$sex', '$tel', '$address')";  29 :  30 :    // 레코드 삽입 명령  31 :    mysql_query($sql, $connect);  // $sql 에 저장된 명령 실행  32 :  33 :    mysql_close( );                // DB 연결 끊기  34 :     35 :    Header("Location:login_form.html");  // login_form.html 로 이동  36 : ?>

Page 51: 쿠키와 세션

51 51

Section 01Section 0102【예제 10-5 】 login_form.html 【예제 10-5 】 login_form.html

로그인 폼 양식

 1 : <html>  2 :  <body>  3 :    <link rel="stylesheet" href="../style.css" type="text/css">  5 :     <form method=post action=login.php>  6 :     <table align=center>  7 :         <tr><td><img src="img/login.gif"></td></tr>  8 :         <tr height=1 bgcolor=#5AB2C8><td></td></tr>  9 :         <tr><td></td></tr>  10 :         <tr><td><img src="img/star.gif"> 아 이 디&nbsp;&nbsp;&nbsp; :  11 :         <input type="text" name="id" size="10" maxlength="10"></td>  12 :         </tr>  13 :         <tr><td><img src="img/star.gif"> 비밀번호 :  15 :  <input type="password" name="passwd" size="10" maxlength="10"> </td></tr>

Page 52: 쿠키와 세션

52 52

Section 01Section 0102【예제 10-5 】 login_form.html 【예제 10-5 】 login_form.html

18 :         <tr height=1 bgcolor=#5AB2C8><td></td> </tr>  19 :         <tr><td></td></tr>  20 :         <tr>  21 :           <td align=right>  22 :           <input type=image src="img/login_on.gif" border=0>  23 :           </a> &nbsp;  24 :   <a href="modify_memberinfo.php"><img src="img/member.gif“ border=0></a>  25 :           </td>  26 :         </tr>  27 :     </table>  28 :       </form>  29 :  30 :  </body>  31 : </html>

Page 53: 쿠키와 세션

53 53

Section 01Section 0102【예제 10-6 】 login.php 【예제 10-6 】 login.php

1 : <?  4 :    if(!$id) {   echo("<script>  7 :              window.alert(' 아이디를 입력하세요 .')  8 :              history.go(-1)  9 :            </script>  10 :          ");           exit;  12 :    }  13 :  14 :    if(!$passwd) { echo("<script>  17 :              window.alert(' 비밀번호를 입력하세요 .')  18 :              history.go(-1)  19 :            </script>  20 :          ");           exit;  22 :    }

로그인 처리

Page 54: 쿠키와 세션

54 54

Section 01Section 0102【예제 10-6 】 login.php 【예제 10-6 】 login.php

24 :    include "../dbconn.php";  25 :  26 :    $sql = "select * from member where id='$id'";  27 :    $result = mysql_query($sql, $connect);  28 :  29 :    $num_match = mysql_num_rows($result);  30 :  31 :    if(!$num_match)  32 :    { echo(" <script>  35 :              window.alert(' 등록되지 않은 아이디입니다 .')  36 :              history.go(-1)  37 :            </script> ");  39 :     }  40 :     else  41 :     {      $row = mysql_fetch_array($result);  44 :         $db_passwd = $row[passwd];

Page 55: 쿠키와 세션

55 55

Section 01Section 0102【예제 10-6 】 login.php 【예제 10-6 】 login.php

46 :         if($passwd != $db_passwd)  47 :         {   echo(" <script>  50 :                 window.alert(' 비밀번호가 틀립니다 .')  51 :                 history.go(-1)  52 :               </script> ");          exit;  56 :         }  57 :         else { $userid = $row[id];  60 :             $username = $row[name];  62 :            session_start( ); // 세션 초기화 63 :            session_register(userid); // 아이디 등록 64 :            session_register(username); // 이름 등록 65 :  66 :            echo(" <script>  68 :                 top.location.href = '../index.php';  69 :               </script>");         }  72 :    }         74 : ?>

Page 56: 쿠키와 세션

56 56

Section 01Section 0102【예제 10-7 】 logoff.php 【예제 10-7 】 logoff.php

로그아웃 처리

 1 : <?  2 :   session_start( ); // 세션 초기화 3 :   session_unregister("userid"); // 세션 변수 userid 삭제 4 :   session_unregister("username"); // 세 션 변 수 username 삭제 5 :  6 :   echo("  7 :        <script>  8 :           top.location.href = '../index.php';  9 :           </script>  10 :        ");  11 :  12 : ?>

Page 57: 쿠키와 세션

57 57

Section 01Section 01【예제 10-8 】 modify_memberinfo.php 【예제 10-8 】 modify_memberinfo.php

회원 정보 수정

 1 : <?  2 :     session_start( );  4 :     include "../dbconn.php";  5 :  6 :     $sql = "select * from member where id='$userid'";  7 :     $result = mysql_query($sql, $connect);  9 :     $row = mysql_fetch_array($result);  10 :  11 :     $phone = explode("-", $row[tel]);  12 :     $phone1 = $phone[0];  13 :     $phone2 = $phone[1];  14 :     $phone3 = $phone[2];  16 :     mysql_close( );  17 : ?>

Page 58: 쿠키와 세션

58 58

Section 01Section 01【예제 10-8 】 modify_memberinfo.php 【예제 10-8 】 modify_memberinfo.php

 82 :     <form  name=member_form method=post action=modify.php>  83 :     <table border=0 cellspacing=0 cellpadding=0 align=center width="682" >  84 :         <tr> <td bgcolor=DEDEDE>  86 :     <table border="0" width=682 cellspacing="1" cellpadding="4">  87 :         <tr> <td width=20% bgcolor=#F7F7F7 align=right style=padding-right:6> * 아이디 : </td>  90 :         <td bgcolor=#FFFFFF style=padding-left:10> <? echo $row[id] ?></td> </tr>  92 :         <tr>  93 :         <td bgcolor=#F7F7F7 align=right style=padding-right:6> * 이름 :</td>  94 :           <td bgcolor=#FFFFFF style=padding-left:10>  95 :  <input type=text size=12 class=m_box maxlength=12 name=name  96 :                     value='<? echo $row[name] ?>'></td> </tr>

Page 59: 쿠키와 세션

59 59

Section 01Section 01【예제 10-8 】 modify_memberinfo.php 【예제 10-8 】 modify_memberinfo.php

 111 :    <tr><td bgcolor=#F7F7F7 align=right style=padding-right:6> 성별 :</td>  113 :           <td bgcolor=#FFFFFF style=padding-left:10>  114 : <? 115 : if ($row[sex]=='M')  116 :  {  117 :       echo " <input type=radio name=sex value='M' checked> 남  119 :             <input type=radio name=sex value='W'> 여 ";  121 :  }  122 :       else  123 :     {  124 :       echo "<input type=radio name=sex value='M'> 남  126 :             <input type=radio name=sex value='W' checked>여 ";  128 :     }  129 : ?>  130 :           </td> </tr>

Page 60: 쿠키와 세션

60 60

Section 01Section 01【예제 10-8 】 modify_memberinfo.php 【예제 10-8 】 modify_memberinfo.php

 132 :         <tr>  133 :       <td bgcolor=#F7F7F7 align=right style=padding-right:6> 휴대전화 :</td>  134 :           <td bgcolor=#FFFFFF style=padding-left:10>  135 :          <input type=text size=4 class=m_box name=phone1 maxlength=4  136 :                    value='<? echo $phone1 ?>'>  137 :         - <input type=text size=4 class=m_box name=phone2 maxlength=4  138 :                    value='<? echo $phone2 ?>'>  139 :         - <input type=text size=4 class=m_box name=phone3 maxlength=4  140 :                    value='<? echo $phone3 ?>'>   141 :           </td>  142 :         </tr>

Page 61: 쿠키와 세션

61 61

Section 01Section 01【예제 10-8 】 modify_memberinfo.php 【예제 10-8 】 modify_memberinfo.php

156 :         <tr>  157 :           <td align=right height=60>  158 :    <img src="img/ok.gif" border="0" onclick=check_input( )>  159 : <img src="img/reset.gif" border="0" onclick=reset_form( )> </td>  160 :         </tr>  161 :   </form>  162 :     </table>      163 :           </td>  164 :         </tr>  165 :     </table>  168 :           </td>  169 :         </tr>  170 :     </table>  171 :   </body>  172 : </html>

Page 62: 쿠키와 세션

62 62

Section 01Section 01【예제 10-9 】 modify.php 【예제 10-9 】 modify.php

회원 정보 수정 처리

 1 : <?    session_start( );  4 :    include "../dbconn.php";       // dconn.php 파일을 불러옴  6 :    $regist_day = date("Y-m-d (H:i)");  // 현재 날짜 저장 7 :    $ip = $REMOTE_ADDR;         // 방문자의 IP 주소를 저장  8 :     9 :    if ($phone1 && $phone2 && $phone3)  10 :         $tel = $phone1."-".$phone2."-".$phone3;  11 :    else          $tel = "";  13 :  14: $sql = "update member set passwd='$passwd', name='$name' , ";  15 :    $sql .= "sex='$sex', tel='$tel', address='$address' where id='$userid'";  17 :    mysql_query($sql, $connect);  // $sql 에 저장된 명령 실행  19 :    mysql_close( );                // DB 연결 끊기  21 :    Header("Location:../main.php");  // main.php 로 이동  22 : ?>