8장 쿠키와 세션.

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
XHTML Basic 제 13 장 1. XHTML Basic의 개요 2. XHTML Basic 기본 문법 3. 표 만들기
베플리-T 2.8 설치 매뉴얼 1. 윈도우 XP에서 설치하기 p.2
CHAPTER 15. JSP.
10장 회원 가입과 로그인 한빛미디어(주).
09장 실습 웹 사이트 소개와 회원가입 페이지 제작.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
예방접종 정보 SITE.
Database Laboratory, Hong Ik University
13장 공지사항 한빛미디어(주).
MySQL 연동 PHP 프로그래밍 기초 순천향대학교 정보기술공학부 이상정.
예제모음.
11장 방명록 한빛미디어(주).
Project No 김현수 최종 작성일 :
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
13장. 자바빈과 데이터베이스를 연동한 게시판 시스템
Web Server와 DB 연동.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
14장 질의응답 한빛미디어(주).
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
4-1장. MySQL 제13장.
홈페이지 만들기 HTML HyperText Markup Language 홈페이지를 만들 때 사용하는 언어
07장. <TABLE> 태그로 표 디자인하기
5. JSP의 내장객체1.
16장 설문조사 한빛미디어(주).
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
KHS JDBC Programming 4 KHS
5장 Mysql 데이터베이스 한빛미디어(주).
DB연동하기 원격db접속.
You YoungSEok Oracle 설치 You YoungSEok
BIZSIREN 실명확인서비스 개발 가이드 서울신용평가정보㈜ 신용조회부 (TEL , FAX )
HTML.
Neo-plus2 서버 및 클라이언트 설정 방법
CHAP 13. 방명록 만들기 실습.
게임웹사이트운영 [10] 폼 작성.
9장 웹 사이트 초기 화면 제작 한빛미디어(주).
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
JSP Programming with a Workbook
15장 자료실 한빛미디어(주).
홍익대학교 메일 시스템 구축 그룹웨어 메일 이전 하기.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
Data Base Web Programming
폼 관련 태그 폼 양식 직접 만들어보기 회원가입 절차 4단계
8장 쿠키와 세션 한빛미디어(주).
08장 쿠키와 세션.
12장 자유게시판 한빛미디어(주).
17장 웹 사이트 제작 완성 한빛미디어(주).
※ 편리한 사이버 연수원 사용을 위한 인터넷 최적화 안내 ※
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
LOGIN할 때 아이디, 비번 입력 여부 체크하기
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
PHP 웹 프로그래밍 (PHP Web Programming) 미리 정의된 함수 문양세 강원대학교 IT대학 컴퓨터과학전공.
세션 (Session) Yang-Sae Moon Department of Computer Science
JSP Programming with a Workbook
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
HTML HTML 기본 구조와 태그 다양한 태그 다루기
Data Base Web Programming
웹과 모바일 홈페이지의 이해와 제작 [PHP / MYSQL] 게시판 만들기
숙제 작성 및 제출 과정 김진하 2008/03/14.
 6장. SQL 쿼리.
이 프레젠테이션은 PowerPoint의 새로운 기능에 대해 안내하며, 슬라이드 쇼에서 가장 잘 보입니다
Presentation transcript:

8장 쿠키와 세션

학습 목표 쿠키의 개념에 대하여 이해한다 쿠키를 생성하고 삭제하는 방법을 익힌다 세션 개념을 이해하고 쿠기와의 차이점을 이해한다 세션의 초기화, 생성, 삭제하는 방법을 익힌다. 등록된 세션 변수의 사용법을 익힌다

주요 학습 내용 01. 쿠키 02. 세션

쿠키란? 01 로그인한 다음 사이트의 어떠한 페이지로 이동하여도 로그인 상태가 유지 쿠키 : 클라이언트 사용자가 웹 서버에 접속하여 로그인 하였을 때 클라이언트 컴퓨터에 저장되는 데이터 사이트의 어떠한 페이지에서도 로그인된 상태와 로그인된 아이디 등을 이용 가능 만약 쿠기라는 개념이 없다면 로그인 시 로그인 상태와 로그인 아이디를 DB에 써 넣어야 함

