BOARD

팁·활용

그누보드 최신글 리스트 화면 파일 다운로드 구현 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 13회 작성일 26-10-02 15:52

본문

그누보드 최신글 리스트 화면 파일 다운로드 구현 방법

그누보드 운영자와 개발자가 최신글 리스트에서 첨부파일을 직접 다운로드할 수 있도록 스킨 코드를 구성하는 방법을 확인합니다.

그누보드4 최신글 리스트 화면 파일 다운로드 구현 방법

그누보드4 최신글 리스트 스킨에서 첨부파일 배열($list[$i][file])을 참조하여 직접 다운로드 링크를 구성하려면, 최신글 출력 루프 내부에서 각 파일의 존재 여부를 확인하고 download.php 경로를 연결하는 PHP 코드를 적용합니다.

1. 최신글 스킨 파일 수정 위치

사용 중인 최신글 스킨 파일(예: latest.skin.php)의 게시물 반복 출력 루프(for 문 등) 내부에서 첨부파일 정보를 처리할 위치에 코드를 추가합니다.

2. 구현 예시 코드

$list 배열의 파일 정보를 확인하여 다운로드 링크를 생성하는 예시입니다.

<? for ($i=0; $i<count($list); $i++) {
 $file0 = $list[$i][file][0];
 $file1 = $list[$i][file][1];
 if($file0) {
 $down_link0 = "$g4[bbs_path]/download.php?bo_table=". $bo_table. "&amp;wr_id=". $list[$i][wr_id]. "&amp;no=0";
 }
 if($file1) {
 $down_link1 = "$g4[bbs_path]/download.php?bo_table=". $bo_table. "&amp;wr_id=". $list[$i][wr_id]. "&amp;no=1";
 }
?>
<tr>
 <td>
 <? if ($file0) {?><a href="<?=$down_link0?>">첨부1</a><? }?>
 <? if ($file1) {?><a href="<?=$down_link1?>">첨부2</a><? }?>
 </td>
</tr>
<? }?>

3. 주의사항 및 환경별 차이

  • 위 코드는 그누보드4(G4) 환경을 기준으로 하며, 최신글 스킨 구조에 따라 변수명이나 배열 참조 방식에 차이가 있을 수 있습니다.
  • 그누보드5 등 다른 버전 환경에서는 $g4 경로 변수나 파일 테이블 구조가 달라질 수 있으므로 적용 버전을 확인해야 합니다.

그누보드 최신글 리스트 파일 다운로드 시 '잘못된 접근입니다' 오류 해결 방법

최신글 리스트에서 뷰 페이지를 거치지 않고 바로 첨부파일을 다운로드할 때 로그아웃 상태이거나 외부 링크로 인식되어 "잘못된 접근입니다" 오류가 발생하는 경우, 다운로드 권한을 위한 세션을 강제로 생성해주어야 합니다.

세션 처리 코드 적용 위치 및 예시

최신글 스킨 파일(latest.skin.php)의 게시물 반복문(for 루프) 내부에서 download.php로 연결되는 링크를 출력하기 전 set_session 함수를 호출하여 세션을 생성합니다.

<? for ($i=0; $i<count($list); $i++) {
 $ss_name = 'ss_view_'.$bo_table.'_'.$list[$i]['wr_id'];
 set_session($ss_name, TRUE);

 $file0 = $list[$i][file][0];
 $file1 = $list[$i][file][1];
 if($file0) {
 $down_link0 = "$g4[bbs_path]/download.php?bo_table=". $bo_table. "&amp;wr_id=". $list[$i][wr_id]. "&amp;no=0";
 }
 if($file1) {
 $down_link1 = "$g4[bbs_path]/download.php?bo_table=". $bo_table. "&amp;wr_id=". $list[$i][wr_id]. "&amp;no=1";
 }
?>
<tr>
 <td>
 <? if ($file0) {?><a href="<?=$down_link0?>">첨부1</a><? }?>
 <? if ($file1) {?><a href="<?=$down_link1?>">첨부2</a><? }?>
 </td>
</tr>
<? }?>

확인 및 주의사항

  • set_session($ss_name, TRUE) 코드는 반드시 반복문(for 문) 내부의 각 게시물별 wr_id를 참조하는 위치에 추가해야 정상적으로 세션이 등록됩니다.
  • 그누보드 버전 및 환경에 따라 세션 처리 방식이나 다운로드 파일(download.php)의 접근 검증 로직에 차이가 있을 수 있으므로 적용 후 로그아웃 상태에서 정상 다운로드 여부를 테스트해야 합니다.

그누보드 최신글 파일 다운로드 적용 가이드

내 상황우선할 판단다음 행동
최신글 리스트에서 첨부파일을 바로 다운로드하게 구현하고 싶음스킨의 $list[$i][file] 배열 확인latest.skin.php 반복문 내에 download.php 링크 코드를 추가
다운로드 클릭 시 "잘못된 접근입니다" 오류가 발생함뷰 페이지 세션 인증 여부 확인반복문 내에 set_session('ss_view_'.$bo_table.'_'.$list[$i]['wr_id'], TRUE); 추가

실전 FAQ

Q. 최신글 리스트에서 파일을 다운로드할 때 '잘못된 접근입니다' 오류가 계속 발생합니다.

  • 예외 및 원인: 뷰 페이지를 거치지 않고 최신글에서 직접 download.php를 호출하면 세션에 뷰 접근 기록이 없어 보안상 차단됩니다.
  • 해결 대안: 다운로드 링크를 생성하기 전 반복문 내부에서 set_session('ss_view_'.$bo_table.'_'.$list[$i]['wr_id'], TRUE); 코드를 실행하여 강제로 세션을 생성해 주어야 합니다.

Q. 게시글에 첨부된 파일이 없을 때 빈 링크나 공백이 노출됩니다.

  • 막히는 지점: 모든 인덱스($list[$i][file][0] 등)를 무조건 출력하면 파일이 없는 게시물에서 깨진 링크나 빈 영역이 생깁니다.
  • 해결 대안: if($file0) 조건문을 사용하여 실제로 첨부파일이 존재하는 경우에만 <a> 태그 다운로드 버튼이 출력되도록 코드를 감싸야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.