24
10 장 장장장/장장장장 장장장장 장장 장장

10 장 로그인 / 로그아웃 회원정보 수정 처리

  • Upload
    marnie

  • View
    99

  • Download
    0

Embed Size (px)

DESCRIPTION

10 장 로그인 / 로그아웃 회원정보 수정 처리. 세션을 이용한 로그인 / 로그아웃처리 세션변수 활용법 회원정보 DB 에서 읽어오기 회원정보 업데이트. 로그인과 로그아웃 처리 회원정보 수정 처리. 1. 로그인과 로그아웃 처리. [ 그림 10-1] 로그인 후 메인 화면. 1.2 로그인 페이지 제작. [ 그림 10-2] 로그인 페이지. 예제 10-1 로그인 페이지. login_form.php. 01 - PowerPoint PPT Presentation

Citation preview

10장 로그인 /로그아웃회원정보 수정 처리

IT CookBook,PHP 웹 프로그래밍 입문 ( 개정판 )

[ 강의교안 이용 안내 ]• 본 강의교안의 저작권은 한빛아카데미㈜에 있습니다 . • 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136 조에 의거하여 최고 5 년

이하의 징역 또는 5 천만원 이하의 벌금에 처할 수 있고 이를 병과 ( 倂科 ) 할 수도 있습니다 .

학습목표 세션을 이용한 로그인 / 로그아웃처리 세션변수 활용법 회원정보 DB 에서 읽어오기 회원정보 업데이트

목차1. 로그인과 로그아웃 처리2. 회원정보 수정 처리

1. 로그인과 로그아웃 처리

[ 그림 10-1] 로그인 후 메인 화면

1.2 로그인 페이지 제작

[ 그림 10-2] 로그인 페이지

예제 10-1 로그인 페이지 login_form.php

01 <?02 session_start();03 ?> <!-- 생략 -->12 <body>13 <div id="wrap">14 <div id="header">15 <? include "../lib/top_login2.php"; ?>16 </div> <!-- end of header -->1718 <div id="menu">19 <? include "../lib/top_menu2.php"; ?>20 </div> <!-- end of menu --> 2122 <div id="content">23 <div id="col1">24 <div id="left_menu">25 <? include "../lib/left_menu.php"; ?>26 </div> <!-- end of left_menu -->27 </div> <!-- end of col1 -->

예제 10-1 로그인 페이지 login_form.php

2829 <div id="col2">30 <form name="member_form" method="post" action="login.php"> 31 <div id="title">32 <img src="../img/title_login.gif">33 </div> <!-- end of title-->3435 <div id="login_form">36 <img id="login_msg" src="../img/login_msg.gif">37 <div class="clear"></div>38 39 <div id="login1">40 <img src="../img/login_key.gif">41 </div> <!-- end of login1 -->42 <div id="login2">43 <div id="id_input_button">44 <div id="id_pw_title">

예제 10-1 로그인 페이지 login_form.php

45 <ul>46 <li><img src="../img/id_title.gif"></li>47 <li><img src="../img/pw_title.gif"></li>48 </ul>49 </div> <!-- emd of id_pw_title-->50 <div id="id_pw_input">51 <ul>52 <li><input type="text" name="id" class="login_input"></li>53 <li><input type="password" name="pass" class="login_input"></li>54 </ul>55 </div> <!-- end of id_pw_input-->56 <div id="login_button">57 <input type="image" src="../img/login_button.gif">58 </div> <!-- end of login button-->59 </div> <!-- end of id_input_button-->6061 <div class="clear"></div> 62 <div id="login_line"></div>

예제 10-1 로그인 페이지 login_form.php

63 <div id="join_button"><img src="../img/no_join.gif">&nbsp;&nbsp; &nbsp;&nbsp; <a href="../member/member_form.php"><img src="../img/join_button.gif"> </a></div>64 </div> <!-- end of login2-> 65 </div> <!-- end of form_login -->66 67 </form>68 </div> <!-- end of col2 -->69 </div> <!-- end of content -->70 </div> <!-- end of wrap -->71 72 </body>73 </html>

예제 10-2 로그인 처리 login.php

01 <?02 session_start();03 ?>04 <meta charset="euc-kr">05 <?06 // 이전 화면에서 이름이 입력되지 않았으면 " 이름을 입력하세요 ."07 // 메시지 출력08 if(!$id)09 {10 echo("11 <script>12 window.alert(' 아이디를 입력하세요 .')13 history.go(-1)14 </script>15 ");16 exit;17 }18

예제 10-2 로그인 처리 login.php

19 if(!$pass)20 {21 echo("22 <script>23 window.alert(' 비밀번호를 입력하세요 .')24 history.go(-1)25 </script>26 ");27 exit;28 }29 30 include "../lib/dbconn.php";31 32 $sql="select * from member where id='$id'";33 $result=mysql_query($sql, $connect);34 $num_match=mysql_num_rows($result);35

예제 10-2 로그인 처리 login.php

36 if(!$num_match) 37 {38 echo("39 <script>40 window.alert(' 등록되지 않은 아이디입니다 .')41 history.go(-1)42 </script>43 ");44 }45 else46 {47 $row=mysql_fetch_array($result);48 $db_pass=$row[pass];49

예제 10-2 로그인 처리 login.php

50 if($pass!=$db_pass)51 {52 echo("53 <script>54 window.alert(' 비밀번호가 틀립니다 .')55 history.go(-1)56 </script>57 ");58 exit;59 }60 else61 {62 $userid=$row[id];63 $username=$row[name];64 $usernick=$row[nick];65 $userlevel=$row[level];66

예제 10-2 로그인 처리 login.php

67 $_SESSION['userid']=$userid;68 $_SESSION['username']=$username;69 $_SESSION['usernick']=$usernick;70 $_SESSION['userlevel']=$userlevel;71 72 echo("73 <script>74 location.href='../index.php';75 </script>76 ");77 }78 } 79 ?>

