PHP와 MySQL을 활용한 게시판 만들기[1] - 회원가입

2017. 8. 22. 21:44WebHacking/Web




#1 게시판에 접속하기 전 회원가입 페이지



[ 회원가입 PHP 소스코드 ]

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)로 이동