웹마스터 팁

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.. 중복인지 한번 검색을 해봤는데.. 보이지 않아서 일단 써놓습니다.
중복이라면 덧글 남겨주세요.. 바로 삭제 하겠습니다.
제목 글쓴이 날짜
세계 인구 구하기~; [23] AT4u 2002.11.16
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #3 [10] 아이쿠 2002.11.15
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #2 [8] 아이쿠 2002.11.13
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #1 [9] file 아이쿠 2002.11.13
(GD) 이미지 대칭 축소 함수 [5] 민이 2002.11.08
제로보드로 유료 사이트 만들기 (결제 정보 저장) [1] 한꼬마 2002.11.06
제로보드로 유료 사이트 만들기 (폼만들기) [3] 한꼬마 2002.11.06
정규표현식 쓰지 않고 자동링크하기!! 한글주소까지 문제없슴돠~~!! [6] 우트라 2002.11.05
제로보드로 유료 사이트 만들기 (회원 db 수정) 수정 #1 [7] file 한꼬마 2002.10.31
Freechal.com 과 같은 형태의 아바타를 만들자. [6] 다솜아빠 2002.10.31
제로 카운터(zero counter)에서 총 접속자 숫자 조정하기 (Easy 버젼) [13] 미카엘 2002.10.31
제로보드로 유료 사이트 만들기 (결제 테이블) [2] 한꼬마 2002.10.30
제로보드로 유료 사이트 만들기 (서론) [6] 한꼬마 2002.10.28
[출처있음]NZEO 채널 흉내내기 [10] (' _ ') napclub 2002.10.28
현재 접속자 구하기...(파일2개) inging-zb41 2002.10.26
사용자정의 함수 뽑아오는 함수입니다... [4] 우트라 2002.10.23
[추천 소스] 특정일로부터 지난날짜 혹은 남은날짜 구하기~ [5] 박은석 2002.10.22
[추천 소스] nzeo에 있는 북마크 기능 구현하기(hot key 는 제외) 초허접 강좌 [10] 정승재 2002.10.22
이메일 주소 인코딩하기 [7] 투유 2002.10.20
Java Applet을 활용한 업로드시 전송률 확인하기.. file 아이쿠 2002.10.19