이메일 중복체크 질문입니다.


function chkValidEmail() {      
    var email = document.touristSurvey.userEmail.value;
    var exptext = /^[A-Za-z0-9_\.\-]+@[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+/;
        if(exptext.test(email)==false){
        //이메일 형식이 알파벳+숫자@알파벳+숫자.알파벳+숫자 형식이 아닐경우         
        alert("The Email format is invalid.");
        return;
        }else{
            chkEmail();
        }
}

function chkEmail(){
    var chk=false;
    if(document.touristSurvey.userEmail.value != ''){
        var userEmail = $("#userEmail").val();
        $.ajax({ 
               url: "emailChk.or", 
               type: "POST",
               data: {"userEmail" : userEmail},
               dataType:"text",
               cache: false,
               success: function(result){
                   if(result!="0") {
                       alert("The email is duplicated.");
                       return;
                   }else{
                       submitOn();
                   }
               }
        });
    }
}

function submitOn(){
    document.getElementById("submit_btn").innerHTML = "On saving... Please wait.";
    document.touristSurvey.submit();
}

이메일 체크하는 스트립트인데요

디비는 msql을 쓰고 있습니다.

이메일로 중복체크를 하고 디비로 받는중 대부분은 잘 되고 있으나 ...

중복되는 이메일도 들어온 것을 발견할 수 있었습니다. ( 100 분의 1 정도 의 비율입니다)

어떤 이유에서 인지를 모르겠습니다. ㅜ

  • 2016년 07월 19일에 작성됨

조회수 252


1 답변


좋아요
3
싫어요
채택취소하기

MySql에서 email 컬럼에 unique constraint설정을 해주세요.

중복이 있는지 확인하는 시점과 실제 insert되는 시점이 달라서 그렇습니다.

유니크 여부를 저장 단에서 보장해 주어야 합니다.

  • 2016년 07월 19일에 작성됨
    프로그래밍 언어를 좋아하는 프로그래머

  • 정말 감사합니다!^^    김영광   2016.7.19 14:01     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close