테스트 사이트 - 개발 중인 베타 버전입니다

게시글 자동 작성 php 파일 관련해서 질문 드려요 ^^ 채택완료

랑콤 7년 전 조회 3,537

안녕하세요?

 

그누보드를 이용해서 시행착오를 겪으며 첫 홈페이지를 만들어보고 있는 초보입니다 ^^

 

홈페이지 홍보가 되기 전에 어느 정도 게시글이 있어야 할 필요를 느껴서요.

 

다음의 두 글을 참조하여 아래와 같이 자동으로 게시판에 글을 작성하는 php 파일을 작성했는데요. 

(우선 두 분께 진심으로 감사드립니다 ^^)

 

그누커뮨 말러83님의 글

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

 

sir 명랑폐인 님의 팁

https://sir.kr/g5_tip/6762">https://sir.kr/g5_tip/6762

 

 

</p>

<p><?php

define('_INDEX_', true);

include_once('./_common.php');</p>

<p>function board_write($bo_table, $subject, $content, $mb_id) 

{

    global $g5;</p>

<p>    $write_table = "g5_write_{$bo_table}";

    $wr_num = get_next_num($write_table);

    $wr_reply = '';

    $ca_name = "";

    $html = ""; $secret=""; $mail = "";

    $wr_subject = $subject;

    $wr_content = $content;

    $wr_link1 = "";

    $wr_link2 = "";

    $wr_email = "";

    $wr_name = $bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick];</p>

<p>    $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;

}</p>

<p>

$bo_table = "1001"; // 게시판 테이블 입력</p>

<p>$filename = "subject.txt";

$fp = fopen($filename, "r");

$subject = fgets($fp, '50');

fclose($fp);</p>

<p> </p>

<p>$filename = "content.txt";

$fp = fopen($filename, "r");

$content = fread($fp, filesize($filename));

fclose($fp);</p>

<p> </p>

<p>$mb_id="guest1"; </p>

<p>$result =  board_write($bo_table, $subject, $content, $mb_id);</p>

<p>

?> 

 

 

일단 php 파일이 오류 없이 실행되어서 게시글이 작성되기는 하는데요.

 

글쓴이의 닉네임이 출력되지 않네요 ㅠㅠ

 

명랑폐인 님께서 원래 작성하신 것처럼 

 

function board_write($bo_table, $subject, $content,$mb_id="admin", $wr_name="관리")로 하고

 

 $wr_name = $bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick]; 이 부분을 삭제해도

 

마찬가지의 결과인데요 ㅠㅠ

 

아무래도 제가 어디에선가 결정적인 실수를 한 것 같은데요 ㅜㅜ 

 

sir 회원님들께 조언을 부탁드립니다.

 

그럼 감기 조심하시고 좋은 오후 되세요 ^^

 

감사합니다.

 

추신: 웹호스팅은 닷홈을 사용하고 있습니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

아래와 같이 직접 적어 넣으시거나 제목 파일 불러온 것처럼 해서 이름을 넣어주셔도 됩니다.

$wr_name = "이름";

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

랑콤
7년 전
천사별 님 안녕하세요?

늦은 시각에 답변 남겨주셔서 감사드립니다 ^^

천사별 님께서 말씀해준 방법대로

함수 밖에서 $nickname="게스트01"; 를 추가하고

함수 안에서 $wr_name = $nickname; 로 하였는데요.

마찬가지로 글 자체나 목록스킨에서 닉네임이 공백으로 나오네요 ㅠㅠ

아무래도 제가 초보라서 php 파일의 어느 부분에서인가 실수를 한 것 같은데요.

죄송하지만 다시 한 번 여쭤봐도 될까요? ㅜㅜ


[code]
<?php
define('_INDEX_', true);
include_once('./_common.php');

function board_write($bo_table, $subject, $content, $mb_id, $nickname)
{
global $g5;

$write_table = "g5_write_{$bo_table}";
$wr_num = get_next_num($write_table);
$wr_reply = '';
$ca_name = "";
$html = ""; $secret=""; $mail = "";
$wr_subject = $subject;
$wr_content = $content;
$wr_link1 = "";
$wr_link2 = "";
$wr_email = "";
$wr_name = $nickname;

$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 = "1001"; // 게시판 테이블 입력

$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="guest1";
$nickname="게스트01";

$result = board_write($bo_table, $subject, $content, $mb_id, $nickname);


?>
[/code]


추신:

알고보니 한글 인코딩의 문제였습니다 ㅠㅠ

천사별 님께서 말씀하신 방법대로 잘 되네요.

천사별 님께 감사드립니다 ^^

그리고 첫번째 방법대로 하려면 다음 한 줄을 추가해야 되네요.

$mb = get_member($mb_id);

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인