쿠키 생성 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 로 설정하면 접속에서만 쿠키가 설정

【예제 8-1】cookie1.php 02 쿠키 생성 예 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 ?>

【예제 8-2】cookie2.php 02 생성된 쿠키 사용 예 01 <? 02    echo "생성된 'userid' 쿠키 : ".$_COOKIE[userid]."<br>"; 03    echo "생성된 'username' 쿠키 : ".$_COOKIE[username]."<br>"; 04 ?>

【예제 8-3】cookie3.php 02 쿠키 삭제 예 01 <? 02      setcookie("userid");      // userid 쿠키 삭제 03      setcookie("username");       // username 쿠기 삭제 04 05 06      echo "생성된 'userid' 쿠키 : ".$_COOKIE[userid]."<br>"; 07      echo "생성된 'username' 쿠키 : ".$_COOKIE[username]."<br>"; 08   ?>

세션이란? 02 쿠기가 로그인 정보를 클라이언트 컴퓨터에 저장하는데 반하여 세션에서는 보안상 로그인 정보를 서버에 저장 PHP 4에서 추가 되었는데 웹 사이트에 연속적으로 접속할 때 이전의 접속 정보를 이용할 수 있는 방법을 제공 서버에서 세션 아이디(Session id)라고 부르는 유일한 아이디를 부여하여 서버의 특정 디렉토리에 저장 세션 아이디는 또한 클라이언트 컴퓨터에 저장되거나 URL를 통하여 클라이언트를 통하여 전달

【예제 8-4】session1.php 02 session_start( ) 함수 <? session_start();  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>"; ?>

【예제 8-5】session2.php 02 등록된 세션 사용 예 <? session_start();    echo '세션이 시작되었습니다.<br><br>';    echo $_SESSION['color'].'<br>';    echo $_SESSION['animal'].'<br>';     echo date('Y-m-d(H:i:s)', $_SESSION['time']); ?>

【예제 8-6】session3.php 02 세션 등록의 세가지 방법 <?    // 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>"; ?>

【예제 8-7】session4.php 02 등록된 세션 출력 예 <? 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>'; ?>

【예제 8-8】session5.php 02 세션 삭제 <? 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 "세션 변수가 모두 삭제 되었습니다."; ?>

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

학습 목표 완성된 실습 홈페이지의 기능을 이해한다 홈페이지의 프레임 구성을 이해한다 세션 변수를 이용하는 법을 익힌다 홈페이지 초기 화면을 제작하는 법을 익힌다.

주요 학습 내용 01. 완성된 홈페이지 02. 홈페이지 초기 화면

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

실습 홈페이지 기능 02 ⑴ 회원가입 및 로그인 기능 ⑵ 블로그형 방명록 ⑶ 누구나 자유롭게 글을 쓸 수 있는 자유게시판 ⑷ 관리자만이 글을 쓸 수 있는 리플형의 공지사항 게시판 ⑸ 답변글을 올릴 수 있는 질의응답 게시판 ⑹ 파일 첨부 기능이 있는 자료실 ⑺ 설문조사

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

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

하단 프레임(메인 부분) : main_init.php 초기 홈페이지 프레임 구성 05 상단 프레임(메뉴 부분) : top.php 하단 프레임(메인 부분) : main_init.php 사용되는 3개 파일 ⑴ index.php : 메인 화면의 틀 ⑵ top.php   : 메인 화면의 상단 프레임(메뉴 부분) ⑶ main_init.php : 메인 화면의 하단 프레임(메인 부분)

【예제 9-1】index.php 02 홈페이지 화면의 프레임 틀 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>

【예제 9-2】top.php 02 상단 프레임  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>

【예제 9-2】top.php 02 31 : <? 32 : if (!$userid) 33 : {  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 :     }

【예제 9-2】top.php 02 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 : ?>

【예제 9-2】top.php 02 방명록 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  71 :           <TD>  72 :             <a href="notice/list.php"  target="main">  73 :             <img SRC="img/menu_06.gif" WIDTH=90 HEIGHT=47  74 :           <TD>  75 :             <a href="qna/list.php"  target="main">  76 :             <img SRC="img/menu_07.gif" WIDTH=85 HEIGHT=47 자유게시판 목록보기 방명록 버튼 공지사항 목록보기 자유게시판 버튼 질의응답 목록보기 공지사항 버튼 자유게시판 버튼

