japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

 
소. 자료실 기능 및 잘잘한 기능 붙이기 -1 작성자에게 메일 발송
조회 : 2,831  


[강좌] php+mysql 게시판 만들기 #소-1

안녕하세요. 디망쉬입니다.

오늘로 php+mysql 게시판 만들기 강좌는 끝난답니다.
휴우. 지금 쓰는 중에는 시원허다! 라고 느끼지만 어쩐지 올리고 나면 섭섭하다 라는 생각이 들 거 같군요.
(합쳐서 시원섭섭)

요즘 제 일이 무척 많아져서 향후 제 강좌가 계획대로 써나갈 수 있을까 걱정이랍니다.


소. 자료실 기능 및 잘잘한 기능 붙이기

a. 작성자에게 메일 보내기 기능


이것은 아주우우 간단하게 처리가 가능합니다.
php 함수 중에서 mail 이라는 함수가 있는데 이것이 mail 을 보내주죠. 보통 php 를 설치할 때 imap 을 사용하도록(?) 컴파일 해주죠. 별 문제가 없다면 mail 함수로도 email 이 날라갑니다. :]

형식을 볼까요?

mail("받을곳", "제목", "내용", "From")

예를 들면

mail ("dimanche@creple.com", "제목이다",
"디망쉬는 미소년", "From: loathing@nownuri.net");

라고 하면 dimanche@creple.com 유저에게 '제목이다'라는 제목에 '디망쉬는 미소년' 이라는 내용의 e-mail 을 보냅니다. 보낸 사람 email 주소는 loathing@nownuri.net 으로 나오고요.

간단하죠?

그렇다면 HTML 형식의 email 은 어떻게 보낼 수 있을까요?

그것은 Header 정보를 추가하면 됩니다.
php 3 메뉴얼에 보면 을 붙임으로서 헤더 정보 추가가 가능하다고 되어있다는군요.

mail ("dimanche@creple.com", "제목이다",
"<font size="2">디망쉬는 미소년</font>",
"From: loathing@nownuri.net Content-Type:text/html");

그런데 여기서 우리가 알아야할 게 있습니다.
제가 편의상 mail 함수의 네번째 부분을 From 으로, 즉 보내는 곳의 email 주소 넣는 곳이라 설명했는데 사실 맞는 게 아닙니다.
네번째는 email 헤더 정보를 넣는 곳입니다.

mail ("dimanche@creple.com", "제목이다",
"<font size="2">디망쉬는 미소년</font>",
"Content-Type:text/html");

이렇게 하면 보내는 곳 email 주소가 nobody 로 나올 것입니다.


자아. 이렇게 된 것을 이제 붙이기만 하면 되겠군요. 어디에 붙일까요?

예이. 글을 입력한 뒤에 보내면 되겠죠?
글 입력을 뭐가 해주던가요? 바로 run.php3 죠? ^^ 추가해보겠습니다.

그런데 글 쓰면 누가 email 받아야할까요?
게시판 관리자? 뭐 그러면 좋겠죠. ^^;
그건 쉬우니 넘어가고, 답신 글을 쓸 때 답신 당하는(?) 사람에게 email 보내도록 하죠.

무슨 말인고하면 제가 글을 썼는데 방수르나라는 사람이 제 글에 답신을 남길 경우, 방수르나라는 사람이 작성한 글 내용이 제 email 로 보내지게 하자는거죠.

이것을 할 때는 다음과 같은 과정을 거치면 됩니다.

해당 글의 내용을 가져옴 --> 답신 글의
내용을 가져옴 --> email 보냄

쉽죠?

일단 run.php3 에서 답신 글 저장하는 루틴은

elseif ($mode == "reply") {
}

이 부분이죠? 이 부분에서 해당 글의정보를 가져오는 루틴과 답신 글의 정보를 다루는 루틴이 다 있습니다.
해당 글은 $rpt 라는 배열이 갖고 있고, 답신 글은 $fil 배열이 갖고 있죠.
그럼 mail 함수로 email 보내는 것만 하면 되겠군요.

mail("$rpt[usremail]", "$fil[title]",
"$fil[text]", "$fil[email]");

별도의 설명? 당연 생략합니다. ^^
이 부분까지 그대로 따라오셨다면 충분히 설명을 생략해도 될 수준이시니. ^^

그럼 한 번

elseif ($mode == "reply") {
}

를 모두 볼까요?

elseif ($mode == "reply") {
$result = mysql_query("SELECT * FROM $board
WHERE no=$rpo[no]", $connect);
$rpt = mysql_fetch_array($result);
mysql_free_result($result);

$rpi[replydepth] = $rpt[replydepth] + 1;
$rpi[idx] = $rpt[idx];

if ($rpt[replyto]) {
$rpi[replyto] = $rpt[replyto];
}
else {
$rpi[replyto] = $rpt[no];
}

$rpi[time] = time();
$rpi[pw] = crypt($fil[pw]);

$upidx = mysql_query("UPDATE $board SET idx = idx + 1
WHERE idx >= $rpt[idx]", $connect);
$upno = mysql_query("UPDATE $board SET replyon = 1
WHERE no = $rpo[no]", $connect);
$result = mysql_query("INSERT INTO $board VALUES('',
0, $rpi[idx], '$fil[title]', '$fil[text]',
0, $rpi[replyto], $rpo[no], $rpi[replydepth],
0, '', '', 0, '$fil[name]', '$rpi[pw]',
'$fil[email]', '$fil[homepage]', $rpi[time])", $connect);

mail("$rpt[usremail]", "$fil[title]",
"$fil[text]", "$fil[email]");

Header("Location: list.php3?board=$board");
}

하핫. 오랜만에 보는군요. 아래 부분에 mail 함수가 보이죠? ^^

으흠. 저희 회사의 게임 홈페이지가 1차적으로 열렸답니다. 거참 힘들대요.
뼈대는 개인적으로 아는 분의 도움으로(그분의 회사 언니라던가) 이쁘게 무난히 넘어갈 수 있었지만 내용 넣고
cgi 를 디자인에 맞춰 뜯어고치고 최적화시키느라 헥헥. 더군다나 감기에까지 걸려서 @_@ (열은 38~39 도에서 왔다 갔다하고 가래에 오한에 어지러움증에 갑작스런 빈혈의 러쉬 --;) 피곤하고 일 많이 하다보니 몸의 면역성이 떨어져 에어컨 바람에 감기게 걸린 듯 싶습니다. ^^;
(요즘 4~5시간씩 자며 일들을 T_T)

그래도 좋군요. 힘들지만. 젊음이란! ^^/

----------------------------
함께하면 즐거운 사이트들 (-_-; 광고임 -_-;)
http://game.creple.com/delthia
http://creple.com
http://coco.st
----------------------------


- ?! 디망쉬


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=591


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
디망쉬
E-mail : dimanche@coco.st

Homepage : http://dimanche.coco.st

 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 웹개발언어
PHP
JSP
python
기타
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.