웹마스터 팁

7 Step. 입력받은 데이터를 MySQL DB에 입력합니다.
write_ok.php3 파일내용
1 <?
2   include "lib.php3";
3   include "dbconn.php3";
4
5   // 암호, 이름, 내용에 대해서 입력을 하지 않았을 경우 에러메세지 출력
6   if(isBlank($password)) message("암호를 입력하셔야 합니다");
7   if(isBlank($writer)) message("이름을 입력하셔야 합니다");
8   if(isBlank($comment)) message("내용을 입력하셔야 합니다");
9
10   // 홈페이지 주소의 경우 http:// 가 없으면 붙임
11   if((!eregi("^http://",$homepage))&&$homepage) $homepage="http://".$homepage;
12
13   // 이름, 홈페이지, 메일, 본문내용 중 '등의 특수문자 존재시 앞에 (역슬래쉬)를 붙여줌
14   $writer=addslashes($writer);
15   $homepage=addslashes($homepage);
16   $email=addslashes($email);
17   $comment=addslashes($comment);
18
19   // 방명록 내용등에 html 태그등을 잘못 써서 화면이 깨지는 것 방지
20   $writer=avoid_crack($writer);
21   $email=avoid_crack($email);
22   $comment=avoid_crack($comment);
23
24   // html 사용하지 않을시 del_html() 함수로 태그를 일반문자로 변환
25   if(!$use_html) $comment=del_html($comment);
26
27   // 방명록의 본문 내용의 n(줄바꿈)을 <br> 태그로 변환
28   $comment=nl2br($comment);
29
30   // 현재 접속자의 IP주소 체크
31   $ip=$REMOTE_ADDR;
32
33   // 지금 글쓴 시간을 체크
34   $reg_date=time();
35
36   // 쿠키저장시 setcookie() 함수로 쿠키저장, time()+3600*24*365 -> 1년동안 저장
37   if($use_cookie)
38   {
39    setcookie("cookie_writer", $writer, time()+3600*24*365);
40    setcookie("cookie_homepage", $homepage, time()+3600*24*365);
41    setcookie("cookie_email", $email, time()+3600*24*365);
42   }
43
44   // DB에 입력
45   mysql_query("insert into $table_name (ip, password, writer, homepage, email, comment, reg_date)
46                values ('$ip','$password','$writer','$homepage','$email','$comment','$reg_date')", $connect)
47   or die(mysql_error());
48
49   header("location:list.php3");
50 ?>

내용설명

6~7 : isBlank()라는 lib.php3 파일에 저장되어 있는 문자열이 비었는지를 검사하는 함수로 비밀번호, 글쓴이, 내용이 비었는지를 검사하여 만약 비어 있다면 경고 메시지를 보여줍니다.

11 : 홈페이지 주소 입력시 http:// 가 없으면 나중에 엉뚱한 곳으로 링크가 되기 때문에 http:// 문자열을 검사하여 없으면 추가합니다.

14~17 : MySQL DB에 데이터를 입력할 때 ', (역슬래쉬) 등의 특수 기호가 있으면 입력에러가 나타납니다.
         addslashes() 함수를 이용하면 특수기호 앞에 한번더 (역슬래쉬)를 붙여서 에러를 방지합니다.
         * addslashes()하여 데이터를 DB에 입력한후 출력할때는 stripslashes()를 하여야지 원문으로 변환됩니다.

20~22 : <script>나 <meta> 태그등을 본문이나 이름등에 사용하였을시에 출력이 잘못되는 것을 방지합니다.
         "<" 문자를 "<" 문자로 변환하여 브라우저에 출력할 때 태그가 아닌 일반 문자로 출력을 합니다.

25 : write.php3 파일에서 html을 사용하지 않겠다고 하였을 때 lib.php3 파일에 있는 del_html() 함수를 이용하여 태그들을 일반 문자열로 바꾸어줍니다.

27 :  <textarea>에서 입력받은 값에서 줄바꿈표시는 <br>이 아닌 n입니다.
      브라우저에 출력할때는 n을 <br>로 바꾸어주어야지 줄바꿈이 이루어집니다.
      nl2br() 함수는 n을 <br>로 바꾸어 주는 함수입니다.

31 : $REMOTE_ADDR 이라는 환경변수에는 현재 접속한 방문객의 ip주소를 저장하고 있습니다.
     $ip 라는 변수에 방문객의 ip주소를 저장합니다.

34 : time() 함수는 1970년 1월 1일부터 시작하여 현재까지 1초 단위로 증가되는 값을 return하는 함수입니다.
     이 값은 date() 함수를 이용하여 원하는 형식으로 바꾸어 줄수 있습니다.

37~42 : 쿠키저장을 한다고 체크박스에 표시가 되었을 때 이름, 홈페이지, 메일주소의 값을 쿠키로 저장합니다.

45~47 : 입력된 값을 MySQL DB 에 입력합니다.

49 : header();를 이용하여 강제로 list.php3 파일로 이동시킵니다.
     만약 강제로 페이지 변환을 시키지 않았을 때 리프레쉬를 하게 되면 동일한 값이 계속 저장되기 때문에 꼭  강제로 페이지를 이동하여 주어야 합니다.
제목 글쓴이 날짜
리눅스에서 APM 설치 [9] zero 2000.05.31
페이지 자동 이동 방법 3가지!!! [10] zero 2000.03.06
교육용 메모장 #1 [53] zero 2000.07.10
교육용 메모장 #4 [18] zero 2000.07.10
교육용 방명록 #1 [전체구성 설정, 테이블 생성, 기본함수 정의] [50] zero 2000.07.03
교육용 방명록 #2 [글쓰기 폼 작성] [11] zero 2000.07.03
교육용 방명록 #3 [글쓰기 폼에서 넘어온 값을 DB에 입력하기] [5] zero 2000.07.03
교육용 방명록 #6 [수정된 값을 넘겨받아서 비밀번호를 비교하고 변경하여 줍니다.] [2] zero 2000.07.03
노프레임/카운터에 관련된 PHP함수 팁 몇가지 [1] 차카게살자 2001.12.28
PHP 인증 페이지를 만들자! - Lesson 1 수정본 #2 ☺[폐]허접-_- 2002.01.24
PHP 인증 페이지를 만들자! - Lesson 2 수정본 #1 [5] ☺[폐]허접-_- 2002.01.24
PHP 인증 페이지를 만들자! - Lesson 3 수정본 #1 [3] ☺[폐]허접-_- 2002.01.24
배경 음악을 한번만 실행 시키기 - 쿠키이용 [4] 오기 2001.12.02
주소에서 음악 파일만 빼와 윈앰프로 실행하기 [1] file 오기 2001.12.04
공부용 방명록이에욥^^. 주석왕창(페이지분할등.기능있어욥~) [2] 프리^^ 2001.04.16
대화방을 만들어보쟈~ [20] 해그리드짱!!! 2001.06.03
홈페이지에 실시간뉴스 보여주기 [19] looster 2001.06.05
php 로 swf 맹글기 [3] 리산 2001.08.30
알렉사 순위 가져오는 스크립트;; [30] file zero 2001.11.06
[추천 소스] 특정일로부터 몇일 지났나 또는 몇일 남았나 알아보는 소스 ㅡ.ㅡ; [1] 타스케 2001.11.15