2017. 8. 22. 21:44ㆍWebHacking/Web
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <?php // 회원가입시 입력하는 아이디,비밀번호,이메일값들을 변수에 저장한다 $user_id = $_POST[user_id]; $user_pw = $_POST[user_pw]; $email = $_POST[email]; if( $user_id != '' && $user_pw != '' && $email != '' ){ // 아이디, 비밀번호, 이메일을 입력했다면, // #1 MySQL에 접속한다 // mysql_connect( IP Address , 사용자계정, 비밀번호 ); => 식별자 or False 반환 $db = mysql_connect( localhost , 'root' , 'password1!' ); // MySQL 접속에 실패한다면, if( !$db ){ // die와 mysql_error()메서드 사용, // mysql_error() => 최신의 에러내용 출력 die('MySQL connect ERROR : ' . mysql_error()); // 그림1 } // #2 DB를 선택한다 // mysql_select_db( db명, mysql식별자 ); // mysql식별자 미입력시 최근 연결한 mysql이 자동으로 입력된다 $ret = mysql_select_db( 'bbs', $db); // True or False 반환 if ( !$ret ){ die('MySQL select ERROR : '. mysql_error()); // 그림2 } // #3 Query 실행 // 중북되는 값 확인하기 // $user_id : 사용자가 가입하려고 하는 아이디 // 해당 아이디가 DB에 있는지 확인한다 $sql = "SELECT * FROM user WHERE user_id='{$user_id}'"; // mysql_query( 변수 ); => 변수에 저장된 쿼리문을 실행한다 // SELECT 구문은 resource or False 반환 // 나머지 구문들은 True or False 반환 $resource = mysql_query( $sql ); // mysql_num_rows( resource ); => 행의 개수 반환 $num = mysql_num_rows( $resource ); if ( $num > 0 ){ // 아이디가 이미 존재한다면 이전 페이지로 돌아가자 // 그림4 echo "<script> alert('이미 존재하는 아이디입니다.');</script>"; echo "<script>window.history.back();</script>"; exit(0); } // 아이디가 존재 하지 않다면 $sql = "INSERT INTO user(user_id, user_pw, email) VALUE( '{$user_id}',md5('{$user_pw}'),'{$email}')"; $ret = mysql_query( $sql ); // True or False 반환 if ( $ret ){ echo "<script> alert('회원가입이 완료되었습니다');</script>"; // 그림3 echo "<meta http-equiv='refresh'content=\"0;url='http://192.168.6.123/index.php'\">"; // 그림5 exit(0); }else{ die('MySQL Query ERROR : '. mysql_error()); } }else ?> <!DOCTYPE html> <html lang="en"> <head> <title>회원가입 페이지</title> <link href="bootstrap-3.3.2-dist/css/bootstrap.min.css" rel="stylesheet"> <link href="signup.css" rel="stylesheet"> </head> <body> <div class="container"> <form class="form-signin" method=POST > <h2 class="form-signin-heading">Please Sign Up</h2> <!-- 아이디 !--> <input type="text" name="user_id" class="form-control" placeholder="User ID" required autofocus> <!-- 비밀번호 !--> <input type="password" name="user_pw" class="form-control" placeholder="Password" required> <!-- 이메일 !--> <input type="email" name="email" class="form-control" placeholder="Email Address" required> <button class="btn btn-lg btn-primary btn-block" type="submit">Sign Up</button> </form> </div> <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script> </body> </html> <?php } ?> | cs |
1> die( "MYSQL connect ERROR : ", mysql_error() );
mysql_connect( localhost , 'root' , 'password1!' ); 명령의 비밀번호를 틀리게 입력했다면 아래와 같은 화면이 출력된다
2> die( "MySQL select ERROR : " , mysql_error);
mysql_select_db( 'bbs', $db); 에서 DB명을 틀리게 입력했다면 아래와 같은 화면이 출련된다
3> 정상적인 코드를 실행
4> SELECT 구문 확인
이전에 user1 이라는 아이디로 가입했다면, bbs DB의 user테이블에는 user1 이라는 아이디값이 존재한다
[ 코드 실행결과 ]
$sql = "SELECT * FROM user WHERE user_id = '{$user_id}'";
$resource = mysql_query( $sql );
$num = mysql_num_rows( $resource ); == $num = 1
if ( $num > 0 ) 조건에 걸리게 되어 alert ("이미 존재하는 아이디입니다 " ) 명령이 실행되고 회원가입에 실패합니다
5> INSERT 구문 확인
[ 코드 실행 결과 ]
$sql = INSERT INTO user($user_id,$user_pw,$email) VALUE( '{$user_id}' , md5('{$user_pw}') , '{$email}' );
$ret = mysql_query( $sql ); // user테이블에 데이터들이 저장되고 True 반환
if ( $ret ) => True ( 회원가입 완료 )
=> <meta http-equiv='refresh' content=\"0;url='http://192.168.6.123/index.php \">";
=>게시판 첫 페이지(index.php)로 이동
'WebHacking > Web' 카테고리의 다른 글
PHP와 MySQL을 활용한 게시판 만들기[3] - 로그아웃, 게시글작성 (0) | 2017.08.24 |
---|---|
PHP와 MySQL을 활용한 게시판 만들기[2] - 로그인 (0) | 2017.08.23 |
MySQL설치 및 DB생성 / Table 생성 (0) | 2017.08.21 |
PHP Cookie / Session 생성 및 초기화 (0) | 2017.08.18 |
PHP GET / POST 개념 및 사용방법 (1) | 2017.08.17 |