용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.강원도 홍천 서석면에 위치해있으며 1급수 용오름계곡 바로 옆에 있습니다.홍천군 1등 마을로 마을에서 직접 관리하는 용오름캠핑장,펜션 10개를 운영하고 있으며 각종 모임이 가능하도록 식당,회의실,야외무대가 설치되어 있습니다.홍천군 1등 마을답게 캠핑장,펜션 마을 전지역 wi-fi 사용이 가능하며 매년 봄 팸투어 실시, 여름엔 마을에서 재배한 홉으로 직접만든 맥주축제,마리소리 음악축제 를 열고 있습니다.계곡의 경우 수심이 다양하여 다이빙 포인트가 2곳이 있으며 아이들이 안전하게 물놀이를 할 수 있는 곳도 여러 곳 있습니다.홍천 용오름캠핑장 팸투어 다녀왔어요.요즘은 농산촌체험마을에서 캠핑과 여러프로그램을 같이 하는 곳이 추세더라고요. 아미산이 둘러쌓인 청정계곡이 흐르는 아름다운 용오름체험휴양마을 에서 운영하는 홍천 용오름캠핑장 팸투어 다녀왔어요. 테크 앞 강이...붕어빵 가족의 담너머 세상구경https://m.blog.naver.com/1092119/220711235599가을여행-홍천여행- 홍천 용오름 마을 첫째날여행의 계절 가을입니다. 요즘 저희는 강원도에 꽃힌 상태인지라...카페 행복한 이티씨와 함께하는 홍천 용오름 마을 1박2일 체험에 참가를 하였답니다! 평소 체험 시간보다 조금 늦은 출발을 해서 차가 밀리지 않으려나...귀여운 단지https://m.blog.naver.com/sanguidan/50181593653용오름마을 캠핑장여름휴가의 시즌이다.. 강원도의 계곡과 시원함을 만끽하기 위해 캠핑장을 검색하다 우연히 알게 된 홍천의 용오름 캠핑장.. 성수기라 캠핑장 요금들이 사악하다 용오름캠핑장 옆엔 해미르 캠핑장이 있는데...★살로몬의 잇츠캠핑★https://m.blog.naver.com/freeguy9040/20163628934맥주효모로 만든 용오름맥주마을 바쏘 맥주샴푸와 맥주마스크팩...1988년까지 맥주 원료인 홉을 재배하며 번성했던 강원도 홍천군 서석면 용오름 마을이란 곳이 있었습니다…

HTML5 로그인 php소스

HTML5 로그인 php소스

홈페이지에 접속시 index.php 처리 흐름도는 다음 그림과 같다.

프로그램에서 중요한 것은 어떤 로직으로 그릴것인가 하는 점이다.

사용하는 언어에 따른 문법, 사용법은 당연히 익혀야 한다.

1. index.php 파일에는 순수한 PHP 코드만으로 session 이 있으면 바로 메인페이지로 접속하도록 처리한다.

session 정보가 없으면 로그인 화면을 띄우도록 한다.

if(!isset($_SESSION)) {

session_start();

}

if(isset($_SESSION['userID']) && !empty($_SESSION['userID'])){

// 세션 정보가 있으면

include "main.php";

} else {

// 세션 정보가 없으면

include "loginForm.php";

}

?>

이 골격 기반위에 mobile 접속체크 기능을 추가할 수도 있다.

추가한다면 loginClass.php 파일안에 mobile 체크 함수를 추가할 수 있다.

2. loginForm.php 파일에는 HTML header, body 정보가 들어가 있다.

- 로그인 정보는 ID, PW 정보이므로 암호화하여 전송하는 것이 안전하다.

- POST 전송방식으로 전송하여 ID,PW 정보 내용이 보이지 않도록 한다.

- POST 전송방식 loginForm.php 파일

로그인

로그인

다시작성

=== loginScript.js ===

