웹마스터 팁

1.JPG
안녕하세요..? ^.^ 초보의 초보를위한 초보에 의한 강의입니다.
오랜만이네요.. ^.^

이번에는 초보분들도 쉽고 또 비교적 강력하게 원하는 페이지에 물론 PHP파일만 해당됩니다.
암호를 거는 방법을 알아 보겠습니다.

서론 ..
문서에 암호를 거는 방법에는 여러가지가 있을것입니다.
그중 이번에 소개해드릴 방법은 HTTP Authorization 이라는 기능을 활용한
비교적 안전하면서도 초보자 분들도 쉽게 접근할수 있는 방법을 알려 드리겠습니다.

본론..
우선 어떤식으로 동작하는지 보고 이야기를 하는게 빠르겠죠..? ^.^
http://iq140.uniadnet.com/auth/auth.php
아이디는 id 패스워드는 pass 입니다. ^.^
먼저 일부러 틀리게 입력해보시고.. 다음엔 정확하게 입력해보세요.. 그리고 다시한번 열어 보세요.. ^.^

어떤식으로 동작하는지 보셨죠..? 어떻게 만드는지 알아 보도록 하겠습니다.

---------------------------------------------------------------------------------------------- 소스시작

<?
$auth = 0; // $auth 변수 초기화
if (($PHP_AUTH_USER == "id" ) && ($PHP_AUTH_PW == "pass" )) $auth = 1; // 암호확인
if ( $auth != 1 ) { // 인증이 안된경우
header( "WWW-Authenticate: Basic realm="암호를 넣으세요"" ); //HTTP Authorization부분;; realm안에는 원하시는 메시지.
header( "HTTP/1.0 401 Unauthorized" );
echo "죄송 합니다.  로그인에 실패 하셨습니다."; // 암호 못 맞춘경우 나오는 화면
exit;
}
echo "축하합니다.  로그인에 성공! 하셨습니다."; // 인증이 된 사람들에게만 보여줄 화면
?>

---------------------------------------------------------------------------------------------- 소스끝

어라? 겨우 이거야? 네~ 그렇습니다. 단 이몇줄로 아까와 같은 암호창을 만들수 있습니다.

다음은 완전 초보를 위한 간략한 설명입니다. 어느정도 되시는분들은 생략하셔도 상관 없습니다.
<?    <== PHP의 시작을 알리는 표시죠?  모르시는분이 안계실듯... ^.^

$auth = 0;
// $auth 변수값의 초기화 입니다. 값이 1이면 로그인 성공으로 넘어가게 되므로.. ^.^

if (($PHP_AUTH_USER == "id" ) && ($PHP_AUTH_PW == "pass" )) $auth = 1;
// 여기 id라고 쓰인부분에 원하시는 id를 pass부분에 원하시는 pass를 대체하시면 됩니다.
// 암호를 확인하는 부분입니다. $PHP_AUTH_USER 변수는 아까 입력창에서 사용자이름에 입력된값입니다.
// $PHP_AUTH_PW 변수는 암호에 입력했던 값입니다.
// 쉽게 사용자이름에 id 라고 입력했는지 암호에 pass라고 입력했는지 두가지모두 통과 했을때..
// $auth 값에 1이라는 숫자를 넣어주게 됩니다.


if ( $auth != 1 ) {
// 인증이 안된경우
header( "WWW-Authenticate: Basic realm="암호를 넣으세요"" );
//어려운건 다 생략하고..  사용자이름과 암호를 묻는창에서  "암호를 넣으세요" 라고 나오게 됩니다.
// 중간쯤..  길게 쓰셔도 상관 없습니다. 적당히 로그인할때 인사말이나.. 또는 설명등
// 원하시는 글을 써놓으시면 될것 같습니다.
// 생략하시려면..  realm= 뒷부분만 지우셔야 합니다. 이부분이 암호창을 띄우는 부분이라고 할수 있습니다.

header( "HTTP/1.0 401 Unauthorized" );
// 401 Error 관련 생략하셔도 상관은 없습니다. ㅜ.ㅜ 사실은 저도 뭔일을 하는지 잘몰러유~~~

echo "죄송합니다. 로그인에 실패 하셨습니다."; // 암호 못 맞춘경우 나오는 화면
exit;
// 로그인이 정상적으로 이루어지지 않았을경우 보여주게 됩니다.
// header등을 이용 페이지 이동을 하셔도 됩니다. location을 이용하시면 깔끔하게 동작하죠.. ^.^
// header("location:웹주소/파일명까지");   <== 이걸 사용하셔도 됩니다.
// 로그인 되지 않았을때 보여줄 화면이므로.. ^.^

}
// 여기까지가 if문의 끝입니다.. (설명할께 없어서.. ㅜ.ㅜ)

