회원가입시 비밀번호 입력시 영문+숫자만 특수문자는 제외 방법이 궁금합니다

회원가입시 비밀번호 입력시 영문+숫자만 특수문자는 제외 방법이 궁금합니다

QA

회원가입시 비밀번호 입력시 영문+숫자만 특수문자는 제외 방법이 궁금합니다

본문


<?php
include_once('./_common.php');
//include_once(G5_LIB_PATH.'/register.lib.php');

function empty_pass($reg_mb_password)
{
    if (trim($reg_mb_password)==''){
        return "0|패스워드를 입력해 주십시오.";
    }else{
        return "";
    }
}

function number_chk_pass($reg_mb_password){
    if(ereg("[^0-9]",$reg_mb_password)){ // 문자열 변수에 숫자이외의 문자가 포함되어 있으면    
        $pattern = '/^.*(?=^.{6,20}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/';
        if(preg_match($pattern ,$reg_mb_password)){
            //return "1|";
            return "";
        }else{
            echo "2|패스워드는 최소 6글자 이상(영문,숫자,특수문자 조합)으로 입력하세요.";
        }
    }else {
        echo "0|비밀번호는 영문, 숫자, 특수문자 모두 포함되어야 합니다.";
    }
}

function count_pass($reg_mb_password){
    if (strlen($reg_mb_password) < 6){
        return "0|패스워드는 최소 6글자 이상(영문,숫자,특수문자 조합)으로 입력하세요.";
    }else{
        return "";
    }
}

$reg_mb_password = trim($_POST['reg_mb_password']);

if ($msg = empty_pass($reg_mb_password))   die($msg);
if ($msg = count_pass($reg_mb_password))   die($msg);
if ($msg = number_chk_pass($reg_mb_password))   die($msg);
?>
 

이 질문에 댓글 쓰기 :

답변 2

해당 패턴에서 

$pattern = '/^.*(?=^.{6,20}$)(?=.*\d)(?=.*[a-zA-Z])  (?=.*[!@#$%^&+=]).*$/';

부분제외하시면 될듯합니다. 

.*$ 부분은 뺀후 상태확인필요함.

function checkPassword(password){
    var id = $('#userid').val();
    var rtn_val = "";
    if( password != ''){

        if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(password)){            
            alert('숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
            document.getElementById('userpwd').value = "";
            setTimeout(function(){ $('#userpwd').focus(); }, 10)
            return false;
        }
        return true;
        var checkNumber = password.search(/[0-9]/g);
        var checkEnglish = password.search(/[a-z]/ig);
        if(checkNumber <0 || checkEnglish <0){
            alert("숫자와 영문자를 혼용하여야 합니다.");
            $('#userpwd').val('');
            setTimeout(function(){ $('#userpwd').focus(); }, 10)
            return false;
        }
        if(/(\w)\1\1\1/.test(password)){
            alert('같은 문자를 4번 이상 사용하실 수 없습니다.');
            $('#userpwd').val('');
            setTimeout(function(){ $('#userpwd').focus(); }, 10)
            return false;
        }
            
        if(password.search(id) > -1){
            alert("비밀번호에 아이디가 포함되었습니다.");
            $('#userpwd').val('');
            setTimeout(function(){ $('#userpwd').focus(); }, 10)
            return false;
        }
        return true;
    }
}
 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,668 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT