상세 컨텐츠

본문 제목

[PHP] 회원가입 아이디 중복검사/유효성 체크 html형식으로 출력

php

by 2hansoul 2021. 11. 17. 18:13

본문

반응형

join.php

<script>
$(document).ready(function(e){
$(".fadeInfirst").on("keyup",function(){    //$(".fadeInfirst").on("keyup",function()  form class를 입력하여 이벤트 발생  "keyup"키보드를 누르고 때면 발생하는 이벤트 keydown 키를 누르면 발생
var self =$(this);                   //this는 일반적으로 메소드를 호출한 객체가 저장되어 있는 속성입니다.
var id;
var zero = 0;
var one = 1;
var two = 2;

if(self.attr("id")==="id"){   //self.attr("id") id에 있는 속성값 가져오기
    id=self.val();            //id 변수에 값 저장
}
$.post(                         //ajax를 post방식으로 받은 데이터값 넘김
      "idcheck.php",
{id : id},              //data 값 아이디
function(data){
         if(data==zero){
  console.log(data)      //data 값 찍어보면 숫자가 나옵니다
$('#idcheck').text('');
   $('#idcheck').html("<font color='#0821F8'>사용가능한 아이디입니다</font>");
 }else if(data==one){
$('#idcheck').text('');
   $('#idcheck').html("<font color='#FF6600'>아이디가 중복입니다</font>");
 }else if(data==two){
$('#idcheck').text('');
   $('#idcheck').html("<font color='#FF6600'>아이디는 영문자or숫자로 6자리 이상 입력</font>");
 }
 }
 );//post
});//on
}); //document
</script>

 

 

join.php 

join.php에 폼 부분입니다 <p id="idcheck"></p> 받아온값을 id부분에 출력해주기 위해 설정

 <form name="myform" id="myform" method="POST" onsubmit="return check()" action="joinact.php">
<p id="idcheck"></p>
    <input type="text"  class="fadeInfirst"  name="id" id="id" maxlength="12" placeholder="아이디" required>
   <input type="password"  class="fodeInsecond" name="pass" id="pass"  maxlength="15" placeholder="비밀번호">
  <p id="pwCheck"></p>
      <input type="password"  class="fodeInsecond" name="passcheck" id ="passcheck"  maxlength="15" placeholder="비밀번호확인">
  <p id="pwCheck1"></p>
  <input type="text" class="fadeIn third" name="name" value="<?=$nameMsg ?>" placeholder="이름" >
  <input type="text1" class="fadeIn fourth " name="email" value="<?=$emailMsg ?>" placeholder="메일" > @ <select name ="emailadress">
  <option value ="">메일을 선택해주세요</option>
  <option value ="naver.com">naver.com</option>
  <option value ="google.com">google.com</option>
  <option value ="daum.net">daum.net</option>
  </select>


      <input type="submit" id="submit" class="fadeIn fourth" value="회원가입">
    </form>

 

jdcheck.php

 

<?php
include "dbconn.php";                                     //include 안 하신분들은 디비 설정 해주셔야 됩니다

//데이터 ajax리턴할 변수
$num  =0;
$num1 =1;
$umn2 =2;

$id = mysqli_real_escape_string($conn, $_POST['id']);         //php escape는 mysql injection 을 맞기 위해 설정 해놓은거 안하고 post값만 받아도 됌

$sql="select id from login where id='".$_POST['id']."'";
$row=mysqli_query($conn,$sql);      //row 값을 저장 하고
$total = mysqli_num_rows($row);     //mysqli_num_rows 함수는 리절트 셋(result set)의 총 레코드 수를 반환합니다 총 레코드 수를 계산해서 아이디 중복체크

if($total>0){                       //total이 0보다 크면 레코드 안에 id입력값이 존재 하기 때문에 아이디는 중복이 된다
echo $num1 =1;                  //client ->server -> client 받아온 결과로 판단하기 위해 num변수를 만들어서 보내줌
//echo"아이디중복입니다 다시 입력해주세요";
}else if(!preg_match("/^[a-zA-z0-9]{6,12}$/",$id)){    //preg 정규식 체크를 하기 위한 php 함수
echo $umn2 =2;
//echo "아이디는 영문자or숫자로 6자리 이상 입력";
}else if((preg_match("/^[a-zA-z0-9]{6,12}$/",$id))){
echo $num  =0;
      //echo"사용가능한 아이디입니다";
}
?>

 

 

거의 주석으로 설명을 달아놓긴 했는데 모르는 부분 있으면 남겨주세요 

반응형

관련글 더보기

댓글 영역