웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #3
2002.11.15 03:40
초보의 초보를위한 초보에의한 강의 보강입니다.
전에 PHP Authorizen 기능을 이용한 암호를 거는 방법을 공부 하였습니다.
MySQL을 쓰시고 싶다는 분과 제로보드와 연계해달라는 분의 요청이 있어
어설픈 실력으로 뚝딱뚝딱 만들어 보았습니다.
이소스는 버그가 존재할수 있으며.. (ㅡ.ㅡ 몇줄안되지만.. 실력이 허접한지라..)
여러가지 제한이 붙습니다. 제로보드와 연계하다보니..
제로보드 lib.php 파일과 동일한 디렉토리에 들어가 있어야 합니다. (즉 제로보드 디렉토리에 있어야 한다는 예기)
다른디렉토리로 이동할경우 제대로 동작하지 않을수도 있습니다.
다음은 수정한 허접한 소스 입니다.
---------------------------------------------------------------------------------
<?
include ("lib.php");
$member_data[no] = '' ;
if(!$connect) $connect=dbConn();
$user_id = $PHP_AUTH_USER;
$password = $PHP_AUTH_PW;
$result = mysql_query("select * from $member_table where user_id='$PHP_AUTH_USER' and password=password('$PHP_AUTH_PW')") or error(mysql_error());
$member_data = mysql_fetch_array($result);
if (!$zb_logged_no) { $zb_logged_no = $member_data[no] ; }
if (!$zb_logged_no) {
header( "WWW-Authenticate: Basic realm="암호를 넣으세요"" );
header( "HTTP/1.1 401 Unauthorized" );
head();
Error("로그인을 실패하였습니다");
foot();
exit;
}
//ZB 4.0x 용 세션 처리
$zb_logged_no = $member_data[no];
$zb_logged_time = time();
$zb_logged_ip = $REMOTE_ADDR;
$zb_last_connect_check = '0'+ ';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
// 로그인 후 보여줄 페이지 include등을 사용하시면 되실듯 합니다.
echo 'Login 성공';
@mysql_close($connect);
?>
일반 html의 경우 그전과 동일하게 이곳에 작성하여 주시면 됩니다.
--------------------------------------------------------------------------------------------
로그인 성공했을때 보여줄 부분과 실패했을때 보여줄 부분을 수정하셔서 사용하시면 되실껏 같습니다.
버그1 .. 이 소스를 사용 로그인후 제로보드의 게시판등의 페이지로 이동하였을경우 로그인 상태에도 불구하고
로그인하지 않은상태로 보여질수도 있습니다. 이는 로그인하지 않는 화면을 기억하고 있어서이므로
F5를 눌러 새로 고침하시면 정상적으로 로그인상태로 보여집니다.
새로고침하지 않으시더라도 사용에 문제는 없을것입니다.
버그2... 로그인후 제로보드에서 로그아웃 하였을경우 이 소스를 이용한 페이지로 이동시 로그인 상태가 유지됩니다.
이는 로그인 여부를 판단하는 기준이 제로보드와 달라서 일어나는 증상으로..
ㅡ.ㅡ 허접한 실력으로 만들다보니..
이런버그가 생기게 되었습니다.
(허접한 실력으로.. 수정한다고 수정했는데.. ^.^
버그1은 프레임을 사용하실때와 비슷한 경우이므로.. ^.^ 무시하셔도 되실듯 합니다.
버그2는 로그인 했다가 제로보드에서 로그아웃 상태에서 이소스를 사용한 페이지로 이동하면,
다시 로그인이 됩니다. ㅡ.ㅡ )
허접한 실력이다 보니.. ^.^ 죄송합니다.
초보의 초보를위한 초보에의한 강의 이만 줄입니다
전에 PHP Authorizen 기능을 이용한 암호를 거는 방법을 공부 하였습니다.
MySQL을 쓰시고 싶다는 분과 제로보드와 연계해달라는 분의 요청이 있어
어설픈 실력으로 뚝딱뚝딱 만들어 보았습니다.
이소스는 버그가 존재할수 있으며.. (ㅡ.ㅡ 몇줄안되지만.. 실력이 허접한지라..)
여러가지 제한이 붙습니다. 제로보드와 연계하다보니..
제로보드 lib.php 파일과 동일한 디렉토리에 들어가 있어야 합니다. (즉 제로보드 디렉토리에 있어야 한다는 예기)
다른디렉토리로 이동할경우 제대로 동작하지 않을수도 있습니다.
다음은 수정한 허접한 소스 입니다.
---------------------------------------------------------------------------------
<?
include ("lib.php");
$member_data[no] = '' ;
if(!$connect) $connect=dbConn();
$user_id = $PHP_AUTH_USER;
$password = $PHP_AUTH_PW;
$result = mysql_query("select * from $member_table where user_id='$PHP_AUTH_USER' and password=password('$PHP_AUTH_PW')") or error(mysql_error());
$member_data = mysql_fetch_array($result);
if (!$zb_logged_no) { $zb_logged_no = $member_data[no] ; }
if (!$zb_logged_no) {
header( "WWW-Authenticate: Basic realm="암호를 넣으세요"" );
header( "HTTP/1.1 401 Unauthorized" );
head();
Error("로그인을 실패하였습니다");
foot();
exit;
}
//ZB 4.0x 용 세션 처리
$zb_logged_no = $member_data[no];
$zb_logged_time = time();
$zb_logged_ip = $REMOTE_ADDR;
$zb_last_connect_check = '0'+ ';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
// 로그인 후 보여줄 페이지 include등을 사용하시면 되실듯 합니다.
echo 'Login 성공';
@mysql_close($connect);
?>
일반 html의 경우 그전과 동일하게 이곳에 작성하여 주시면 됩니다.
--------------------------------------------------------------------------------------------
로그인 성공했을때 보여줄 부분과 실패했을때 보여줄 부분을 수정하셔서 사용하시면 되실껏 같습니다.
버그1 .. 이 소스를 사용 로그인후 제로보드의 게시판등의 페이지로 이동하였을경우 로그인 상태에도 불구하고
로그인하지 않은상태로 보여질수도 있습니다. 이는 로그인하지 않는 화면을 기억하고 있어서이므로
F5를 눌러 새로 고침하시면 정상적으로 로그인상태로 보여집니다.
새로고침하지 않으시더라도 사용에 문제는 없을것입니다.
버그2... 로그인후 제로보드에서 로그아웃 하였을경우 이 소스를 이용한 페이지로 이동시 로그인 상태가 유지됩니다.
이는 로그인 여부를 판단하는 기준이 제로보드와 달라서 일어나는 증상으로..
ㅡ.ㅡ 허접한 실력으로 만들다보니..
이런버그가 생기게 되었습니다.
(허접한 실력으로.. 수정한다고 수정했는데.. ^.^
버그1은 프레임을 사용하실때와 비슷한 경우이므로.. ^.^ 무시하셔도 되실듯 합니다.
버그2는 로그인 했다가 제로보드에서 로그아웃 상태에서 이소스를 사용한 페이지로 이동하면,
다시 로그인이 됩니다. ㅡ.ㅡ )
허접한 실력이다 보니.. ^.^ 죄송합니다.
초보의 초보를위한 초보에의한 강의 이만 줄입니다
댓글 10
-
이경근
2002.11.16 18:11
캬.. 감사합니다..!! -
이경근
2002.11.16 18:12
헉.. 한가지 더 부탁이있는데요..레벨 레벨 *(임의로)부터 레벨 1까지밖에 못들어가는 것을 못하나요? 역시 무리한 부탁인가요? -
아이쿠
2002.11.16 21:34
허걱~ 초보에게 너무 무리한 부탁을... 하시는듯.. ^.^ -
아이쿠
2002.11.16 21:37
로그인 확인하는부분
exit;
}
다음부분에
if ( $member_data[level] != 1 ) {
echo ("들어갈수 있는 레벨이 아닙니다.");
exit;
}
$member_data[level] != 1 <== 이걸 적당히 원하시는 레벨로 조정 하시면 됩니다.
!= 3 <== 이러시면 1~2도 못들어가고 오로지 레벨 3만 들어가고요...
< 3 <== 이런식이면 1~2까지만 들어갈수 있고요.. ^.^ 이런식으로...
echo ("들어갈수 있는 레벨이 아닙니다.");
출력될부분은 적당히 고치시고요.. include를 사용하셔도 됩니다. ^.^ -
이경근
2002.11.17 09:29
ㄳㄳ합니다^^; 참고로 님 홈페이지에 휴대폰(?) 모양의 인터페이스(무슨 프로그램이냐?)을 요청했던 것도 저입니다. -
靑色糖™
2002.11.24 08:08
그런데 PHP는 꼭 인터넷에 올려야지 볼 수 있나요? -
아이쿠
2002.11.24 15:02
^.^ 집에서 서버를 돌리시지 않으신다면.. 방법이 없겠죠..? ^.^ -
윤재선
2003.01.23 01:10
질문이 있습니다 이렇게 하면 처음 접속시 아디넣고 비번 넣어서 로그인 되었다고 치고
그후에 로그인하지않고 인터넷 익스플로러에 남아 있는 주소로 로그인을 건너뛰어 그 다음 내용을 볼수 있지 않나요? 실제로 해보지 않아서 모르겠지만 제 생각상 그런문제가 있는거 같습니다.
이런경우는 어떻게 처리하는지? 혹시 아시면 알려주십시오
제가 생각할때 웹 서비스 에서 이런(보안부분) 예외처리 할부분이 너무 많은거 같아서 ㅡㅡ 시작을 못하겠다는;;; ㅈㅅ -
파린사
2003.01.29 22:29
윤재선님 말씀대로네요.
그냥 넘어가 버리더군요. -
아이쿠
2003.02.09 05:27
윤재선님, 파린사님 말씀하신부분이..? 이해를 잘 못하겠는데..
Login.php (위의 소스) 에서 로그인 성공하면 A또는 B라는 페이지로 이동하도록 설정하셨다면 ^^; 당연히 A또는 B로 넘어가는건 당연하겠지요... 이동설정하시지 마시고 include또는 아에 페이지 내용을 login.php 파일안에 넣어 줌으로써 어느정도 해결하실수 있습니다.
이문제 말고 로그아웃이 안되는부분에 대한 문제시라면.. ^^; 그부분은 미리 말씀드렸듯이..
브라우져를 닫기 전까지는 로그아웃이 안되는 문제가 있습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
세계 인구 구하기~; [23] | AT4u | 2002.11.16 |
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #3 [10] | 아이쿠 | 2002.11.15 |
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #2 [8] | 아이쿠 | 2002.11.13 |
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #1 [9] | 아이쿠 | 2002.11.13 |
(GD) 이미지 대칭 축소 함수 [5] | 민이 | 2002.11.08 |
제로보드로 유료 사이트 만들기 (결제 정보 저장) [1] | 한꼬마 | 2002.11.06 |
제로보드로 유료 사이트 만들기 (폼만들기) [3] | 한꼬마 | 2002.11.06 |
정규표현식 쓰지 않고 자동링크하기!! 한글주소까지 문제없슴돠~~!! [6] | 우트라 | 2002.11.05 |
제로보드로 유료 사이트 만들기 (회원 db 수정) 수정 #1 [7] | 한꼬마 | 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을 활용한 업로드시 전송률 확인하기.. | 아이쿠 | 2002.10.19 |