PHP&MySQL 아이디 중복검사 2 - alert형

2022. 2. 10. 14:59Study/PHP&MySQL

회원가입 시 id 중복체크

아이디 입력 input 옆에 button으로 id 중복검사를 하는 방법

 

 

form.html

id중복검사 버튼에 onclick으로 check_id() 스크립트를 걸어준다.

새창을 띄워 사용 가능한 id인지 알려줌 (요즘엔 잘 쓰지 않는다)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>form값 전달 및 아이디 중복검사</title>
    <style>
       *{margin:0 ; padding:0}
       body{padding: 50px;}
       table{ border-collapse:collapse; width:400px }
       th{ padding:10px; border:1px solid #ccc; background:#FC6}
       td{ padding:10px; border:1px solid #ccc}
       .but{ text-align:center}
       input{ padding:3px}
    </style>
    <script>
        function check_id(){   // 아이디 중복 검사
            var formid=document.member_form.id.value;
            location.href="check_id.php?id="+formid;
        }
    </script>
</head>
<body>
    <form  name="member_form" method="post" action="insert.php"> 
        <table>
            <tr>
                <th>id</th>
                <td>
                    <input type="text" id="id" name="id">
                    <input type="button" value="id중복검사" onclick="check_id()">
                </td>
            </tr>
            <tr>
                <th>pass</th>
                <td><input type="password" id="pass" name="pass"></td>
            </tr>
            <tr>
                <th>name</th>
                <td><input type="text" id="name" name="name"></td>
            </tr>
            <tr>
                <th>hp</th>
                <td><input type="text" id="hp" name="hp"></td>
            </tr>
            <tr>
                <th>email</th>
                <td><input type="text" id="email" name="email"></td>
            </tr>
            <tr>
                <td class="but" colspan="2">
                    <input type="submit" value="회원가입">
                    <input type="reset" value="다시쓰기">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

 

 

 

insert.php

<meta charset="UTF-8">

<?
    $id = $_POST['id'];
    $pass = $_POST['pass'];
    $name = $_POST['name'];
    $hp = $_POST['hp'];
    $email = $_POST['email'];

    $connect=mysql_connect( "localhost", "song", "1234");    // DB접속
    mysql_select_db("song_db",$connect);

    $sql = "select * from memberTable where id='$id'";  // 동일한 아이디가 존재하는지 검색
    $result = mysql_query($sql, $connect);
    $exist_id = mysql_num_rows($result);

    if($exist_id) {         // 검색 레코드 개수가 1이상이면.. 참
        echo "
        <script type='text/javascript'>
            alert('해당 아이디가 존재합니다.');
            history.go(-1);    
        </script>
        ";
        exit;   // insert.php를 빠져 나온다
    }
    else            // 검색 레코드가 0이면.. 동일한 아이디의 레코드가 없다는 ..
    {            // 레코드 삽입 명령을 $sql에 입력
        $sql = "insert into memberTable(id, pass, name, hp, email) ";
        $sql .= "values('$id', '$pass', '$name', '$hp', '$email')";
        mysql_query($sql, $connect);  // $sql 에 저장된 명령 실행
    }

    mysql_close($connect);                // DB 연결 끊기

    echo "
        <script>
            alert('회원가입처리가 되었습니다.');
            location.href = 'form.html'; 
        </script>
    ";
?>

 

 

check_id.php

<meta charset="UTF-8">

<?
    $id = $_GET['id'];

    if(!$id){         // id값이 NULL이면..
    
        echo"
            <script>
                alert('아이디를 입력하세요.');
                history.go(-1);
            </script>
        "; 
    } else {
        $connect=mysql_connect( "localhost", "song", "1234");    // DB접속
        mysql_select_db("song_db",$connect);

        $sql = "select * from memberTable where id='$id' ";
        //사용자가 입력한 아이디와 동일한 아이디가 있는지 검색

        $result = mysql_query($sql, $connect);   // 명령을 실행하고 결과를 result 변수에 넣는다.
        $num_record = mysql_num_rows($result);  // 저장된 레코드의 개수를 구한다


        if ($num_record){   //레코드 개수가 0이 아니면...

            echo"
                <script>
                    alert('아이디가 중복됩니다! 다른 아이디를 사용하세요.');
                    history.go(-1); 
                </script>
            ";  
            exit; 
        } else {
            echo"
                <script>
                    alert('사용가능한 아이디입니다.');
                </script>
            ";
        }
    
        mysql_close($connect);  //접속을 끊는다
        
        echo "
            <script>
                history.go(-1); 
            </script>
        ";
    }
?>