echo "축하합니다. 로그인에 성공! 성공하셨습니다."; // 인증이 된 사람들에게만 보여줄 화면
// ^.^ 여기는 로그인에 성공하였을경우 보여주게 됩니다.
// 하지만 로그인되지 않았을때처럼 header("location:"); <==이걸 사용하시면 "절대!" 안됩니다.
// 여기에 연결된 주소를 알게되면 로그인 하지않고도 접근이 가능하기 때문입니다.
// echo 대신 include등을 사용하시면 ^.^ 되겠습니다.

?>
// ^.^ php의 끝을 알리는 표시 입니다.
// 만약 일반적인 html을 사용하시고 싶으시면 이곳에 작성을 하시면 됩니다.
~~~~주욱~~ 하고.. ^.^ 그러면 로그인 되었을 경우에만 보여주게 됩니다.


이상 초보의 초보를위한 초보에의한 강의 였습니다.
너무나도 간단하고 쉽게 수정할수 있게된 소스 이므로... ^.^  그리 어렵지 않게 활용이 가능하리라 생각됩니다.

ps.. 중복인지 한번 검색을 해봤는데.. 보이지 않아서 일단 써놓습니다.
중복이라면 덧글 남겨주세요.. 바로 삭제 하겠습니다.
제목 글쓴이 날짜
동일서버내 페이지에서 로그인정보 활용하기... [4] 수로 2008.09.06
게시판 에디터 폰트 글자(글씨)크기 변경하는 법 씨에씨에 2008.09.12
주소록 구현 (외부 페이지) [17] CSLab 2008.09.15
"권한이 없습니다." Alert 창 대신 로그인 화면으로 이동시키기 [4] Slur 2008.09.22
VPN 환경에서 제로보드 [4] superion 2008.09.26
[권한이 없습니다] 권한에 따른 다른 메시지 출력하기 [10] [1] 반도체맨 2008.10.03
제로보드XE가입 -> 트랙자동가입 기능 개돌 2008.10.14
제로보드(zbxe) 설치 후 로그인 안되는 문제. [3] sophistlv.myid.net 2008.10.15
개인 웹서버 백업 및 게시물 등록 날짜 수정 방법 [10] file eunbini 2008.10.24
카페24 계정 사용 중에 제로보드XE 로그인 오류가 날 때 [1] vltm 2008.10.24
플래시 BGM 음악 제로보드에 넣는 방법 file 푸른커튼 2008.10.29
외국에서 접속시 로그인 않되는문제 [1] minams 2008.10.30
FTP프로그램을 이용하지 않고 업로드 하기 [8] 싱하형 2008.10.31
라이트박스(facebox) 적용하기 [7] file 퍼플F 2008.11.02
일반 페이지에 로그인(세션) 정보 활용하기 [13] noirzo 2008.11.07
1.1.0 업데이트 로그인문제관련 [6] 그냥뛰어 2008.11.24
XE 로그인이 안될때 확인해 보세요. [7] 똑디 2008.12.11
XE와 별도 프로그램 연동시 세션공유 [15] 똑디 2008.12.12
로그인한 회원만 최근 게시글, 검색등 볼수 있도록 하기 [3] [_)s 2008.12.31
제로보드XE 쉽게 업데이트 하는 방법.. [13] 청개구리00 2009.01.12