주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

PHP 기초활용 - (4) 카운터 기초 4

네로 | 2003.02.24 00:08:18 댓글: 0 조회: 426 추천: 3
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1758889
PHP 기초활용 - (4) 카운터 기초 4

글쓴이 : 悲魂(비혼), 2000/08/03(목)


본 강좌는 [PHP 기초중의 기초] 후속편입니다. 이번 강좌부터는 앞으로의 PHP 프로그래밍에 있어 도움될만한 내용으로 진행할 것입니다. 본 강좌의 내용은 여전히 PHP를 전
혀 모르는 분, 이제 막 PHP를 공부하기 시작한 분들을 대상으로 합니다. 내용의 수정이 없는 한 자유로운 이용 및 배포가 가능합니다. 강좌의 내용 중 틀린 부분이 있거나 이
해가지 않는 부분 등이 있으면 비혼의 조그만 세상(http://soulstar.new21.org/)이나 흑협의 PHP Tip( http://phptip.com/) 게시판에 글을 남겨주시면 고맙겠습니다. [참고 :
이번 강좌부터는 진행 속도가 다소 느릴 수 있으니 늦게 올라와도 이해해 주시기 바랍니다.]


* * * * *

...오래 기다리셨어요?...
...초간단 카운터 제작을 주제로 강좌 진행중입니다. 어려움이 많죠? 기운들 내세요...

* * * * *

지난 시간까지 나온 함수를 잠깐 살펴보겠습니다. 무엇 무엇이 나왔는지 기억하고 계신가요~?

fopen() ... 파일 열기
fgets() ... 포인터에서 읽기
fputs() ... 포인터에서 쓰기
fseek() ... 포인터 옮기기
file() ... 파일 내용을 배열로 저장
file_exists() ... 파일의 존재 유무
touch() ... 간단하게 빈 파일 생성
chmod() ... 파일 권한 변경

복습하는 차원에서 전 강좌에서 이 함수에 대한 내용을 한번씩 읽어보세요. ^^;

오늘은 지난 시간의 과제로 냈던 Login 폼에 대해 알아볼까요?

어느 홈페이지에 가보면 아이디와 암호를 입력하는 페이지가 있죠. 제대로 된 정보를 입력하면 접속이 되고, 틀린 아이디와 암호를 넣으면 확인하라구 툴툴거리는 페이지가
뜨구요. 카운터에서 다루었던 파일 함수를 이용해 간단하게 만들어 보겠습니다.

아참, 여기서 잠깐. 본 내용은 강좌용일 뿐이랍니다. DB, 쿠키, 세션 등을 이용하는 방법은 나중에 기회가 되면 다루도록 하겠습니다. 우선은 파일을 이용한 간단한 암호 확
인 기능을 만들어보겠습니다.


1) 입력폼 제작

아이디와 암호를 입력하기 위한 입력폼이 필요하겠죠? html 태그로 작성하시면 됩니다.

filename : exam4-1.htm
<html>
<head><title>PHP 기초활용
<body>
<form method=post action=exam4-1.php>
연습 - 이름:asdf 암호:1234

이름 : <input type=text name=iname maxlength=10>

암호 : <input type=password name=ipass maxlength=10>



<input type=submit value=확인> <input type=reset value=다시>





위 html 문서를 웹 브라우저에서 불러오면 다음과 같은 입력 폼이 뜹니다. 앞으로의 프로그래밍 과정에서 이 입력 양식은 많이 사용되니까 미리미리 친해지도록 노력해보세
요.


연습 - 이름:asdf 암호:1234
이름 :
암호 :




여기서 <form> 태그의 action 항목에서 이 폼으로부터 받은 값을 처리할 프로그램을 exam4-1.php로 지정했으니 이제 이 처리 프로그램을 만들어 볼까요...?



2) 처리 프로그램 제작

filename : exam4-1.php
<?php
if($iname != "asdf")
{
echo "그런 사용자는 없습니다.";
exit;
}
if($ipass != "1234")
{
echo "암호가 틀렸습니다.";
exit;
}
echo "$iname 님의 입장을 환영합니다.";
?>

프로그램을 잘 보면 아시겠지만 저번 시간에 배운 함수들은 사용하지 않았습니다. 때문에 프로그램상에서 미리 아이디와 암호를 지정해둬야만 하죠. 자신만의 공간에 이용하
면 좋겠죠? 이건 예였을 뿐이고 이번엔 파일을 이용하는 예제를 보겠습니다.


