php로 DB에 글을 직접 쓰는 함수 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

php로 DB에 글을 직접 쓰는 함수 정보

php로 DB에 글을 직접 쓰는 함수

본문

write_update.php를 거치지 않고 php script에서 직접 글을 써줘야 하는 경우가 종종 생깁니다.
그럴 때 다음과 같은 함수를 만들어두고 사용하면 편합니다.
http://gnucomun.net/sp/study.52 에서 예제도 소개하고 있습니다.


<?
// m3post 함수 ver 1.00 by 말러83 (2009-12-21)
// $newpost[bo_table], $newpost[wr_subject], $newpost[wr_content], $newpost[mb_id] 값만 지정하고,
// m3post($newpost); 라고 실행시키면 글이 해당 게시판에 올라갑니다.

function m3post($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;
}
?>

추천
4

댓글 3개

전체 3 |RSS
그누4 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT