2010. 11. 6. 04:03ㆍ웹/그누보드
<!--게시판 글쓰기를 통해서가아닌 다른페이지에서 게시글을 등록한다-->
<?
//$newpost[bo_table] : 테이블이름
//$newpost[ca_name] : 카테고리이름
//$newpost[wr_subject] : 제목
//$newpost[wr_content] : 내용
//$newpost[mb_id] : 글쓴이
// order($newpost); 라고 실행시키면 글이 해당 게시판에 올라갑니다.
function order($newpost) {
global $g4;
// 입력할 bo_table이 존재하는지 확인
if(!strlen($newpost[bo_table])) return "error: bo_table 값이 지정되지 않았습니다.";
if(!$bo = sql_fetch("select * from `$g4[board_table]` where bo_table='$newpost[bo_table]'")) {
return "error: bo_table이 존재하지 않습니다.";
}
// 카테고리 사용한다면 카테고리 설정
$ca_name = $newpost[ca_name];
if($bo[bo_use_category]) {
if(!$ca_name || strpos($bo[bo_category_list], $ca_name)===false) { // 카테고리 지정이 안되었거나 없는 걸 지정했다면 첫번째로 설정
$temp = @explode("|", $bo[bo_category_list]);
$ca_name = $temp[0];
}
} else {
$ca_name = ""; // 카테고리 쓰지 않으면 공백값으로 지정
}
// 회원정보 및 권한 확인
$mb = get_member($newpost[mb_id]);
if(!$mb) return "error: mb_id가 존재하지 않습니다.";
if($bo[bo_write_level] > $mb[mb_level]) {
return "error: 글쓰기 권한이 없습니다.";
}
// 변수 정리
$bo_table = $newpost[bo_table];
$write_table = $g4[write_prefix] . $bo_table;
$wr_num = get_next_num($write_table);
$ca_name = addslashes($ca_name);
$html = "html1"; // 이 값은 필요에 맞게 설정
$secret = "";
$mail = "";
$wr_subject = addslashes(trim($newpost[wr_subject]));
$wr_content = addslashes(trim($newpost[wr_content]));
if(!$wr_subject) return "error: 글 제목이 없습니다.";
if(!$wr_content) return "error: 글 내용이 없습니다.";
$mb_id = $mb[mb_id];
$wr_password = $mb[mb_password];
$wr_name = $bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick];
for($i=1; $i<=10; $i++) { // 확장필드도 입력
$wr = "wr_{$i}";
${$wr} = addslashes($newpost[$wr]);
}
$wr_link1 = $newpost[wr_link1];
$wr_link2 = $newpost[wr_link2];
$wr_trackback = $newpost[wr_trackback];
// 글 입력하기
$sql = " insert into $write_table
set wr_num = '$wr_num',
wr_reply = '',
wr_comment = 0,
ca_name = '$ca_name',
wr_option = '$html,$secret,$mail',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_last = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10' ";
sql_query($sql);
$wr_id = mysql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
// 최신글 삽입
sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$mb[mb_id]' ) ");
// 게시글 1 증가
sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$bo_table'");
// 포인트 발생
insert_point($member[mb_id], $board[bo_write_point], "$bo[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
// 성공하면 글번호를 return;
return $wr_id;
}
?>
<?
$게시글내용 = "
게시글 내용!!!
";
?>
<?
$gotourl="게시글을 등록하고 표시할 사이트주소";
$newpost[bo_table] = "게시판이름";
$newpost[wr_subject] = "게시글제목";
$newpost[wr_content] = "$게시글내용";
$newpost[mb_id] = "작성자ID";
$result = order($newpost);
if(strstr($result, "error")){
echo $result;
}else{
goto_url($gotourl);
}
?>
'웹 > 그누보드' 카테고리의 다른 글
로그인이전과 로그인이후 버튼 다르게출력하기 (0) | 2011.02.02 |
---|---|
자동등록방지(CSRF) 사용 안하기 (0) | 2010.12.24 |
방문자수 불러오기 (0) | 2010.11.06 |
최근게시물 불러오기 (0) | 2010.11.06 |
그누보드 변수 (0) | 2010.11.06 |