보안을 그리다, 훈이

[Web Hacking / PHP & MySQL] 게시판 구현 - register.php / register_action.php 본문

Programming/PHP & MySQL

[Web Hacking / PHP & MySQL] 게시판 구현 - register.php / register_action.php

HooNeee 2021. 5. 2. 21:48

게시판 회원가입 기능을 위해 register.phpregister_action.php를 구현했다.

register.php는 login.php의 회원가입 버튼을 통해 접근할 수 있으며, 간단하게 아이디와 비밀번호 입력만으로 가입할 수 있게 했다.

 

 

[register.php 소스코드]

<!DOCTYPE html>
<html>

<head>
    <meta charset='utf-8'>
</head>

<body>
    <div align="center">
        <span>
            <p style="font-size: 25px;"><b>회원가입</b></p>
        </span>

        <form method='post' action='register_action.php'>
            <p><b>I &nbsp;D &nbsp;</b><input name="id" type="text"></p>
            <p><b>PW &nbsp;</b><input name="pw" type="password"></p>
            <br />
            <input type="submit" value="가입하기">
        </form>
    </div>
</body>

</html>

 

마찬가지로 ID와 PW를 POST 방식으로 register_action.php에 넘긴다.

 

 

[register.php 결과]


[register_action.php 소스코드]

<?php
$connect = mysqli_connect('127.0.0.1', 'root', 'password', 'db_board') or die("connect failed");

$id = $_POST['id'];
$pw = $_POST['pw'];

$date = date('Y-m-d H:i:s');

//id 중복 확인
$query1 = "select * from member where id='$id'";
$result1 = $connect->query($query1);
$count = mysqli_num_rows($result1);

if ($count) {      //만약 중복된 id가 있다면
?><script>
        alert('이미 존재하는 ID입니다.');
        history.back();
    </script>
    <?php } else {  //없다면
    //입력받은 데이터를 DB에 저장
    $query = "insert into member(id, password, date, permit) values('$id', '$pw', '$date', 0)";

    $result = $connect->query($query);

    //저장이 되었다면 (result = true) 가입 완료
    if ($result) {
    ?> <script>
            alert('회원가입에 성공하였습니다.');
            location.replace("./login.php");
        </script>

    <?php } else {
    ?> <script>
            alert("회원가입에 실패하였습니다.");
        </script>
<?php }
}
mysqli_close($connect);
?>

 

ID 중복 확인을 위해 받아온 ID를 DB의 member 테이블의 ID 속성값과 비교한 후, 중복된 ID가 존재하면 alert 창과 함께 다시 회원가입 페이지로 돌아가도록 하였다.

중복된 ID가 아니라면 ID, PW, 날짜, 권한을 DB에 저장하고, 성공하면 alert 창과 함께 login.php로 돌아가 사용자로 하여금 바로 로그인하도록 유도한다.

 

 

[register_action.php 회원가입 성공 결과]

[register_action.php 회원가입 실패 결과]

 

끝!!!

 

로그인과 회원가입 기능 구현이 완료되었으니, 다음 포스팅에서는 로그아웃 기능을 구현해보자!

Comments