Tip & Tech

활용팁

홈 > 회원포럼 > 활용팁
활용팁

자동 게시글 작성 PHP 파일

6 이니스프리 19 536 6 0

안녕하세요?


제가 항상 아미나에서 도움만 받아서 감사한 마음에 


별 것 아니지만 허접한 활용팁 하나 올려드립니다 ^^


저는 개발자가 아니고 컴알못인 점을 감안하시고 이 글을 읽어주시면 감사하겠습니다.



다음 두 분의 글을 참조해서 자동 게시글 작성 PHP 파일을 만들어 보았어요.


그누커뮨 말러83님의 글

http://gnucomun.net/bbs/board.php?bo_table=study&wr_id=52


sir 명랑폐인 님의 팁

https://sir.kr/g5_tip/6762


우선 두 분께 감사드리며 아울러 이를 토대로 제가 작성한 스크립트의 문제점을 수정해주신 


Studyforus의 humit 님과 네모 님께도 진심으로 감사드립니다 :)




네 분의 도움을 받아서 작성한 스크립트는 다음과 같습니다.



<?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을 매일 실행하되 시간을 랜덤하게 일정 범위에서 늦게 시작하도록 지정하실 수 있습니다.



제가 올려드린 스크립트에서 일부 군더더기도 있을 것이고 


보안상으로나 코딩상으로나 좀 더 보완해야 될 부분도 있을 것으로 생각되네요.


혹시 그런 부분이 보이신다면 댓글로 말씀해주시면 감사하겠습니다 ^^


그리고 죄송하지만 파싱에 관한 질문은 정중히 사절합니다 ㅠㅠ


부디 이 스크립트를 바람직한 용도로만 활용하셨으면 좋겠습니다.



그럼 즐겁고 뜻깊은 연말 되시길 기원합니다 ^-^


한별아빠 님을 비롯한 아미나 회원님들께 다시 한 번 진심으로 감사드립니다!


19 Comments
1 장미 2017.12.30 20:39  
감사합니다

Congratulation! You win the 23 Lucky Point!

10 몽이 01.03 20:38  
구경할만한 링크 좀 부탁드려도될까요?
비밀글로라도..
1 mygahi 01.04 13:07  
감사합니다

Congratulation! You win the 45 Lucky Point!

2 미친96 01.09 04:34  
오랜만에 왓는 데 필요한게 띡 잇네요. ㅋㅋ 감사감사
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory NaverBand