간편하게 게시판 외부 스크립트에서 글 작성하기 > 그누보드5 팁자료실

버그신고

그누보드5 팁자료실

간편하게 게시판 외부 스크립트에서 글 작성하기 정보

간편하게 게시판 외부 스크립트에서 글 작성하기

본문

안녕하세요?

외부 스크립트에서 글을 작성하실 때 보통 db에 직접 쿼리를 날리는 방법을 많이 사용하십니다.

 

그러나 이 방법은 스크립트가 글 작성 코드로 인해 지저분해질 뿐더러,

후킹 트리거에 정의한 기능을 사용하지 못하거나 각종 수정에 대응하지 못하는 등 단점이 분명히 존재합니다.

그래서 해당 글에서는 bbs/write_update.php 파일을 불러와서 글 작성을 할 수 있게 하는 방법을 소개하고자 합니다.

 


<?php
include dirname(__FILE__) . '/_common.php';
 
$g5driver = new gb5;
 
while (1)
{
    $obj = new stdClass;
    $obj->bo_table = 'free';
    $obj->name = '쓰니';
    $obj->subject = '제목';
    $obj->content = '내용';
    $writeresult = $g5driver->write($obj);
 
    $goodobj = new stdClass;
    $goodobj->bo_table = $writeresult['bo_table'];
    $goodobj->wr_id = $writeresult['wr_id'];
    $goodobj->wr_good = 69;
    $g5driver->updategood($goodobj);
 
    sleep(1);
}
 
class gb5
{
    public $write_update;
 
    function __construct()
    {
        $this->write_update = file_get_contents('bbs/write_update.php');
        $this->write_update = str_replace('<?php', '', $this->write_update);
        $this->write_update = str_replace('check_write_token($bo_table);', '$is_admin = true;', $this->write_update);
        $this->write_update = str_replace('$is_use_captcha =', '$xxxx =', $this->write_update);
        $this->write_update = str_replace('goto_url', 'echo', $this->write_update);        
    }
 
    function write($obj)
    {
        global $g5;
        $write_table = $g5['write_prefix'] . $obj->bo_table;
        $bo_table = $obj->bo_table;
        $_POST['wr_name'] = $obj->name;
        $_POST['wr_subject'] = $obj->subject;
        $_POST['wr_content'] = $obj->content;
        eval($this->write_update);
        return array('bo_table' => $bo_table, 'wr_id' => $wr_id);
    }
 
    function updategood($obj)
    {
        global $g5;
        sql_query(" update {$g5['write_prefix']}{$obj->bo_table} set wr_good = {$obj->wr_good} where wr_id = '{$obj->wr_id}' ");
    }
}

 

해당 스크립트 실행 시 1초에 한번씩 free 게시판에 추천수 69개의 글이 작성되는 것을 보실 수 있습니다.

 

bbs/write_update.php를 불러와서 몇군데를 패치한 다음에 실행되도록 하였으며, 사용이 간편하도록 클래스화를 해보았습니다.

 

이 방법으로 댓글 작성 등의 여러가지 동작도 클래스 내부에 추가해 쉽게 구현 할 수 있을 것이라고 생각합니다.

추천
5

댓글 1개

전체 1,909 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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