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

조회수 3375회
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 정도 의 비율입니다)

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

1 답변

  • 좋아요

    5

    싫어요
    채택 취소하기

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

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 정말 감사합니다!^^ 김영광 2016.7.19 14:01

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)