웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
교육용 방명록 #3 [글쓰기 폼에서 넘어온 값을 DB에 입력하기]
2000.07.03 02:53
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 파일로 이동시킵니다.
만약 강제로 페이지 변환을 시키지 않았을 때 리프레쉬를 하게 되면 동일한 값이 계속 저장되기 때문에 꼭 강제로 페이지를 이동하여 주어야 합니다.
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 파일로 이동시킵니다.
만약 강제로 페이지 변환을 시키지 않았을 때 리프레쉬를 하게 되면 동일한 값이 계속 저장되기 때문에 꼭 강제로 페이지를 이동하여 주어야 합니다.
댓글 5
-
이성철
2001.06.19 18:16
음...페이지 나누기 머리아파.. -
주명식
2001.07.27 10:11
헉 더 깔끔하게 빠꼇드~아.. --; -
밍이
2002.03.12 15:10
후우.....
어렵다. hwader(); 을 강제로이동시켜야 한다구요?
허엇.. hwader..불쌍타...강제로... -
하라주크
2007.07.30 18:29
하악하악 클리어인가? 한번내홈피봐야징 >ㅅ<!! -
하라주크
2007.07.30 18:53
ㅜㅜㅜㅜㅜ 막힌다...
하악하악.. 내일더해야지..
제목 | 글쓴이 | 날짜 |
---|---|---|
체널을 응용해서 tmain.php?tdb=test&db=src 식으로 쓰기 [12] | 9000㎒ | 2003.08.01 |
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] | 예뜨락 | 2004.11.17 |
rsync의 write only 기능(쓰기만 가능한 설정) | 좋은진호 | 2004.12.09 |
게시판 글쓰기에서 자동링크의 target을 _blank로 일괄 적용 | 무얼까 | 2011.08.23 |
코어 1.5.1에서 회원정보에 성별아이콘 쓰기
![]() | 늘푸른이 | 2011.12.10 |
코어 1.5.1에서 회원목록에 성별아이콘 쓰기(수정) | 늘푸른이 | 2011.12.10 |
모바일 첨부,댓글,댓글쓰기 항상 열어놓기 [10] | 키스미베이베 | 2012.05.31 |
글쓰기 폼에 미리 기본 내용 입력 [24] | 송동우 | 2012.07.18 |
글쓰기 안되고 관리자만 글쓰기가 될때 해결법 [2] | 소푸 | 2013.06.12 |
빠른 글 쓰기 - 메인 페이지에서 글 쓰기
[1]
![]() | 윈컴이 | 2013.09.23 |
1.7.4 업데이트후 글쓰기 에러가 나신다면... [2] | 맞장 | 2014.02.07 |
글쓰기를 클릭하면 띄워지는 테두리 없는 예쁜 팝업 띄우기 core. 1.7.4
[4]
![]() | 마음의빈자리 | 2014.02.11 |
게시판 글쓰기 폼은 없이 확장변수만 표시할 수 있는 게시판 만들기 (for sketchbook5 최신버전 기준) [2] | 큰성565 | 2014.05.02 |
여러게시물을 작성시 쓰기버튼 노출의 여부로 고생할 때..
![]() | BJ람보 | 2014.12.15 |
xe 폰갭 제작시 admob 광고 글쓰기 방해 하지 않으려면 | 한꼬마 | 2015.01.26 |
모바일 글쓰기 페이지 경고창
[2]
![]() | 자동차 | 2015.09.26 |
빠른 글 쓰기: 메인 페이지에서 글 쓰기
[1]
![]() | 윈컴이 | 2015.12.09 |