언어/자바스크립트

[JavaScript] 시간 카운트 다운

토킹포테토 2023. 5. 18. 14:08
728x90

* DB에서 시간 값 가져와 그 값으로 카운트 다운(로그인  몇회 실패시 몇분간 잠금 기능)

 

로그인 버튼 누르면  form 전송,

폼 전송 시 onsubmit(loginChk()) 으로 function 실행 후 return false이 아니면 폼 전송.

<script>
function loginChk(){
    var userid = $('#userid').val();
    var userpwd = $('#userpwd').val();

    //아이디, 비밀번호 null check
    if(userid =="" || userid == null){
    alert("아이디를 입력하세요");
    }
    if(userpwd =="" || userpwd == null){
    alert("비밀번호를 입력하세요");
	}
    var flag = true;
    $.ajax({
    	uri : url,
        date : {
        	userid : userid
            },
        type : "POST",
        async: false,
        dataType : "text",
        success : function(result){
        //로그인 가능 횟수 안에 로그인 시도 시 특정문자 리턴받음 , 로그인 횟수 초과 시 db에 저장된 로그인 실패시간 받아오기.
        	if(result !== 특정문자){
            	const coutDownTimer = function(date){
                	var vDate = new Data(data) // DB에서 받아온 데이터값
                    vDate = vDate.setMinutes(vDate.getMinutes()+몇분추가); // 로그인 제한 시간 = 로그인 실패시간 + 사용자 정의 몇분 추가
                	
                    var _second = 1000;
                    var _minute = second * 60;
                    var _hour = minute * 60;
                    var _day = _hour * 24;
                    var timer;
                    var disDt;
                    var target - document.getElementById('로그인버튼 아이디');
                    
                    	function showReamining(){
                        	var now = new Date();
                            distDt = vDate - now;
                            console.log(distDt);
                            
                            if(distDt < 0 ){
                                //DB 로그인 시도 카운트 초기화
                                $.ajax({
                                	url : url,
                                    data : { userid : userid},
                                    type : "POST",
                                    success : function(e){
                                    console.log("초기화 성공");
                                  	return;
                                    },
                                    error : function(request, status, error){
                                    alert("error code : " + request.status + " / " + request.responseText + " / "+ request.error);
                                    }
                                });
                                 location.reload();
                            }
                            
                            var days = Math.floor(distDt / _day);
                            var hours = Math.floor((distDt % _day) / _hour);
                            var minutes = Math.floor((distDt % _hour) / _minute);
                            var seconds = Math.floor((distDt % _minute) / _second);
					      
                            target.disabled = true; // 로그인 버튼 활성화
                            document.getElementById("로그인버튼아이디").textContent = minutes + '분' + seconds + '초 남음';
                        }
                    timer = setInterval(showRemaining, 1000);
                    flag = false;
                }
                alert("로그인 몇회 실패로 몇 분간 로그인이 중지됩니다.");
                countDownTimer(result.replace(" ","T"));
                return;
            }
        },
        error : function(request, status, error){
				alert("error code : " + request.status + " / " + request.responseText + " / "+ request.error);
             	}
    });
    return flag;
}
</script>

 

 

 

'언어 > 자바스크립트' 카테고리의 다른 글

[IE] NaN 오류  (0) 2023.05.18
[JavaScript] 브라우저 동작 방식  (0) 2023.05.10