본문 바로가기

Web/Develop_PHP+MySQL

웹 사이트 만들기 - ID 중복 처리하기

1. signup.php

<?php
// DB 연결 정보 가져오기
include("dbconn.php");

// input 태그에서 전달된 사용자 입력 값 가져오기
$userid = $_POST['userid'];
$userpw = $_POST['userpw'];
$name = $_POST['name'];
$email = $_POST['email'];

// 중복된 id 체크 쿼리 작성
$idcheck = $conn->prepare("SELECT userid FROM users WHERE userid=?");
$idcheck->bind_param("s", $userid);
$idcheck->execute();

// 반환된 SELECT 결과 저장
$checkresult = $idcheck->get_result();

// 회원 정보 DB 추가 쿼리 작성
$sql = $conn->prepare("INSERT INTO users(userid,userpw,name,email,created) VALUES(?, ?, ?, ?, NOW())");
$sql->bind_param("ssss", $userid, $userpw, $name, $email);

// 반환된 SELECT 결과의 개수 확인(num_rows)
if ($checkresult->num_rows > 0) {
    echo "<script>alert('중복된 ID 입니다!!');</script>";
?>
    <script>
        location.replace('signup.html')
    </script>
<?php
} else {
    $sql->execute();
    // 쿼리로 영향을 받은 행 개수 확인(affected_rows)
    $result = $sql->affected_rows;
    if ($result > 0) {
        echo "<script>alert('회원가입 성공!!');</script>";
    } else {
        echo "<script>alert('회원가입 실패..');</script>";
    }
}

// 연결 닫기
$sql->close();
$idcheck->close();
$conn->close();
?>

<script>
    location.replace('index.php')
</script>

1.1. 결과

DB에 이미 있는 아이디로 회원가입 진행 시

중복된 ID 라고 알림창을 띄워준다.