예제 10-3 로그아웃 처리 logout.php

01 <?02 session_start();03 unset($_SESSION['userid']);04 unset($_SESSION['username']);05 unset($_SESSION['usernick']);06 unset($_SESSION['userlevel']);07 08 echo("09 <script>10 location.href='../index.php'; 11 </script>12 ");13 ?>

2.1 회원정보 수정 페이지 생성

[ 그림 10-4] 회원정보 수정 페이지

예제 10-4 회원정보 수정 페이지 member_form_modify.php

<!-- 생략 -->091 <?092 include "../lib/dbconn.php";093 094 $sql="select * from member where id='$userid'";095 $result=mysql_query($sql, $connect);096 $row=mysql_fetch_array($result);097 098 $hp=explode("-", $row[hp]);099 $hp1=$hp[0];100 $hp2=$hp[1];101 $hp3=$hp[2];102 103 $email=explode("@", $row[email]);104 $email1=$email[0];105 $email2=$email[1];106107 mysql_close();108 ?>

예제 10-4 회원정보 수정 페이지 member_form_modify.php

109 <body><!-- 생략 -->

126 <div id="col2">127 <form name="member_form" method="post" action="modify.php"> 128 <div id="title">129 <img src="../img/title_member_modify.gif">130 </div> <!-- end of title -->131 <div id="form_join">132 <div id="join1">133 <ul>134 <li>* 아이디 </li>135 <li>* 비밀번호 </li>136 <li>* 비밀번호 확인 </li>137 <li>* 이름 </li>138 <li>* 닉네임 </li>139 <li>* 휴대폰 </li>140 <li>&nbsp;&nbsp;&nbsp; 이메일 </li>141 </ul>142 </div> <!-- end of join -->

예제 10-4 회원정보 수정 페이지 member_form_modify.php

143 <div id="join2">144 <ul>145 <li><?= $row[id] ?></li>146 <li><input type="password" name="pass" value="<?= $row[pass] ?>"></li>147 <li><input type="password" name="pass_confirm" value="<?= $row[pass] ?>"></li>148 <li><input type="text" name="name" value="<?= $row[name] ?>"></li>149 <li><div id="nick1"><input type="text" name="nick" value="<?= $row[nick] ?>"></div> <div id="nick2" > <a href="#"> <img src="../img/check_id.gif" onclick="check_nick()"></a></div></li>150 <li><input type="text" class="hp" name="hp1" value="<?= $hp1 ?>"> 151 - <input type="text" class="hp" name="hp2" value="<?= $hp2 ?>"> - <input type="text" class="hp" name="hp3" value="<?= $hp3 ?>"></li>152 <li><input type="text" id="email1" name="email1" value="<?= $email1 ?>"> @ <input type="text" name="email2" value="<?= $email2 ?>"></li>153 </ul>154 </div>

예제 10-4 회원정보 수정 페이지 member_form_modify.php

155 <div class="clear"></div>156 <div id="must"> * 는 필수 입력항목입니다 .^^</div>157 </div> 158 159 <div id="button"><a href="#"><img src="../img/button_save.gif" onclick="check_input()"></a>&nbsp;&nbsp;160 <a href="#"><img src="../img/button_reset.gif" onclick="reset_form()"></a>161 </div> 162 </form>163 </div> 164 </div> 165 </div> 166 167 </body>168 </html>

explode() 함수• 함수 형식 array explode (string separator, string string) - 첫 번째 인자 : 문자열을 나누는 기준 - 두 번째 인자 : 분리할 문자열

• 기능 첫 번째 인자인 separator 를 기준으로 두 번째 인자인 string 문자열을 나누어 , 배열 형태로 반환 한다 .

• 사용 예 <? $date=“2013/03/09"; $a=explode("/", $date); echo $a[0].“<br>”; //2013 echo $a[1].“<br>”; //03 echo $a[2]; //09 ?>

explode() 함수는 / 를 기준으로 변수 $date 의 문자열 2013/03/09 를 쪼개서 각각의 원소를 $a 에 배열 형태로 저장한다 . 따라서 $a[0] 에는 2013, $a[1] 에는 03, $a[02] 에는 09 가 저장된다 .

• 실행결과

2013 03 09

예제 10-5 데이터베이스에 회원정보 업데이트 modify.php

01 <?02 session_start();03 ?>04 <meta charset="euc-kr">05 <?06 $hp=$hp1."-".$hp2."-".$hp3;07 $email=$email1."@".$email2;08 $regist_day=date("Y-m-d (H:i)"); // 현재 날짜 ( 년 - 월 - 일 -시 - 분 ) 저장09 10 include "../lib/dbconn.php"; // dconn.php 파일을 불러옴11 12 $sql="update member set pass='$pass', name='$name' , ";13 $sql.="nick='$nick', hp='$hp', email='$email', regist_day='$regist_day' where id='$userid'";14 15 mysql_query($sql, $connect); // $sql 에 저장된 명령 실행16

예제 10-5 데이터베이스에 회원정보 업데이트 modify.php

17 mysql_close(); // 데이터베이스 연결 종료18 echo ("19 <script>20 location.href='../index.php';21 </script>22 ");23 ?>