filename : exam4-2.php
<?php
if($iname && $ipass) // 만약 이름과 암호 둘 모두 입력되었다면
{
$data = file("exam4-1.cgi");
if(chop($data[0]) != $iname)
{
echo "이름이 틀립니다.";
exit;
}
if(chop($data[1]) != $ipass)
{
echo "암호가 틀립니다.";
exit;
}
echo "입장을 환영합니다.";
} else {
echo '
이름과 암호를 입력해주세요.

<form method=post action=exam4-2.php>
연습 - 이름:asdf 암호:1234

이름 : <input type=text name=iname maxlength=10>

암호 : <input type=password name=ipass maxlength=10>



<input type=submit value=확인> <input type=reset value=다시>
';
}
?>

단일 파일로 구성된 이름, 암호 체크 프로그램입니다. 먼저 이름과 암호가 정해져 있지 않으니 아래쪽의 else 블럭을 실행합니다. 입력폼이 나오는 것이죠. 입력폼에서 이름
과 암호를 입력하고 확인 버튼을 누르면 다시 자기 자신을 읽습니다. 이름과 암호 값이 넘겨졌기 때문에 이번엔 if 문 블럭을 수행하죠. 파일의 내용을 $data에 배열로 읽어
들여 뒤의 여백을 제거한 다음에 입력된 값과 비교를 하는 것입니다. 만약 이름이 틀리면 이름이 틀렸다는 문장을 내보내고 종료, 암호도 마찬가지로 처리하고 둘다 넘어가면
[즉 이름과 암호가 일치하면] 입장을 환영합니다란 문장이 출력되는 것입니다.

읽어들일 파일을 exam4-1.cgi라고 했는데 이는 이름, 암호의 유출을 막기 위해서 그렇게 정한 것입니다. 확장자가 txt나 htm 등 누구나 볼 수 있는 형식으로 하면 곤란하니
까요. 브라우저상에서 cgi 파일을 불러오면 에러만 뜹니다. [물론 형식이 일치하지 않으니까요]


3) chop() ... 뒤쪽의 여백 제거

파일로부터 읽었을때 뒤쪽의 여백을 제거해 줍니다.


filename : exam4-3.php
<?php
$a = "TestProgram ";

echo "[여백제거전] - [$a]
";
if ($a == "TestProgram") echo "일치
";
else echo "불일치
";

$a = chop($a);
echo "[여백제거후] - [$a]
";
if($a == "TestProgram") echo "일치
";
else echo "불일치
";
?>


$a에 뒤에 공백이 붙은 문자열을 넣고 문자열 비교를 해보는 간단한 예제입니다. 문자열의 상태를 보기 위해 대괄호[] 사이에 값을 출력시켰습니다.


* * * * *

이번 강좌 가볍게 마칩니다...

[과제] 지금까지 배운 명령어를 토대로 아무거나 프로그램을 하나 만들어 볼 것
[과제게시판] http://soulstar.new21.org/v1.0/zeroboard/zboard.php3?id=report_1

* * * * *

PHP 기초활용

(4) 카운터 기초 4 : http://soulstar.new21.org/study2/study4.htm
예제 : http://soulstar.new21.org/study2/exam4-1.htm
예제 : http://soulstar.new21.org/study2/exam4-1.php
예제 : http://soulstar.new21.org/study2/exam4-2.php
예제 : http://soulstar.new21.org/study2/exam4-3.php
추천 (3) 선물 (0명)
IP: ♡.27.♡.234
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11971
관리자
2003-09-20
11527
관리자
2003-09-20
20672
지구인
2010-08-27
19453
지구인
2009-09-07
13773
SOLIDH
2010-01-29
15734
엔죠라이프
2004-10-07
16824
네로
2003-02-24
629
네로
2003-02-24
562
네로
2003-02-24
1122
네로
2003-02-24
654
네로
2003-02-24
438
네로
2003-02-24
478
네로
2003-02-24
470
네로
2003-02-24
426
네로
2003-02-24
386
네로
2003-02-24
438
네로
2003-02-24
426
네로
2003-02-24
428
네로
2003-02-24
526
네로
2003-02-24
514
네로
2003-02-24
1442
네로
2003-02-24
719
네로
2003-02-24
568
네로
2003-02-24
538
네로
2003-02-24
676
네로
2003-02-24
628
네로
2003-02-24
489
모이자 모바일