웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP 인증 페이지를 만들자! - Lesson 3 수정본 #1
2002.01.24 00:52
미리보기 : http://dongsung.hs.kr/login/login.php
해당 소스 미리보기 : http://dongsung.hs.kr/login/login.phps
MySQL 사용않하는 인증 PHP 스크립트 입니다.
생각외로 알고싶어 하시는 분들이 많아서 허접한 솜씨로 올려봅니다...;
(물론 이 방법 외에도 더 좋은 방법이 있습니다.
이 방법은 제가 자주 쓰는 것이기 때문에..-ㅅ-;)
보안에도 아주!!!!!
미세하게(-ㅅ-;;) 신경을 쓸 것이기 때문에
상당히 소스가 길어질 겁니다'-';;;;;;
작성자 - [폐]허접-_- (윤종민) (저 입니다-ㅅ-;;;)
이 설명은 특정한 분들만 해당된 페이지에 들어갈 수 있도록 하는 겁니다'-';
- 만약 제가 올린 소스 그대로 해보셨는데 에러나셨으면 에러문장이 몇번 문장인지 코멘트로^-^
------------------------------------------------------------------
Lesson 3.
드디어 유저들로부터 비밀번호를 받는구나~~~
아싸 가오리~ へ( ̄▽ ̄)へ 훌렁훌렁...; (계속해서 죄송-_-;;;)
자아....
이번 강의(?)에 비하면 전편들은
모두 지나가는 사소한 코딱지 덩어리들입니다-_-;;
그만큼 좀 복잡하다는 것이죠'-';
이 강의(;;;)들 중 꽃(花) 이라고 할 수 있겠죠;;
그럼 시작하겠습니다~~'0'+ '/
-------------------------------------------------------------------
파일명 - login.php
<?
if($mode == login) /* 로그인 처리할 부분 */
{
/* 주소창에 주소를 ?mode=login 으로 직접 입력할떄 나오는 경고문 */
if ( !$HTTP_REFERER )
{
echo "
<script>
window.alert('잘못된 접근입니다.nn올바른 경로로 접속하세요.');
location.href('login.php');
</script>";
exit();
}
if(file_exists("config.php")) { /* 만약 config.php 파일이 있다면 */
include "config.php"; /* config.php 파일을 인클루드함. */
if(!strcmp($pass, $pass1)) { // 관리자가 설정한 비밀번호와 유저가 입력한 비밀번호가 일치한지 검사
echo "
<script>
window.alert('인증 되었습니다.'); <!-- 일치 했을때 -->
</script>
<form action='$PHP_SELF' method='post'>
<input type='hidden' name='mode' value='logout'> <!-- 로그아웃을 위한 Hidden 부분. (로그인 아닙니다!) -->
<br>
<center>
<input type='submit' value='로그아웃'> <!-- 로그아웃을 위한 버튼 -->
</center>
</form>
<!-- 이 부분이 여러분들이 꾸미실 부분입니다~!
바로 인증 성공했을 때 나타날 부분이죠~!
여기에 html 소스를 입력하실 수 있구요!
< html 소스 넣으실떄 주의 >
----------------------------------
html 소스를 이 곳에 넣으실 때
소스안의 큰 따옴표("")를 모두
작은 따옴표('')로 변형시켜주세요~!
않 그러면 에러나요~~~~~~~!
----------------------------------
아니면 메타 태그중 리프레시 문장으로 넘길수 있어요'-'/
<meta http-equiv='refresh' content='0;URL=여러분이 원하시는 곳 주소'>
이 문장이예요^-^ -->
";
} else {
echo "
<script>
window.alert('비밀번호가 틀립니다.'); <!-- 비밀번호가 일치하지 않을때 -->
history.go(-1);
</script>";
} }
else { // 만약 config.php 파일이 없다면
echo "
<center>
<br><br><br><br><br>
<br><br><br><br><br>
<font size=30>ERROR</font>
<br><Br><Br>
config.php 파일이 없습니다.
<br><br>
admin.php 파일로 설정 하세요.
</center>";
}
} else {
/* 인즘 폼 */
if(file_exists("config.php")) { // 만약 config.php 가 있다면
echo "
<script>
<!--
function checkit(form)
{
if(!form.pass1.value)
{
alert('비밀번호를 입력해 주세요.');
form.pass1.focus();
return;
}
form.submit();
}
//-->
</script>
<body bgcolor=white>
<center>
<form action='$PHP_SELF' method='post'>
<input type=hidden name=mode value=login> <!-- 로그인을 위한 부분 Hidden 처리 -->
<input type='password' name='+ 'pass1'>
<br><Br>
<input type='button'+ ' value='OK' onclick='checkit(this.form)'> <!-- 입력 검사와 함께 값이 ture면 로그인 페이지로 -->
</form>
";
} else { // 만약 config.php 파일이 없다면
echo "
<center>
<br><br><br><br><br>
<br><br><br><br><br>
<font size=30>ERROR</font>
<br><Br><br><Br>
config.php 파일이 없습니다.
<br><br>
admin.php 파일로 설정하세요.
</center>";
}
}
/* 로그아웃 처리 부분 */
if($mode == logout)
{ echo "<meta http-equiv='refresh' content='0;'>";
}
?>
.............
하고 나니까 막막해지네요-_-;;;;;;;;;;;;;;;;
제가 설명해 드릴수 있는 함수는...;
strcmp(); 하고..
....
뒤지니까 이거 밖에 없네요-_-;;;;;;;;
죄송합니다-_-;;;;;;;;;
일단 strcmp() 함수라도 설명해 드리겠습니다..ㅠ_-
strcmp() 함수에 대한 정의는 다음과 같습니다'-'/
strcmp(str1, str2);
두 개의 문자열(str1, str2)를 비교한다.
간단하죠?
(제가 이 함수에 매료되어 이 강의(;;)와는 달리
id를 첨가한 완전한 로그인 폼을 프로그래밍 했습니다;;
id를 추가한 원리(?)는 간단하죠;;
소스 분석하시다보면 개성있는 인증 폼을
만드실 수 있을 겁니다'-';;)
이 함수는 file_exists(); 함수와 비슷하게
if 문을 데리고 뎅깁니다'-';
(if 문은 바람둥이라 생각하시면'-';;
여기저기 함수에 필요한 존재거든요;;
카사노바....-_-;;;;;;;)
예를 들어보겠습니다^-^
#1
if(strcmp("야호", "야호")) {
/* 두 문장이 일치할 때 나타낼 부분;; */
} else {
/* 일치하지 않을 때 나타낼 부분입니다. */
}
이렇게 할 수 있습니다'-'
위 예제에서는 죽어도! 절대로! 네버! Never!
else 문장이 실행될 수 없습니다'-'
Why?
"야호", "야호"
이 두 문자열이 동일하잖아요'-'
이런 때에는 구지 else 문을 붙이지 않아도 됩니다'-'
else 문이란건 if 문이 거짓일때만 실행되니까요~^-^
따라서 다음과 같이 될 수 있습니다.
#2
if(strcmp("야호", "야호")) {
/* 두 문장이 일치할 때 나타낼 부분;; */
}
이것으로도 끝낼수 있습니다^-'
물론 strcmp 함수 앞에 !(반대) 를 붙이시면 위치가 달라지죠~
#3
if(!strcmp("야호", "메롱")) {
/* 두 문장이 일치하지 않을 때 나타낼 부분;; */
} else {
/* 일치할 때 나타낼 부분입니다. */
}
이런 상황이 되면 위에서도 언급했듯이
else 문을 붙일 필요가 없겠죠'-'?
따라서 이것도 다음과 같이 줄여질 수 있습니다~!
#4
if(!strcmp("야호", "메롱")) {
/* 두 문장이 일치하지 않을 때 나타낼 부분;; */
}
이렇게요'0'/
음....;;
이게 끝나니까 설명할 소스가 없네요....;;;;;;;;;;;;;;
{사실 돈을 안다는;;;;
(I don't know..;);;;;;;;;;
쿨럭;;
-_-;;}
그럼 많은 소스들을 분석하셔서 좋은 프로그래밍 하시구요~!
안녕히 주무세요~~!!
이상 인증 PHP페이지 만들기위한 설명글 이었습니다~!
작성자 - 狂 Drummer (윤종민)
P.S 아..; 졸려....;;
(현재 시각 : 새벽 1:40)
-영원히 끝-
해당 소스 미리보기 : http://dongsung.hs.kr/login/login.phps
MySQL 사용않하는 인증 PHP 스크립트 입니다.
생각외로 알고싶어 하시는 분들이 많아서 허접한 솜씨로 올려봅니다...;
(물론 이 방법 외에도 더 좋은 방법이 있습니다.
이 방법은 제가 자주 쓰는 것이기 때문에..-ㅅ-;)
보안에도 아주!!!!!
미세하게(-ㅅ-;;) 신경을 쓸 것이기 때문에
상당히 소스가 길어질 겁니다'-';;;;;;
작성자 - [폐]허접-_- (윤종민) (저 입니다-ㅅ-;;;)
이 설명은 특정한 분들만 해당된 페이지에 들어갈 수 있도록 하는 겁니다'-';
- 만약 제가 올린 소스 그대로 해보셨는데 에러나셨으면 에러문장이 몇번 문장인지 코멘트로^-^
------------------------------------------------------------------
Lesson 3.
드디어 유저들로부터 비밀번호를 받는구나~~~
아싸 가오리~ へ( ̄▽ ̄)へ 훌렁훌렁...; (계속해서 죄송-_-;;;)
자아....
이번 강의(?)에 비하면 전편들은
모두 지나가는 사소한 코딱지 덩어리들입니다-_-;;
그만큼 좀 복잡하다는 것이죠'-';
이 강의(;;;)들 중 꽃(花) 이라고 할 수 있겠죠;;
그럼 시작하겠습니다~~'0'+ '/
-------------------------------------------------------------------
파일명 - login.php
<?
if($mode == login) /* 로그인 처리할 부분 */
{
/* 주소창에 주소를 ?mode=login 으로 직접 입력할떄 나오는 경고문 */
if ( !$HTTP_REFERER )
{
echo "
<script>
window.alert('잘못된 접근입니다.nn올바른 경로로 접속하세요.');
location.href('login.php');
</script>";
exit();
}
if(file_exists("config.php")) { /* 만약 config.php 파일이 있다면 */
include "config.php"; /* config.php 파일을 인클루드함. */
if(!strcmp($pass, $pass1)) { // 관리자가 설정한 비밀번호와 유저가 입력한 비밀번호가 일치한지 검사
echo "
<script>
window.alert('인증 되었습니다.'); <!-- 일치 했을때 -->
</script>
<form action='$PHP_SELF' method='post'>
<input type='hidden' name='mode' value='logout'> <!-- 로그아웃을 위한 Hidden 부분. (로그인 아닙니다!) -->
<br>
<center>
<input type='submit' value='로그아웃'> <!-- 로그아웃을 위한 버튼 -->
</center>
</form>
<!-- 이 부분이 여러분들이 꾸미실 부분입니다~!
바로 인증 성공했을 때 나타날 부분이죠~!
여기에 html 소스를 입력하실 수 있구요!
< html 소스 넣으실떄 주의 >
----------------------------------
html 소스를 이 곳에 넣으실 때
소스안의 큰 따옴표("")를 모두
작은 따옴표('')로 변형시켜주세요~!
않 그러면 에러나요~~~~~~~!
----------------------------------
아니면 메타 태그중 리프레시 문장으로 넘길수 있어요'-'/
<meta http-equiv='refresh' content='0;URL=여러분이 원하시는 곳 주소'>
이 문장이예요^-^ -->
";
} else {
echo "
<script>
window.alert('비밀번호가 틀립니다.'); <!-- 비밀번호가 일치하지 않을때 -->
history.go(-1);
</script>";
} }
else { // 만약 config.php 파일이 없다면
echo "
<center>
<br><br><br><br><br>
<br><br><br><br><br>
<font size=30>ERROR</font>
<br><Br><Br>
config.php 파일이 없습니다.
<br><br>
admin.php 파일로 설정 하세요.
</center>";
}
} else {
/* 인즘 폼 */
if(file_exists("config.php")) { // 만약 config.php 가 있다면
echo "
<script>
<!--
function checkit(form)
{
if(!form.pass1.value)
{
alert('비밀번호를 입력해 주세요.');
form.pass1.focus();
return;
}
form.submit();
}
//-->
</script>
<body bgcolor=white>
<center>
<form action='$PHP_SELF' method='post'>
<input type=hidden name=mode value=login> <!-- 로그인을 위한 부분 Hidden 처리 -->
<input type='password' name='+ 'pass1'>
<br><Br>
<input type='button'+ ' value='OK' onclick='checkit(this.form)'> <!-- 입력 검사와 함께 값이 ture면 로그인 페이지로 -->
</form>
";
} else { // 만약 config.php 파일이 없다면
echo "
<center>
<br><br><br><br><br>
<br><br><br><br><br>
<font size=30>ERROR</font>
<br><Br><br><Br>
config.php 파일이 없습니다.
<br><br>
admin.php 파일로 설정하세요.
</center>";
}
}
/* 로그아웃 처리 부분 */
if($mode == logout)
{ echo "<meta http-equiv='refresh' content='0;'>";
}
?>
.............
하고 나니까 막막해지네요-_-;;;;;;;;;;;;;;;;
제가 설명해 드릴수 있는 함수는...;
strcmp(); 하고..
....
뒤지니까 이거 밖에 없네요-_-;;;;;;;;
죄송합니다-_-;;;;;;;;;
일단 strcmp() 함수라도 설명해 드리겠습니다..ㅠ_-
strcmp() 함수에 대한 정의는 다음과 같습니다'-'/
strcmp(str1, str2);
두 개의 문자열(str1, str2)를 비교한다.
간단하죠?
(제가 이 함수에 매료되어 이 강의(;;)와는 달리
id를 첨가한 완전한 로그인 폼을 프로그래밍 했습니다;;
id를 추가한 원리(?)는 간단하죠;;
소스 분석하시다보면 개성있는 인증 폼을
만드실 수 있을 겁니다'-';;)
이 함수는 file_exists(); 함수와 비슷하게
if 문을 데리고 뎅깁니다'-';
(if 문은 바람둥이라 생각하시면'-';;
여기저기 함수에 필요한 존재거든요;;
카사노바....-_-;;;;;;;)
예를 들어보겠습니다^-^
#1
if(strcmp("야호", "야호")) {
/* 두 문장이 일치할 때 나타낼 부분;; */
} else {
/* 일치하지 않을 때 나타낼 부분입니다. */
}
이렇게 할 수 있습니다'-'
위 예제에서는 죽어도! 절대로! 네버! Never!
else 문장이 실행될 수 없습니다'-'
Why?
"야호", "야호"
이 두 문자열이 동일하잖아요'-'
이런 때에는 구지 else 문을 붙이지 않아도 됩니다'-'
else 문이란건 if 문이 거짓일때만 실행되니까요~^-^
따라서 다음과 같이 될 수 있습니다.
#2
if(strcmp("야호", "야호")) {
/* 두 문장이 일치할 때 나타낼 부분;; */
}
이것으로도 끝낼수 있습니다^-'
물론 strcmp 함수 앞에 !(반대) 를 붙이시면 위치가 달라지죠~
#3
if(!strcmp("야호", "메롱")) {
/* 두 문장이 일치하지 않을 때 나타낼 부분;; */
} else {
/* 일치할 때 나타낼 부분입니다. */
}
이런 상황이 되면 위에서도 언급했듯이
else 문을 붙일 필요가 없겠죠'-'?
따라서 이것도 다음과 같이 줄여질 수 있습니다~!
#4
if(!strcmp("야호", "메롱")) {
/* 두 문장이 일치하지 않을 때 나타낼 부분;; */
}
이렇게요'0'/
음....;;
이게 끝나니까 설명할 소스가 없네요....;;;;;;;;;;;;;;
{사실 돈을 안다는;;;;
(I don't know..;);;;;;;;;;
쿨럭;;
-_-;;}
그럼 많은 소스들을 분석하셔서 좋은 프로그래밍 하시구요~!
안녕히 주무세요~~!!
이상 인증 PHP페이지 만들기위한 설명글 이었습니다~!
작성자 - 狂 Drummer (윤종민)
P.S 아..; 졸려....;;
(현재 시각 : 새벽 1:40)
-영원히 끝-
댓글 3
제목 | 글쓴이 | 날짜 |
---|---|---|
로그인 후 그룹별로 다른 페이지로 가기 - 업데이트판 v1.5 [19] | 무대포2 | 2009.06.24 |
로그인 페이지 만드는 방법 [5] | 산토 | 2009.06.12 |
별도 페이지 로그인방법 | cornet | 2009.05.21 |
내가 작성 한 글에 대한 일괄 삭제/이동/복사 권한 주기 [2] | 개돌 | 2009.05.15 |
BNU님의 Planner XE 1.2 버젼(일정관리) [9] | 개돌 | 2009.04.21 |
다양한 언어로 홈페이지 서비스하기 - 무식한 방법 [4] | 멀리서 | 2009.04.21 |
주민등록 입력 폼 1.2.0 [55] | 개돌 | 2009.04.10 |
요청하신 모듈을 찾을 수 없습니다 문제해결 방법 [2] | 반도체맨 | 2009.04.09 |
클릭마다 조회수 올리기 [1.4.0] [12] | 지B | 2009.04.04 |
특정그룹 멤버 표시 위젯에서 이름 순 정렬하기 [2] | 이재한744 | 2009.03.30 |
로그인 포인트 출력 위젯을 수정해보자 | [花穗] | 2009.03.27 |
제로보드의 아이콘을 내 맘대로 변경하기...(2) [2] | winter548 | 2009.03.23 |
브라우저 크기에 따라 본문 가로 크기 자동 조절 [1] | 개돌 | 2009.03.18 |
첨부파일의 외부 무단 링크 차단하기(XE) 게시판설정 [7] | 왕초보왕따 | 2009.03.02 |
테스트용 아이디 탈퇴 막기 [1] | SMaker | 2009.02.26 |
게시판에서 사이트 관리자만 볼수있는 항목 만들기 [1] | ☜ TeRy ☞ | 2009.02.13 |
사이트 이전팁( files 폴더) [6] | 샤이니라 | 2009.01.28 |
(재 수정) 제로보드 XE 신버젼에 Lavalic 2 설치하기 [4] | 조성우371 | 2009.01.16 |
제로보드XE 쉽게 업데이트 하는 방법.. [13] | 청개구리00 | 2009.01.12 |
로그인한 회원만 최근 게시글, 검색등 볼수 있도록 하기 [3] | [_)s | 2008.12.31 |