웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
교육용 메모장 #5
2000.07.10 15:33
이제 memo.php3 파일에서 넘겨받은 데이터를 reg_memo.php3 파일로 넘겨서 MySQL DB에 입력하는 걸 알아봅시다.
reg_memo.php3 파일에서 해야 할 일은 다음과 같습니다.
1. name과 memo를 넘겨받는다
2. 넘겨받은 값이 비어있지 않은 값인지를 확인하여 비어 있으면 경고메세지를 출력한다.
3. 이름과 메모내용의 html 태그를 텍스트 글자로 변환한다.
4. 글쓴 시간을 time() 함수를 이용해서 구한다.
5. MySQL DB에 저장한다.
우선 1번부터 알아봅시다.
어떻게 데이터가 넘어올까요?
앞에 memo.php3 내용중 <input type=text name=name size=8 maxlength=8> 로 준 부분이 있습니다.
여기서 name=name 이라는 부분이 있죠?
php에서는 이 name=이름 으로 되어 있는곳에서 이름을 바로 변수로 만둘어 줍니다.
매우 편리하죠.
즉 reg_memo.php3 파일에는 $name 이라는 변수가 넘어오게 되는것입니다.
$memo 또한 마찬가지이죠.
그럼 이 값을 가지고 2번째 단계인 비어있는 값인지 아닌지를 검사합니다.
비어 있는지를 검사하는 함수는 lib.php3 파일안에 만들었습니다.
바로 isBlankStr() 함수입니다.
다음과 같이 사용하면 됩니다.
if(isBlankStr($name)) message("이름을 입력하셔야 합니다");
만약 $name이 빈값이라면 isBlankStr($name)은 1을 리턴합니다.
1이라는 값은 true, 즉 진실값이기 때문에 if(진실값)은 다음에 있는 message() 함수를 실행하게 됩니다.
message("문자열") 함수는 자바스크립트의 alert 경고표시를 하게 됩니다.
메모내용도 마찬가지로 하면 되죠.
if(isBlankStr($memo)) message("내용을 입력하셔야 합니다");
그럼 3번째 단계로 넘어갑시다.
3번째에서 사용할 함수도 lib.php3 파일안에 미리 만들어 놓았습니다.
del_html() 함수입니다.
사용법은 다음과 같습니다.
$name=del_html($name);
$memo=del_html($memo);
그럼 이제 4번째 단계로 넘어갑시다.
time() 이라는 함수가 있습니다.
이 함수는 1970년 1월 1일을 1로 시작하여 매초마다 1씩 증가한 값을 리턴하는 함수입니다.
이 값을 구할때는
$reg_date=time();
라고 하면 됩니다.
이 값을 연월일로 변경하여 주는 함수는 date() 함수를 이용하면 됩니다.
date("Y년 m월 d일 H시 I분 s초", time()) 라고 하면 되죠.
그럼 이제 이 값을 MySQL DB에 입력하여 봅시다.
mysql_query("insert into memo (name, memo, reg_date) values ('$name','$memo','$reg_date')",$connect) or die(mysql_error());
매우 간단하죠?
insert into memo, 즉 memo라는 테이블에 입력하라는 겁니다.
(name, memo, reg_date) 항목에다가 말이죠.
values 는 들어갈 값을 정하는 부분입니다.
$name, $memo, $reg_date를 순서대로 입력하게 됩니다.
이때 변수를 ' (홑따옴표) 로 묶어 주어야 합니다.
그럼 이제 입력까지 된 상태입니다.
이제 자동으로 memo.php3 파일로 넘어가야 겠죠?
php 에는 header("location:경로"); 라는 편리한 방법이 있습니다.
header("location:memo.html");
위의 경로 부분에 이동할 파일을 적어주면 됩니다.
이때 주의점이 있습니다.
header(); 함수앞에는 어떠한 글자도 출력이 되어서는 안되는 겁니다.
실수로 <? 라는 php 사용하는 구문앞에 한칸이 띄워진다던가 한줄이 띄워지게 되면 그거는 이미 브라우저로 전송이 되어 있는 상태입니다.
이럴때는 header() 함수는 에러를 일으키게 됩니다.
왜냐면 header() 함수는 브라우저로 자료가 넘어가기 전에 실행되어야 하기 때문입니다.
자 그럼 이제 위에서 이야기한 것을 직접 소스로 코딩하겠습니다.
마찬가지로 간단한 주석을 달겠습니다.
---- reg_memo.php3 ----------------------------------------------------------------------
$name, $memo를 넘겨받은 후 검사후 MySQL DB에 저장합니다.
-------------------------------------------------------------------------------------
<?
// lib.php3 파일을 불러옵니다.
require "lib.php3";
// $name, $memo 변수를 검사하여 빈값이면 경고 표시를 합니다.
if(isBlankStr($name)) message("이름을 입력하셔야 합니다");
if(isBlankStr($memo)) message("내용을 입력하셔야 합니다");
// $name, $memo 에 HTML 태그를 일반 텍스트로 변환합니다.
$name=del_html($name);
$memo=del_html($memo);
// 시간을 구합니다.
$reg_date=time();
// Mysql DB 에 입력합니다.
mysql_query("insert into memo (name, memo, reg_date) values ('$name','$memo','$reg_date')",$connect) or die(mysql_error());
// memo.html 파일로 이동합니다.
header("location:memo.php3");
?>
-------------------------------------------------------------------------------------
간단하죠?
이로서 메모장 CGI를 제작하였습니다.
여기서 만든 메모장은 간단히 입력과 목록보기만의 기능밖에 없습니다.
하지만 메모장은 이 정도 기능만 있으면 강력하죠.
메모장을 만들면서 전체적인 흐름을 익혔으리라 생각합니다.
여기서 조금씩 살을 덧붙이다보면 방명록이나 게시판이 탄생하게 됩니다.
이 장에서 폼을 이용한 변수의 전달, MySQL DB에서 자료를 입력하거나 가져오는 부분에 대해서 기본적인 이해가 되었을겁니다.
reg_memo.php3 파일에서 해야 할 일은 다음과 같습니다.
1. name과 memo를 넘겨받는다
2. 넘겨받은 값이 비어있지 않은 값인지를 확인하여 비어 있으면 경고메세지를 출력한다.
3. 이름과 메모내용의 html 태그를 텍스트 글자로 변환한다.
4. 글쓴 시간을 time() 함수를 이용해서 구한다.
5. MySQL DB에 저장한다.
우선 1번부터 알아봅시다.
어떻게 데이터가 넘어올까요?
앞에 memo.php3 내용중 <input type=text name=name size=8 maxlength=8> 로 준 부분이 있습니다.
여기서 name=name 이라는 부분이 있죠?
php에서는 이 name=이름 으로 되어 있는곳에서 이름을 바로 변수로 만둘어 줍니다.
매우 편리하죠.
즉 reg_memo.php3 파일에는 $name 이라는 변수가 넘어오게 되는것입니다.
$memo 또한 마찬가지이죠.
그럼 이 값을 가지고 2번째 단계인 비어있는 값인지 아닌지를 검사합니다.
비어 있는지를 검사하는 함수는 lib.php3 파일안에 만들었습니다.
바로 isBlankStr() 함수입니다.
다음과 같이 사용하면 됩니다.
if(isBlankStr($name)) message("이름을 입력하셔야 합니다");
만약 $name이 빈값이라면 isBlankStr($name)은 1을 리턴합니다.
1이라는 값은 true, 즉 진실값이기 때문에 if(진실값)은 다음에 있는 message() 함수를 실행하게 됩니다.
message("문자열") 함수는 자바스크립트의 alert 경고표시를 하게 됩니다.
메모내용도 마찬가지로 하면 되죠.
if(isBlankStr($memo)) message("내용을 입력하셔야 합니다");
그럼 3번째 단계로 넘어갑시다.
3번째에서 사용할 함수도 lib.php3 파일안에 미리 만들어 놓았습니다.
del_html() 함수입니다.
사용법은 다음과 같습니다.
$name=del_html($name);
$memo=del_html($memo);
그럼 이제 4번째 단계로 넘어갑시다.
time() 이라는 함수가 있습니다.
이 함수는 1970년 1월 1일을 1로 시작하여 매초마다 1씩 증가한 값을 리턴하는 함수입니다.
이 값을 구할때는
$reg_date=time();
라고 하면 됩니다.
이 값을 연월일로 변경하여 주는 함수는 date() 함수를 이용하면 됩니다.
date("Y년 m월 d일 H시 I분 s초", time()) 라고 하면 되죠.
그럼 이제 이 값을 MySQL DB에 입력하여 봅시다.
mysql_query("insert into memo (name, memo, reg_date) values ('$name','$memo','$reg_date')",$connect) or die(mysql_error());
매우 간단하죠?
insert into memo, 즉 memo라는 테이블에 입력하라는 겁니다.
(name, memo, reg_date) 항목에다가 말이죠.
values 는 들어갈 값을 정하는 부분입니다.
$name, $memo, $reg_date를 순서대로 입력하게 됩니다.
이때 변수를 ' (홑따옴표) 로 묶어 주어야 합니다.
그럼 이제 입력까지 된 상태입니다.
이제 자동으로 memo.php3 파일로 넘어가야 겠죠?
php 에는 header("location:경로"); 라는 편리한 방법이 있습니다.
header("location:memo.html");
위의 경로 부분에 이동할 파일을 적어주면 됩니다.
이때 주의점이 있습니다.
header(); 함수앞에는 어떠한 글자도 출력이 되어서는 안되는 겁니다.
실수로 <? 라는 php 사용하는 구문앞에 한칸이 띄워진다던가 한줄이 띄워지게 되면 그거는 이미 브라우저로 전송이 되어 있는 상태입니다.
이럴때는 header() 함수는 에러를 일으키게 됩니다.
왜냐면 header() 함수는 브라우저로 자료가 넘어가기 전에 실행되어야 하기 때문입니다.
자 그럼 이제 위에서 이야기한 것을 직접 소스로 코딩하겠습니다.
마찬가지로 간단한 주석을 달겠습니다.
---- reg_memo.php3 ----------------------------------------------------------------------
$name, $memo를 넘겨받은 후 검사후 MySQL DB에 저장합니다.
-------------------------------------------------------------------------------------
<?
// lib.php3 파일을 불러옵니다.
require "lib.php3";
// $name, $memo 변수를 검사하여 빈값이면 경고 표시를 합니다.
if(isBlankStr($name)) message("이름을 입력하셔야 합니다");
if(isBlankStr($memo)) message("내용을 입력하셔야 합니다");
// $name, $memo 에 HTML 태그를 일반 텍스트로 변환합니다.
$name=del_html($name);
$memo=del_html($memo);
// 시간을 구합니다.
$reg_date=time();
// Mysql DB 에 입력합니다.
mysql_query("insert into memo (name, memo, reg_date) values ('$name','$memo','$reg_date')",$connect) or die(mysql_error());
// memo.html 파일로 이동합니다.
header("location:memo.php3");
?>
-------------------------------------------------------------------------------------
간단하죠?
이로서 메모장 CGI를 제작하였습니다.
여기서 만든 메모장은 간단히 입력과 목록보기만의 기능밖에 없습니다.
하지만 메모장은 이 정도 기능만 있으면 강력하죠.
메모장을 만들면서 전체적인 흐름을 익혔으리라 생각합니다.
여기서 조금씩 살을 덧붙이다보면 방명록이나 게시판이 탄생하게 됩니다.
이 장에서 폼을 이용한 변수의 전달, MySQL DB에서 자료를 입력하거나 가져오는 부분에 대해서 기본적인 이해가 되었을겁니다.
댓글 21
-
초보
2000.12.29 20:22
이름, 메모를 입력하지 않았을때;; -
초보
2000.12.29 20:22
경고 메세지는 잘출력되나;; -
초보
2000.12.29 20:22
이름만 넣으면 이름만, 메모만 넣으면 메모만 -
초보
2000.12.29 20:24
걍 디비에 저장됩니다;; -_-;; 어인일인지;; -
온인선
2001.01.12 05:20
소스를 그대루 가져다 했는데도 에러나엽..-.-; 라이브러리파일에서 2개..하나는 ;<-요거 하나는 "$message" <- 이거..그다음 메모파일에서 sql오류 -
엄신혜
2001.02.13 15:46
머가 몬지.. 모르겠네~ 짜증나@! -
비공개
2001.02.27 14:15
쉽냐구염..어려운뒙..ㅡㅡ;기본적인 이해라니..소스 그대로 갖고가더 에러남뉘다..ㅡㅡ; -
★알리™
2001.03.09 19:10
우아아악~>_< 전혀 모르게따..알리~-_-;; -
김주환
2001.05.05 18:12
눈깔아포 -
신현진
2001.06.28 19:43
잘봤슴다.. ^^ -
송인하
2001.07.05 16:57
저는 cgi 잘 못한느디...ㅡㅡ; -
이희준
2001.07.24 16:39
흠.. 완전한..에러 투성.. 대처가 안돼네요.. -
이희준
2001.07.24 16:39
이거..에러없는걸로..하나 올려줘요..소스 -
정기용
2001.08.14 18:31
쿄~ 메모장은 대충 알겟는데...작품이 무슨 이꼴이야ㅡㅜ -
김종수
2001.08.16 11:31
쩝.. 별로 ㅡㅡ 안조타... 출력 안되는 것도 잇고.. 페이지 분할한거 표시도 안돼고 -
바다~♡
2001.08.22 20:35
페이지 분할 표시 잘 되는뎅.ㅡ,ㅡㅋㅋㅋ 근데 좀 썰렁하져.? ㅋㅋ -
이희준
2002.01.17 15:04
메모를 입력한후 submit버튼을 누르면 이러한 문구가 나옵니다
헤더 명령어에 문제가 있는거 같은데...뭐가 잘못된 것인가요?
Warning: Cannot add header information - headers already sent by (output started at e:apm_setuphtdocsboard2lib.php3:30) in e:apm_setuphtdocsboard2reg_memo.php3 on line 20 -
이진원
2002.02.01 00:51
영자니마 왜 이름이랑 내용은 표시가 안돼는 거죠.. 그리고 저희들 질문에 답변좀 달아주든가좀 해주세요..
게시판에 올려주시든가.. 쩝..
글구 저역시 경고메시지는 출력안되고
이름 메모 입력않았을시
Warning: Cannot add header information - headers already sent by (output started at c:apm_setuphtdocslib.php:25) in c:apm_setuphtdocsreg_memo.php on line 20 이케 나와요
다른건 제가 고쳐서 했는데 이 2가지는 영~~! ㅡㅡ^ -
(: 안호진 :)
2003.11.05 07:55
ㅡ.ㅜ 정말 미치겠넹..
if(isBlankStr($name)) message("이름을 입력하셔야 합니다");
if(isBlankStr($memo)) message("내용을 입력하셔야 합니다");
요 부분에서 에러 나옵니다 그런고로 해서 memo.php도 덩달아 에러 나옵니다 ㅡ.ㅜ -
나는 인간이다.
2006.02.25 11:10
wpfhsla, rmsepdy phpvkdlfdms dufaus(skah)dufausdksehlejsdpdy? -
뽀글641
2009.04.06 16:22
위 소스대로 해서 메모장은 잘 만들고, 입력할 때 빈 내용으로 입력시 경고 표시도 잘 나옵니다.
그런데, 빈 내용으로 입력시 경고표시가 나왔음에도 불구하고 메모장에 빈 내용으로 기록이 되어버리네요.
그리고 또 하나, 날짜는 모두 최근 날짜로 바껴서 나와버려요 ^^;
제목 | 글쓴이 | 날짜 |
---|---|---|
회원관리 프로그램을 구현하고 싶은신 분들께.. [7] | [폐]허접-_- | 2002.03.18 |
PHP 인증 페이지를 만들자! - Lesson 2 수정본 #1 [5] | ☺[폐]허접-_- | 2002.01.24 |
PHP 인증 페이지를 만들자! - Lesson 1 수정본 #2 | ☺[폐]허접-_- | 2002.01.24 |
노프레임/카운터에 관련된 PHP함수 팁 몇가지 [1] | 차카게살자 | 2001.12.28 |
MySQL 루트비번 분실시 대처요령 [29] | zero | 2001.04.18 |
교육용 방명록 #8 [delete.php3파일에서 넘겨받은 비밀번호를 검사하여 글을 삭제합니다.] [18] | zero | 2000.07.03 |
교육용 방명록 #7 [삭제 버튼을 눌렀을 때 비밀번호를 입력받는 부분입니다.] [5] | zero | 2000.07.03 |
교육용 방명록 #6 [수정된 값을 넘겨받아서 비밀번호를 비교하고 변경하여 줍니다.] [2] | zero | 2000.07.03 |
교육용 방명록 #3 [글쓰기 폼에서 넘어온 값을 DB에 입력하기] [5] | zero | 2000.07.03 |
교육용 방명록 #2 [글쓰기 폼 작성] [11] | zero | 2000.07.03 |
교육용 방명록 #1 [전체구성 설정, 테이블 생성, 기본함수 정의] [50] | zero | 2000.07.03 |
최근 게시물을 나타내는 원리와 방법 [55] | zero | 2000.03.06 |
교육용 메모장 #5 [21] | zero | 2000.07.10 |
교육용 메모장 #4 [18] | zero | 2000.07.10 |
교육용 메모장 #3 [16] | zero | 2000.07.10 |
교육용 메모장 #2 [18] | zero | 2000.07.10 |
교육용 메모장 #1 [53] | zero | 2000.07.10 |
윈2000, NT 또는 98에서 APM설치하기 [74] | zero | 2000.08.26 |
MySQL DB 데이타 백업/복구 하는 방법 [38] | zero | 2000.08.26 |
자동링크 만드는 방법!!! [28] | zero | 2000.03.06 |