【예제 9-2】top.php 02 77 : <TD> 자료실 목록보기 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  83 :   </TR>  84 :     </table>  85 :           </td>  86 :         </tr>  87 :     </table>  88 : <!--메뉴끝-->  89 : </body>  90 : </html> 자료실 버튼 설문조사 설문조사 버튼

【예제 9-3】main_init.php 02 초기 하단 프레임 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>

10장 회원 가입과 로그인

학습 목표 작성된 회원가입 내용을 DB 테이블에 저장하는 방법을 익힌다 세션에 의한 로그인 처리에 대해 이해한다 아이디 중복 체크 기능을 이해한다 로그인 시 아이디와 비밀번호를 확인하고 처리하는 방법을 익힌다 로그아웃 시 세션을 삭제하는 방법을 익힌다. 회원 정보를 수정하는 법을 익힌다.

주요 학습 내용 01. 회원가입 02. 로그인 03. 회원가입 및 로그인 동작 확인

회원가입 및 로그인 파일 목록 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] 회원 가입과 로그인에 사용되는 파일 목록

회원가입/로그인 설치 02 ⑴ 교재 뒤에 첨부된 CD의 "www" 폴더에서 “dbconn.php" 파일과 “style.css” 파일을 찾아 여러분의 작업 폴더(“C:\Apache\htdocs\본인이니셜\www") 밑으로 복사한다. ⑵ 작업 폴더(“www" 폴더) 밑에 “login" 폴더를 만들고 생성된 “login" 폴더 밑에 교재 뒤 CD의 “www\login" 폴더에 있는 파일들과 "img" 디렉토리를 통째로 복사한다. ⑶ 회원가입 DB 테이블을 생성한다.

회원가입 DB 테이블 03 필드 이름 타입 추가 사항 필드 설명 id varchar(10) not null, primary key 아이디 passwd not null 비밀 번호 name 이름 sex char(1)   성별 tel varchar(20) 전화 번호 address varchar(90) 주소 [표 10-2] 회원 가입 DB 테이블(테이블 명 : member)

회원가입 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

【예제 10-1】member_form.html 02 회원가입 폼 양식  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;    }

【예제 10-1】member_form.html 02  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;        }

【예제 10-1】member_form.html 02  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 = "";

【예제 10-1】member_form.html 02  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>

【예제 10-1】member_form.html 02 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>

【예제 10-1】member_form.html 02  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>

【예제 10-1】member_form.html 02  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>

【예제 10-1】member_form.html 02  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>

【예제 10-1】member_form.html 02  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>

【예제 10-2】check_id.php 02 아이디 중복 체크 1 : <? 2 : if(!$id) 3 : {  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);

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

【예제 10-3】dbconn.php 02 데이터베이스 접속 1 : <?  2 :    $connect = mysql_connect( "localhost", "php5", "1234") or   3 :         die( "SQL server에 연결할 수 없습니다.");  4 :  5 :    mysql_select_db("php5_db",$connect);  6 : ?>

【예제 10-4】insert.php 02 회원 가입 내용 DB 저장 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 주소를 저장

【예제 10-4】insert.php 02 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 : ?>

【예제 10-5】login_form.html 02 로그인 폼 양식 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">아이디    :  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>

【예제 10-5】login_form.html 02 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>    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>

【예제 10-6】login.php 02 로그인 처리 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 :    }

【예제 10-6】login.php 02 24 : include "../dbconn.php"; 25 :  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];

【예제 10-6】login.php 02 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 : ?>

【예제 10-7】logoff.php 02 로그아웃 처리 1 : <?  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 : ?>

【예제 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 : ?>

【예제 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>

【예제 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>

【예제 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  138 :                    value='<? echo $phone2 ?>'>  139 :         - <input type=text size=4 class=m_box name=phone3  140 :                    value='<? echo $phone3 ?>'>   141 :           </td>  142 :         </tr>

【예제 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>

【예제 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 : ?>