본문 바로가기
보안 및 개발/WEB

[PHP] jQuery로 전송되는 로그인 페이지

by CH@3M 2019. 12. 3.

※ JQuery로 전송되는 로그인 테스트 페이지 만들기

index.php

<!DOCTYPE html>
<html>
    <head>
        <title>AJAX</title>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script>
            function ajax_send(sel) {
                $.ajax({
                    url: url, // ajax url
                    dataType: "json", // ajax 통신의 데이터 형식
                    async: false, // 동기(false):비동기(true)
                    type: "POST",
                    data: params,
                    success: function (data) {
                        if (data['result'] == 'f') { /* 로그인 실패시 */
                            alert(data['msg']);
                        } else if (data['result'] == 'success') { /* 로그인 성공시*/
                            alert(data['msg']);
                            $('#login').html(data['id'] + '님 환영합니다.');
                        }
                    },
                    error: function (xhr, status, error) {
                        var error_confirm = confirm('데이터 전송 오류입니다. 확인을 누르시면 페이지가 새로고침됩니다.');
                        if (error_confirm == true) {
                            document.location.reload();
                        }
                    }
                });
                return false;
            }
        </script>
    </head>
    <body>
        <h1>로그인</h1>
        <div id="login">
            <form action="ajax.php" name="form_ajax" method="post" onsubmit="return ajax_send(this)">
                <input type="hidden" name="ACCESS" value="true">
                <input type="text" name="id" value="" placeholder="아이디를 입력해 주세요">
                <input type="password" name="pw" value="" placeholder="비밀번호를 입력해 주세요">
                <input type="submit" value="로그인">
            </form>
        </div>
    </body>
</html>

 

ajax.php

< ? php
// 일반 페이지에서 넘어왔을 시  차단
//     if(!isset($_POST['ACCESS'])){
//                 echo json_encode(array('ACCESS'=>'denied'));
//                             exit;
//                                 }

//                                     // 아이디 또는 비밀번호를 입력하지 않았을 시 
if (empty($_POST['id']) || empty($_POST['pw'])) {
    echo json_encode(array('result' => 'fail', 'msg' => '아이디 또는 비밀번호를 입력해주세요'));
    exit;
}

// 데이터베이스값을 대체하는 변수  
$get_id = 'user'; // 임의로 정의된 아이디 
$get_pw = sha1('1234'); // 임의로 정의된 비밀번호 

// 아이디 불일 치시 
if ($get_id != $_POST['id']) {
    echo json_encode(array('result' => 'fail', 'msg' => '아이디가 일치하지 않습니다.'));
    exit;
}

// 비밀번호 불일치 시 
if ($get_pw != sha1($_POST['pw'])) {
    echo json_encode(array('result' => 'fail', 'msg' => '비밀번호 일치하지 않습니다.'));
    exit;
}

// 로그인이 성공했을 시 
echo json_encode(array('result' => 'success', 'msg' => '로그인에 성공하였습니다.', 'id' => $_POST['id']));
exit; ?
>

 

참고 링크

https://zetawiki.com/wiki/JQuery_AJAX_%EB%A1%9C%EA%B7%B8%EC%9D%B8_%EA%B5%AC%ED%98%84

http://b.redinfo.co.kr/102

 

※ 로그 출력 관련

php로 HTTP Request 모든 헤더 정보 보기

$headers = getallheaders();
while(list($header, $value) = each($headers)) {
	echo "$header : $value\n";
}

 

반응형

'보안 및 개발 > WEB' 카테고리의 다른 글

로그인 구현 시 참고사항  (0) 2019.12.10
apache2 다중 포트 설정  (0) 2019.12.09
Hydra tool 사용  (0) 2019.10.07
php 홈페이지 만들기  (0) 2019.10.07
Vue.js 시작하기  (0) 2019.10.07