$(document).ready(function(){

$("#loginForm").submit(function(){

var loginID = $("#userID").val();

var loginPW = $("#password").val();

if(loginID =='') {

alert("아이디를 입력하세요");

$("#userID").focus();

return false;

}

if(loginPW =='') {

alert("패스워드를 입력하세요!");

$("input[type='password']").focus();

//$("#password").focus();

return false;

}

$.post('loginChk.php',{userID:loginID, password:loginPW}, function(msg) {

if(msg==1){ // loginChk.php 파일에서 echo 결과값

window.location.href = 'main.php';

} else {

alert('다시 로그인 하세요');

}

});

return false;

});

$("input[type='reset']").click(function(){

if(!confirm("정말 입력을 취소하시겠습니까?")){

return false;

}

});

});

3. loginChk.php 파일

if(empty($_POST['userID']) || empty($_POST['password'])){

echo 0; // 실패

} else {

$loginID=$_POST['userID'];

$loginPW=$_POST['password'];

require_once 'dbconnect.php';

require_once 'phpclass/loginClass.php';

$c=new LoginClass();

$row=$c->UserAuthCheck($loginID,$loginPW);

if(is_array($row)){

if(!isset($_SESSION)) {

session_start();

}

$_SESSION['userID'] = $row['userID'];

$_SESSION['level'] = $row['level'];

echo 1; // 로그인 성공

} else {

if(!isset($_SESSION)) {

session_start();

}

session_destroy();

echo 0; // 실패

}

}

?>

※ dbconnect.php 파일 만드는 방법은 http://link2me.tistory.com/1110 참조하라.

=== loginClass.php 파일 발췌 ===

로그인 검사는 해킹 공격적인 요소를 필터링 하기 위한 것도 고려했다.

class LoginClass {

function UserAuthCheck($u,$p) {

if(!isset($u) || !isset($p) || empty($u) || empty($p)) {

return 0;

} else {

global $db;

$u = preg_replace("/[\s\t\'\;\"\=\--]+/","", $u); // 공백이나 탭 제거(사용자 실수 방지)

$p = preg_replace("/[\s\t\'\;\"\=\--]+/","", $p); // 공백이나 탭 제거, 특수문자 제거

// SQL injection 검사

$u = htmlentities($u); // documnet.cookie(); 공격 방지, 한글인식 불가

$p = htmlentities($p); // < 를 \< 로 바꿔준다.

$u = str_replace(array("'",""","'",'"'), array("'",""","'","""), $u);

if(preg_match('/[\']/',$u)) return 0; // no quotes

if(preg_match('/[\/\\\\]/', $u)) return 0; // no slashes

if(preg_match('/(and|null|where|limit)/i', $u)) return 0; // i는 대소문자 구별하지 말라

if(!preg_match('/^[0-9a-zA-Z\~\!\@\#\$\%\^\&\*\(\)]{7,}$/',$p)) return 0; // 7자리이상 허용 문자만 통과

$sql = "select * from member where pw=md5('".$p."') and id= '".$u."' ";

if($result = mysql_query($sql,$db)) { //성공

$row = mysql_fetch_array($result);

if($row == NULL) return 0;

return $row;

} else {

return '-1';

}

}

}

}//end class LoginClass

?>

4. main.php 파일에도 HTML header, body 정보가 들어가 있다.

메인 페이지 내용을 작성하여 원하는 데이터를 출력한다.

DB에서 조회하여 가져온 데이터를 테이블 형식으로 보여주고자 한다면

너무 많은 자료를 가져오면 부하문제도 생기고 화면 스크롤 문제도 생기므로

페이징 처리를 해서 보여줘야 한다.

http://link2me.tistory.com/1112 참조

5. 변수가 제대로 넘어오는지 체크하고자 할 경우

아래 코드를 추가하고 exit; 를 넣은 이유는 다음 코드를 실행하지 말고 중단해서 변수가 제대로 넘어오는지 여부를 한번에 확인하고자 하는 목적이다.

@extract($_POST);

var_dump($_POST);

exit;

출처: http://link2me.tistory.com/1114 [소소한 일상 및 업무TIP 다루기]

이곳은 mysql_query 를 등 mysql을 사용했으나 PDO로 변경해야 내가 사용 가능

from http://blog.ewq.kr/19 by ccl(S)

댓글

이 블로그의 인기 게시물

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

[C언어] 백준 알고리즘 - 숫자의 개수(2577번)

[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 2. 언어 특성 활용...