※ 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
※ 로그 출력 관련
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 |