2014-09-06 2 views
1

사용자 이름과 이메일에 대한 유효성 검사를 수행하는 스크립트가있는 signup.php 파일이 있습니다. php 파일에 전화 번호 필드를 추가하고 데이터베이스에 varchar (15)로 추가했습니다. 모든 것이 잘 작동하지만 필드에 입력 된 모든 쓰레기는 허용됩니다. 전화 번호의 유효성을 검사하기 위해 아래 스크립트에 어떤 구문을 추가해야합니까?check_phone 함수의 전화 번호 유효성 확인

필수 입력 * 입력란에는 11 자리 숫자를 입력해야합니다. * 사용자가 10 자리 숫자를 입력하면 데이터베이스에서 데이터베이스 테이블 필드를 +91의 10 자리 숫자로 업데이트합니다. * 사용자가 0으로 시작하는 11 자리 숫자를 입력하면 0이 제거되고 * 알파벳과 특수 문자 (0 제거) 10 자리 번호로 followred +91로 데이터베이스 테이블 필드가

<script type="text/javascript"> 
function check_username(){ 
    var b=$('#username').val(); 
    if(b.length<3){ 
     $('#username').css('border','2px solid #a50000') 
    }else{ 
     $.get("system/ajax.php?a=checkUser",{data:b},function(a){ 
      if(a==1){ 
       $('#username').css('border','2px solid #00a500') 
      }else{ 
       $('#username').css('border','2px solid #a50000') 
      } 
     }) 
    } 
} 
function check_email(){ 
    var b=$('#email').val(); 
    if(b.length<3){ 
     $('#email').css('border','2px solid #a50000') 
    }else{ 
     $.get("system/ajax.php?a=checkEmail",{data:b},function(a){ 
      if(a==1){$('#email').css('border','2px solid #00a500') 
      }else{ 
       $('#email').css('border','2px solid #a50000') 
      } 
     }) 
    } 
} 
function check_email2(){ 
    var a=new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i); 
    var b=$('#email').val(); 
    var c=$('#email2').val(); 
    if(!a.test(c)){ 
     $('#email2').css('border','2px solid #a50000') 
    }else if(b==c){ 
     $('#email2').css('border','2px solid #00a500') 
    }else{ 
     $('#email2').css('border','2px solid #a50000') 
    } 
} 
</script> 

당신에게 모든

+0

당신이 지금까지 시도했습니다 게시하시기 바랍니다. –

+0

나는 이것을 찾아서 이것을 어딘가에 놓아야한다는 것을 발견했다. [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [ 0-9] [0-9] [0-9] 앞에 +91을 붙입니다. 또한 유효성 검사가 완료되면 테두리 색이 녹색으로 바뀌고 $ db-> Query ("INSERT INTO"사용자 (전자 메일, 전화, 로그인, 국가, 성) 값 (' . $ 이메일. ",". $ phn. ",.". $ name. ",."$ country. " ','". $ gender. ")"); 데이터베이스에 삽입합니다. 유효성 확인을 서면으로 작성하는 데 도움이 필요하고 문구에 삽입 할 때 +91을 접두사로 사용하는 방법이 필요합니다. – user3736026

+0

바퀴를 재발 명하지 마십시오. Google의 libphonenumber를 사용하십시오 : https://github.com/giggsey/libphonenumber-for-php –

답변

0

먼저 감사 할 수 없습니다, 기본 검증은 PHP에서 수행되어야한다 JavaScript가 아닙니다. 자바 스크립트 코드를 고치더라도 함께 제공되는 방문자는 JavaScript를 사용하지 않고 필드에 원하는 것을 입력 할 수 있습니다.

는 다음을 시도, PHP에서 전화 번호를 확인하려면 : 전화 번호가 잘못된 경우

<?php 
function validatePhoneNumber($num) { 
    if (!ctype_digit($num)) { 
     return false; 
    } 
    $len = strlen($num); 
    if ($len === 11) { 
     if ($num[0] === "0") { 
      return "+91" . substr($num, 1); 
     } else { 
      return $num; 
     } 
    } else if ($len === 10) { 
     return "+91" . $num; 
    } else { 
     return false; 
    } 
} 
?> 

기능 validatePhoneNumberfalse를 반환합니다. 그렇지 않으면 파싱 된 전화 번호를 문자열로 반환합니다.

이처럼 사용

<?php 
validatePhoneNumber("4455");  // false 
validatePhoneNumber("(55)5555555"); // false 
validatePhoneNumber("5518843371"); // "+915518843371" 
validatePhoneNumber("04113313311"); // "+914113313311" 
validatePhoneNumber("14355555555"); // "143555555555" 
?> 
+0

고맙습니다 .... 저는 이미 ... $ phn = $ db-> EscapeString ($ _ POST [ 'phone1' ])); signup.php 파일에 있습니다. 이 줄을 $ phn = $ db-> EscapeString ($ _ POST [validatePhoneNumber ('phone1')])으로 변경할 수 있습니까? ? signup.php 파일 맨 아래에 함수를 붙여 넣었습니다. 괜찮아? – user3736026

+1

사실, 유효성 검사는 _both_ JavaScript와 PHP에서 수행되어야합니다. JS에서 유효성 검사를하면 거의 모든 사람이 응답하는 비정상적인 사용자에게 피드백이 전달되고 질문에 설명 된대로 입력 상자의 색이 지정되며 서버에서 표준화 된 번호를 확인할 수 있습니다. 클라이언트 유효성 검사를 신뢰할 수 없으므로 서버에서 유효성 검사가 필요합니다. –

+0

@ user3736026 그것은''phone1 "'문자열에'validatePhoneNumber' 함수를 호출 할 것입니다. 실제로 제공된 번호로 전화해야하므로'$ phn = validatePhoneNumber ($ _ POST [ 'phone1'])'을 사용해야합니다. 'if ($ phn === false)'를 사용하여 전화 번호가 유효하지 않은지 확인하십시오. 거짓이 아니면 유효한 숫자이므로'$ phn = $ db-> EscapeString ($ phn)'을 사용하여 쿼리에 전달할 수 있습니다. – theftprevention