채택완료

common.php 활용 방법 문의

2021-06-25 (금) 17:15:36 3,511

이런 기능을 common.php에 해당 게시판 id($bo_table) 조건으로 추가하면 될 듯합니다.

https://sir.kr/qa/418047?sfl=mb_id%2C1&lstx=woolaf

------------------------------------

위 질문의 연장선입니다.

common.php 에 어떤 코드를 넣어야 하는지 구체적으로 설명을 들을 수 있을까요?

아니면 예를 들 만한 코드가 있을까요? 

알려주시면 감사하겠습니다.

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트
2021-06-25 (금) 18:37:55

크론/웹크론을 안쓰고는 정기적인 타임으로 글쓰기는 불가합니다.

그누보드 내에서 처리하는 경우는..

해당 처리 코드를 어떤 페이지에 넣는다고 했을 때.. (가령, /extend/user.config.php)

해당 페이지가 로드되었을 때 처리되기 때문에..

24시간동안 매분마다 방문자가 있다면.. 5분마다/10분마다/.. 글등록이 될 수도 되겠지만.. 실제로 24시간동안 매분마다 방문이 있기는 어렵기 때문입니다.

답변에 대한 댓글 2개

답변감사합니다.
현재 제 사이트는 회원들이 시간당 100 명 정도 머물고 있습니다.
매분 까지는 아니여도 5~10분 오차로 유료광고글 계속 올라고 하고 싶습니다. 제가 생각한 하드코딩은 페이지 리로드 될때마다 php 실행이 발생하니 그걸 방지하고자 더 좋은 코드를 찾는 것입니다.
2021-06-29 (화) 13:57:28
/extend/user.config.php

매 페이지 로딩이 일어날 때.. 현재시각이 5분 단위인지 체크하여 실행되는 코드입니다.


[code]
$m = date('i');

if ((int)$m % 5 == 0) { // 현재 시각이 ~시 5분, 10분, 15분, .. 이라면..
$bo_table = 'aaa';
$write_table = $g5['write_prefix'] . $bo_table;
$wr_num = get_next_num($write_table);
$wr_option = 'html1';
$wr_subject = "제목";
$wr_content = "내용";
$mb_id = "id";
$wr_name = "작성자";
$wr_datetime = G5_TIME_YMDHIS;
$wr_last = G5_TIME_YMDHIS;

$sql = "
insert into {$write_table}
set wr_num = '{$wr_num}',
wr_reply = '',
ca_name = '',
wr_option = '{$wr_option}',
wr_subject = '{$wr_subject}',
wr_content = '{$wr_content}',
wr_seo_title = '',
wr_link1 = '',
wr_link2 = '',
mb_id = '{$mb_id}',
wr_password = '',
wr_name = '{$wr_name}',
wr_email = '',
wr_homepage = '',
wr_datetime = '{$wr_datetime}',
wr_last = '{$wr_last}',
wr_ip = '{$wr_ip}',
wr_1 = '{$sub_id}'
";

sql_query($sql);

sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");
}
[/code]

우선 정해진 시간에 서버내의 php 파일을 실행하여 글쓰기를 하고싶다면

크론잡 사이트를 쓰셔야합니다.

https://cron-job.org/en/

사용방법은 아래 첨부드리며,

http://gnuwiz.com/bbs/board.php?bo_table=reference&wr_id=48

수행할 코드는 /cron.php 파일로 생성하여

원하는 글쓰기 로직을 넣으시면 됩니다.

답변에 대한 댓글 1개

크론잡 안 쓰고 그누보드 내에서 해결하고 싶습니다.

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