본문 바로가기
개발/PHP

[홈페이지 제작]아이디 중복체크 (설명 포함)

by m_.9m 2021. 11. 22.

 

 

1. member.php에서 input type="button" value="중복체크" onclick="checkId()">로 버튼을 만들어 클릭 시 checkid()함수가 호출되도록 한 후 함수부분 코드를 만든다.

 

function checkid() {

var win = window.open("./checkId.php, "Idcheck", "width=500, height=300, top=200, left=800");
        }

 

2. 여기서 윈도우 함수는 자바 코드이기 때문에 <script> </script>를 앞뒤에 붙여준다.

 

<script> function checkid() {

var win = window.open("./checkId.php, "Idcheck", "width=500, height=300, top=200, left=800");
        } </script>

 

3. 여기서 var는 지역변수를 선언할 수 있는 키워드이며, win은 지역변수의 이름이라고 할 수 있다.

window 함수는 새 창을 열기위해 가장 간단하게 사용할 수 있는 자바스크립트 함수이다. 기본적인 사용법은 

var win = window,open(url, name, specs, replace); 이다.

 

- URL은 보여질 주소로 기본값은 (about:blank)이다.

- name은 창의 속성이나 창의 이름을 지정하는 부분으로 기본 값은 _blank이다.

- specs는 창의 크기, 스크롤 여부, 리사이즈 기능 등의 속성을 지정할 수 있다.

- replace 히스토리 목록에 새 항목을 만들지 현재 항목을 대체할지 지정한다.

 

4. checkId.php 제작

제일 처음에 데이터 베이스를 연결해주고,

$conn = mysqli_connect('localhost','username','pw');
mysqli_select_db($conn,'table name');

member.php 에서 입력한 id와 데이터 베이스에 있는 id에 같은 값이 있는지 count한다.

 

(1) $sql = "SELECT * FROM member WHERE id='".$_GET['id']."'";
(2) $result = mysqli_query($conn, $sql);
(3) $count = mysqli_num_rows($result);

 

5. mysqli_query는 mysqli_connect를 통해 연결된 객체를 이용하여 MySQL 쿼리를 실행시키는 함수이다.

mysqli_query([연결 객체], [쿼리])로 이루어져 있고 위의 코드를 해석하자면,

 

(1) $sql= select id 로 입력한 아이디와 데이터베이스에 있는 id에 일치하는 값이 있는지 검색하는 sql문을 만들고

(2) $result = mysqli_query($conn, $sql);로 DB와 연결하는 [연결객체] $conn와 [쿼리] $sql 로 여기서 만든 sql문을 데이터베이스와 연결해 실행시켜준다. 그리고 그 값을 $result에 저장한다. 단순히 쿼리 실행만이 목표라면 값을 저장할 필요가 없다. $result는 생략됨.

(3) 그리고 $count = mysqli_num_rows($result);로 이 $result값을 센다. 헤당 함수는 결과 집합에서 행 수를 얻을 수 있고, 이 결과를 우리는 $count에 저장해준다. 

 

6.

 

if($count == 0){
  echo"사용가능한 아이디입니다.";

}
else{
  echo"중복되는 아이디입니다.";
}
?>

 

데이터 베이스 안에 같은 아이디가 없을 경우 값이 0이 나와 사용가능한 아이디가 되는 것이고,

그렇지 않으면 중복되는 아이디가 있어 1이 나왔을 확률이 높다. 이 경우 else로 가 중복디는 아이디라는 문을 출력한다.

if와 $count를 사용한다. if ($count == 0) else() 

 

 

7. 이제 창을 닫는 구문을 html로 작성한다.


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
<span><hr>현재 창을 닫으려면 닫기 버튼을 누르세요!</span>
<span onclick="window.close(); ">닫기</span>
</body>
</html>

 

 

 

참고 페이지)

 

https://kimmy100b.github.io/php/2020/11/30/php-sql/

 

[PHP] 아이디와 비밀번호 중복체크하는 소스코드

 

kimmy100b.github.io

 

TIP)

submit 버튼을 누르면 자꾸 페이지가 초기 로컬호스트 페이지로 돌아가서 고생했는데

button으로 바꿔서 사용했더니 그런 현상이 없어졌다.

 

 

 https://devhoma.tistory.com/m/90

 

[HTML/JS] button을 누를 경우, 페이지가 reload 되는 현상

일반 button을 누를 경우, (버튼에 설정해놓은 이벤트 외에 추가로) 페이지가 제멋대로 reload 되는 경우가 있다. [원인] button이 form 태그 안에 있을 경우 발생한다. 덧붙여, button의 type 속성의 기

devhoma.tistory.com