[ php ] 그누보드 게시판 자동 글쓰기 소스 예제 > gnuboard

본문 바로가기
사이트 내 전체검색

gnuboard

팁자료 [ php ] 그누보드 게시판 자동 글쓰기 소스 예제

페이지 정보

작성자 웹지기 댓글 0건 조회 3,992회 작성일 18-09-28 17:00

본문

php 그누보드 게시판 자동 글쓰기 소스 예제


사람이 직접 글을 작성하고 "글쓰기" 버튼을 누르지 않고, 프로그램으로 글을 올려야 하는 경우 사용

[code]

<?

// 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;

}

?> 

[/code]


그누보드용 xmlrpc metaWeblog.newPost method도 위와 비슷한 방식으로 함수를 만들어놓고 있습니다. 


첨부파일을 /extend/ 폴더에 넣어두고, 다음과 같이 페이지를 만들어 실행하면 글이 자동으로 등록되는 것을 확인할수 있습니다.

예제: 

[code]

<?

include_once("./_common.php");

$newpost[bo_table] = "freeboard";

$newpost[wr_subject] = "자동등록글";

$newpost[wr_content] = "이 글은 자동으로 등록되었습니다.<br>정말 신기합니다.";

$newpost[mb_id] = "admin";

$result = m3post($newpost);

if(strstr($result, "error")) echo $result;

else echo "<a href='$g4[bbs_path]/board.php?bo_table=$newpost[bo_table]&wr_id=$result'>결과보기</a>";

?>

[/code]

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 54건 3 페이지
  • 24 팁자료[ mysql ] 튜닝 그누보드 - db접속횟수 줄이기
  • 접속자가 증가하다 보면 튜닝을 하게되는데..튜닝을 하는데 있어 db컨넥을 줄이고자 노력합니다.기본 설정 (g4_config), 게시판 설정 (g4_board), 그룹 설정 (g4_group) 을 파일로 만들어 컨넥을 줄일수도 있습니다.동접자는 10분간 현재접속자 기준 최대 1500명, 일일 방문자 3만명 남짓한 사이트에서 테스트 해본결과 서버가 해외에 있어 국내사정보다 못하지만, db접속오류가 현저히 낮아졌으며, 사이트 속도도 나름 쾌적해 졌습니다.먼저, 첨부파일을 다운받아 /adm/upgrade...
  • 웹지기 09-28 3055 0 0 댓글 0
  • 21 플러그인[ g4 ] jysoft lotto
  • jysoft lotto파일이 온전하게 보존이 되지 않아서 조금 깨진듯 하다.어디가 깨졌는지는 아직 확인 안해봄
  • 웹지기 09-28 1 0 0 댓글 0
+1
  • 열람중 팁자료[ php ] 그누보드 게시판 자동 글쓰기 소스 예제
  • php 그누보드 게시판 자동 글쓰기 소스 예제사람이 직접 글을 작성하고 "글쓰기" 버튼을 누르지 않고, 프로그램으로 글을 올려야 하는 경우 사용[code]&lt;?// m3post 함수 ver 1.00 by 말러83 (2009-12-21)// $newpost[bo_table], $newpost[wr_subject], $newpost[wr_content], $newpost[mb_id] 값만 지정하고,// m3post($newpost); 라고 실행시키면 글이 해당 게시판에 ...
  • 웹지기 09-28 3993 0 0 댓글 0
  • 15 팁자료[ editor ] 네이버 스마트 에디트 SmartEditor2.0 Basic (2.2.1) 설치
  • http://dev.naver.com/projects/smarteditor/download 링크에서 SmartEditor2.0 Basic (2.2.1)버젼을 다운로드root 폴더에 smart_editor를 넣을 디렉토리를 생성한다 에디터를 업로드 하고 설정을 시작해볼까요?게시판 skin 폴더에 write.skin.php에서 현재 사용중인 모든 에디터를 제거한다.혹시나 실수 할 수 도 있으니 기존 파일을 다른이름으로 바꾸고 생성해서 사용하는게 좋겠지요?일단 상단부분에[code]&lt;?//...
  • 웹지기 09-27 4065 0 0 댓글 0
  • 14 플러그인syntaxhighlighter 테마 변경
  • https://funyphp.com/bbs/board.php?bo_table=gnuboard&amp;wr_id=18 이 페이지에서 view.skin.php에서 [code] add_stylesheet('&lt;link rel="stylesheet" href="'.G5_SYN_URL.'/style/shThemeDefault.css"&gt;', 0); [/code] 아래처럼 수정을 해주면 테마가 변경이 된다. [code] add...
  • 웹지기 09-23 4319 0 0 댓글 0
  • 13 팁자료게시글 작성시 메일이 보내지지 않을 때 확인사항
  • 비회원일 때 글쓰는 사람이 메일을 적지 않으면 메일이 발송이 되지 않음. 비회원의 경우 메일이 없으므로 발송이 되지 않음. 회원의 경우도 메일이 없으면 발송이 되지 않음. 이를 대용으로 글쓴이의 메일이 없을 경우 관리자의 메일을 대신 불러온다. /lib/mailer.lib.php mailer(); //수정 [code] $fmail = $fmail?$fmail:$config['cf_admin_email']; 또는 if(!$fmail) $fmail = $config['cf_admin_...
  • 웹지기 09-21 3890 0 0 댓글 0
  • 11 플러그인syntaxhighlighter 3.0.83 적용하기
  • 파일을 다운받고 앞축을 푼다. 필요한 두개의 폴더만 업로드 해도 되고 모두 업로드 해도 상관없다. 쉽게 구분하기 위해 /plugin/syntaxhighligher_3.0.83/아래에 다운 받은 파일 업로드 /extend/syntaxhighlighter.extend.php 만들기 [code] &lt;?php if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 define('_SYNTAXHIGHLIGHTER_USE_', true); ...
  • 웹지기 09-19 4524 0 0 댓글 0
  • 10 팁자료[ g4 ] 글쓰기시 외부 링크 이미지 저장하기
  • ※ [배추베이직스킨사용자] write_update.head.skin.php 파일을다운로드 받으세요.혹시 필요하신 분 계시면 도움이 될까해서 올립니다.글쓰기 할 때 외부링크 이미지를 모두 서버에 저장한 후 불러오는 소스입니다.basic스킨을 기준으로 제작되었으며 EUC-KR버전입니다.예를 들어&lt;img src=http://naver.com/logo.gif&gt;이라고 입력하고 글쓰기 버튼을 클릭하면logo.gif를 서버에 저장한 후 이미지 주소를아래와 같이 바꿔서 불러옵니다....
  • 웹지기 09-19 4160 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
8,394
어제
56,257
최대
61,067
전체
10,971,996

그누보드5
Copyright © funyphp.com. All rights reserved.