자동 게시글 작성 PHP 파일
다음 두 분의 글을 참조해서 자동 게시글 작성 PHP 파일을 만들어 보았어요.
그누커뮨 말러83님의 글
http://gnucomun.net/bbs/board.php?bo_table=study&wr_id=52
sir 명랑폐인 님의 팁
<?php
define('_INDEX_', true);
include_once('./_common.php');
function board_write($bo_table, $subject, $content, $mb_id)
{
global $g5;
$mb = get_member($mb_id);
$write_table = "g5_write_{$bo_table}";
$wr_num = get_next_num($write_table);
$wr_reply = '';
$ca_name = "";
$html = ""; $secret=""; $mail = "";
$wr_subject = addslashes(trim($subject));
$wr_content = addslashes(trim($content));
$wr_link1 = "";
$wr_link2 = "";
$wr_email = "";
$wr_name = addslashes($bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick]);
$sql = " insert into $write_table
set wr_num = '$wr_num',
wr_reply = '$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_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$mb_id',
wr_password = '',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '',
wr_datetime = '".G5_TIME_YMDHIS."',
wr_last = '".G5_TIME_YMDHIS."',
wr_ip = '{$_SERVER['REMOTE_ADDR']}',
wr_1 = '',
wr_2 = '',
wr_3 = '',
wr_4 = '',
wr_5 = '',
wr_6 = '',
wr_7 = '',
wr_8 = '',
wr_9 = '',
wr_10 = '' ";
sql_query($sql);
$wr_id = sql_insert_id();
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '$mb_id' ) ");
sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");
return true;
}
$bo_table = "1111"; // 게시판 테이블 입력
$filename = "subject.txt"; // 제목 파일
$fp = fopen($filename, "r");
$subject = fgets($fp, '50');
fclose($fp);
$filename = "content.txt"; // 내용 파일
$fp = fopen($filename, "r");
$content = fread($fp, filesize($filename));
fclose($fp);
$mb_id="member_id"; // 작성자 id
$result = board_write($bo_table, $subject, $content, $mb_id);
?>
보시다시피 아주 간단한 스크립트이고
게시판 테이블, 작성자 id, 글 제목, 글 내용만 변경할 수 있습니다.
사용을 위하여 직접 변경하셔야 할 부분은 주석으로 표시해놨습니다.
제목과 내용은 별도의 TXT 파일로 작성하시면 됩니다.
작성자 id는 실제로 존재하는 id이어야 합니다.
처음에 이 스크립트를 작성할 때 닉네임의 인코딩 관련해서 문제가 발생하여 삽질을 했는데요 ㅠㅠ
네모 님의 조언 덕분에 현재 올려드린 소스는 잘 작동합니다.
저는 아미나에서만 테스트해봤지만 아마도 그누보드 기반이라면 모두 작동할 것으로 생각되네요 ^^
사용 방법에 대해 말씀드리면
위 스크립트를 PHP 파일로 작성하셔서
위 파일을 FTP 프로그램을 이용하여 루트(www, html, public_html 등)에 올리시면 됩니다.
제목과 내용을 담은 TXT 파일도 같은 폴더에 올리시면 됩니다.
보안을 위하여 파일명은 가급적 어렵게 작성하시는 것을 추천드립니다 ^^
그 후에 도메인/파일명.php로 실행시키면 해당 게시판에 자동으로 글이 작성됩니다.
실은 이 파일은 친구가 자신의 회사 홈페이지의 Q&A 게시판에 글이 하루에 1개 정도 꾸준히 올라왔으면 해서
그런 취지로 만들어 본 것이었습니다.
그런 용도로 사용하시려면 윈도우의 작업 스케줄러에 넣어서 돌리시면 됩니다 :)
예컨대 특정 브라우저에서 특정 URL을 매일 실행하되 시간을 랜덤하게 일정 범위에서 늦게 시작하도록 지정하실 수 있습니다.
제가 올려드린 스크립트에서 일부 군더더기도 있을 것이고
보안상으로나 코딩상으로나 좀 더 보완해야 될 부분도 있을 것으로 생각되네요.
혹시 그런 부분이 보이신다면 댓글로 말씀해주시면 감사하겠습니다 ^^
그리고 죄송하지만 파싱에 관한 질문은 정중히 사절합니다 ㅠㅠ