생각기록

2022-12-15 유효성 검사 본문

프로젝트/팀프로젝트 KSP

2022-12-15 유효성 검사

끼록관 2022. 12. 15. 14:58

유효성 검사 설계

검사 내용 기능 브라우저
아이디 중복 체크 버튼을 누르면
중복검사 한다.
알림창
중복 o > 아이디가 이미 있다.
중복 x > 사용 가능한 아이디 입니다. 15이하
닉네임  체크 동적 폼전송으로
옆에 뜨도록 한다.
중복 o > 닉네임이 이미 있다.
중복 x > 사용 가능한 닉네임 입니다. 8글자까지
비밀번호 체크 동적 폼전송

숫자와 !@# 섞어서 기본 10글자 이상 쓰세요
이메일 중복 체크 버튼 누르면
중복 검사하고
알림창
중복 o > 아이디가 이미 있다.
중복 x > 사용 가능한 아이디 입니다. 15글자까지

 

 

 

데이터베이스 

# mysql 사용자 추가하기
CREATE USER 'kimsampark'@'%' IDENTIFIED BY 'qwer1234';


# DB 권한 부여 (모든 DB에 접근 가능하도록)
GRANT ALL PRIVILEGES ON *.* TO 'kimsampark'@'%' WITH GRANT OPTION;


# 현재 사용중인 MySQL의 캐시를 지우고 새로운 설정을 적용하기 위해 사용
FLUSH PRIVILEGES;


# mysql 계정 비밀번호를 바꾸고 싶을 때
ALTER USER 'kimsampark'@'%' IDENTIFIED WITH mysql_native_password BY 'qwer1234';


# 계정 조회
select host, user, plugin, authentication_string from mysql.user;

 

내가 쓸수있는 계정 검색

김삼박, 유저

 

 

 

<script>
    //회원가입 검사 목록 
    var validity = {
        id: false,
        name: false,
        pw: false,
        rePw: false,
        e_mail: false,
        agree: false
    };

    function register() {
        var form = document.getElementById('signup_info');
        //배열 형식 호출 + 반복
        for (const [type, value] of Object.entries(validity)) {
            if (!value) {
                alert('형식이 어떤 게 맞지 않는다.')
                return false;
            }
        }
        let user = {
            id: form.id.value,
            name: form.name.value,
            pw: form.pw.value,
            rePw: form.rePw.value,
            e_mail: form.e_mail.value
        }
        if (user.pw == user.rePw) {
            axios({
                method: 'post',
                url: '/signup',
                data: user
            })
                .then((response) => {
                    return response.data;
                })
                .then((data) => {
                    alert('회원가입 성공');
                    window.location.href = "/";
                });
        } else {
            alert('양식에 맞게 입력해주세요.');
        }
    }


    //아이디 유효성 검사 id
    function idValidity() {
        var form = document.getElementById('signup_info');
        if (!form.id.checkValidity()) {
            $('#id_check_sucess').html('<p style="color:red;"> 형식에 맞지 않습니다.</p>');
            return false;
        };
        $('#id_check_sucess').html('');

        axios({
            method: 'post',
            url: '/check_id',
            data: { id: form.id.value }
        })
            .then((result) => {
                console.log('아이디 중복 result : ', result);
                if (result.data) {
                    $('#id_check_sucess').html('<p style="color:red;"> 중복된 아이디 입니다.');
                } else {
                    $('#id_check_sucess').html('<p style="color:blue;">사용 가능한 아이디 입니다.');
                    validity["id"] = true;
                }
            });
    };
//컨트롤러 파일

//아이디 중복 체크
exports.check_id = async(req, res) => {
    console.log('중복체크 테스트, 아이디');
    let result = await AR_LOGIN.findOne({
        where : { id : req.body.id }
    });

    if ( result != null ){
        //중복된 값이 있으면 true
        res.send (true);
    } else {
        res.send (false);
    };
}