웹마스터 팁

안녕하세요, 오랜만에 다음진도군요-_-;
시험기간이라 많이 바빴습니다, 죄송합니다.;;

지난 시간까지- 글쓰기폼인 write.php 에 대해 설명하고 코딩까지 해 보았습니다
이번 시간에는- 글쓰기 폼에서 데이터를 받아서 직접적으로 mysql DB 에 입력하는 write_ok.php 를 만들어보겠습니다.

\ write_ok.php ///////////
mysql 쿼리문을 통하여 write.php 에서 받아온 데이터들을 db에 저장해 보도록 합시다.

사용될 쿼리문은
mysql_query("insert into 테이블명(필드1,필드2,,,) values(필드1내용,필드2내용,,,)") or die(mysql_error());
이거랍니다.
필드명에는 우리가 먼저번에 만든 number , name , password , subject , memo , writetime 필드입니다
password 필드에는 mysql 내의 password 함수를 사용하여 암호화합시다
(password 함수를 사용하게되면 역암호화가 불가능해지므로, 같은 문자를 암호화하여 일치하게하는 방법으로 글의 수정,삭제권한을 부여할 수 있습니다)
password('$변수명')
위와같이 사용되고 우리는
password('$password')
라고 하면되겠습니다.

그러므로, 쿼리를 꾸며보면

mysql_query("insert into nd_$db(number,name,password,subject,memo,writetime) values('','$name',password('$password'),'$subject','$memo','$writetime') or die(mysql_error());

이것입니다.; nd_$db 는 브라우져 주소에서
*.php?db='디비명' 형식으로 써줬을때 '디비명' 을 $db 에 대입하여 nd_ '디비명' 이 되는것이랍니다.
(복잡하죠-ㅁ-;)
아 그리고, php 는 위에서 아래로 읽어오기때문에, 같은이름으로 변수를 정의했을때, 아랫쪽에있는 함수를 쓰게됩니다
(블록 ({}) 사이의 문장이 아닐때,)
쿼리문에서 오류가 있었던것 같습니다. password() 부분에 작은 따옴표가 씌여져있네요, 쿼리를 따와서 수정하는 과정에서 오류가 있었나봅니다. 수정을 하였습니다. 위의 쿼리로하면 정상적으로 동작할 것입니다. values 에 값을 입력할때, [함수,숫자] 에는 작은 따옴표를 붙히지 않습니다. 문자값을 입력할때만 작은 따옴표(') 를 입력하세요.


시간을 구하는것에 대해서 말씀드리겠습니다
시간을 구하는것은 서버로부터 알려진 시간을 변수 $writetime에 저장하도록하겠습니다.
시간을 불러오는 함수는
time();입니다.
date() 안에 Y,M,D 등을 사용하여 년-월-날짜등의 표현도 가능하지만, 아무런 옵션도 주어지지 않을때, 난해한 숫자로 저장이됩니다, 물론 이렇게 저장된 숫자는 나중에 Y,M,D 형으로 고칠 수 있습니다.

이제는 php 를 코딩해봅시다.
우선적으로 php 의 모든내용은 '< ?' 과 '? >' 사이에 들어가야한다는것을 아시죠?
시작합시다.

P.S>> php 코딩을할때는 나모같은 위지윅 에디터말고, 에디트플러스라던가 메모장을 이용하세요.;

-------------------------------------------------------------------------------------------------------

<?
include "dbconn.php"; //DB정보가 들어있는 파일을 인클루드 합시다. 그래야 DB 에 프로그램이 접속할수있어요.

//자자.-_-편법글쓰기를 막읍시다. write.php 파일을 거치지 않을경우 에러납니다~
if(getenv("REQUEST_METHOD") == 'GET' ) {
error("정상적인 방법으로 글을 작성하세요");
exit;
}

/**********************************************************
이제 write.php 파일에서 받아온 데이터들을 변수에 저장시킵니다. addslashes 라는것을 사용해야되요,
addslashes는 ',", 등의 앞에 백슬래쉬()를 붙혀 이건 PHP에 쓰이는 문자들이 아닙니다, 를 알려주는거죠
***********************************************************/
$name = addslashes($name);
$password = addslashes($password);
$subject = addslashes($subject);
$memo = addslashes($memo);


//시간을 구합시다
$writetime=time();

//이제 mysql DB 에 입력해 볼까요
mysql_query("INSERT INTO `nd_$db` ( `number` , `name` , `subject` , `memo` , `password` , `writetime` )
VALUES ('', '$name', '$subject', '$memo', PASSWORD( '$password' ) , '$writetime');") or die (mysql_error());


//만약 정상적으로 입력되었다면, 메시지 띄웁니다.

echo "정상적으로 입력되었습니다";

?>
-----------------------------------------------------------------------------------------------------------




주소창으로
http://주소/경로/write.php?db=디비명
하고 들어가셔서
글을 쓰고 입력하기 를 눌러보세요
만약에 "정상적으로 입력되었습니다" 라는 메시지가 나오면, 입력완료~

아, 혹시 멀티기능을 쓰지않고 한곳에만 사용하고싶을때는 대부분의 문서에 인클루드되는
dbconn.php 파일에다가

$db="디비명";

이라는 구문을 추가해주면 된답니다!

이 프로젝트는 http://secre.vip.sh 에서 진행되고,
http://nzeo.com 에서 2회분 늦게 연재됩니다.
본내용들의 모든 완성 파일들은 http://secre.vip.sh 의 work-더 나은 프로젝트를 위해! 에 올려져 있습니다.
제목 글쓴이 날짜
접속자의 IP를 화일로 저장(기능추가) [27] 전원주 2003.11.06
호스팅업체에서 GD를 지원하는지 여부를 알 수 있게해주는 소스 [12] Wizard 2003.11.05
홈페이지 관리자 모드 구축하기 (HTTP 인증, 중복 맞음) [10] file 9000㎒ 2003.11.01
include, onload, <span id=...> 다계층메뉴 활용 강좌 [2] 김병희 2003.10.25
신문기사 긁어오기 [28] horizon 2003.10.20
공지사항|일기장 4강 - notice.php 간단한 글보이기 시루바 2003.10.16
최신인기가요 순위 한방에 뽑아오기 [10] 제누스 2003.10.16
알기쉬운 웹용 MySQL 관리도구, phpMyAdmin 설치하기 [10] 허창원 2003.10.11
MSN Messenger Class - file HungryMania 2003.10.10
공지사항|일기장 3장 write_ok.php //간단한 입력쿼리문//수정 [5] 시루바 2003.10.08
내 홈페이지의 방문자 어디서 접속했을까 알아봅시다 [21] file 버찌소년 2003.10.08
공지사항|일기장 프로그램 2장:코딩구조와write.php [2] 시루바 2003.10.02
[초보] 확장자 체크하는 매우 간단한 소스; [4] 에지 2003.09.29
인터넷 사이트 , MS 오피스로 관리하기 3 공시사항 나타내기 [5] file 한꼬마 2003.09.24
Whois를 이용해서 접속자가 사용하는 ISP출력(한국통신,하나로,두루넷 등등) [6] 김재경 2003.09.23
달력 만들기 [10] TheMics 2003.09.23
php+mysql>>공지사항|일기장 프로그램 1장:DB구조,schema 파일로 테이블생성하기! [2] 시루바 2003.09.23
인터넷 사이트, MS 오피스로 관리하기 2 공지사항 [4] file 한꼬마 2003.09.23
인터넷 사이트 , MS 오피스로 관리하기 [3] file 한꼬마 2003.09.22
임시적으로 php.ini 환경변수들 대처하기 [2] impre 2003.09.20