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

본문
그누보드 최신글 리스트 화면 파일 다운로드 구현 방법
그누보드 운영자와 개발자가 최신글 리스트에서 첨부파일을 직접 다운로드할 수 있도록 스킨 코드를 구성하는 방법을 확인합니다.
그누보드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. "&wr_id=". $list[$i][wr_id]. "&no=0";
}
if($file1) {
$down_link1 = "$g4[bbs_path]/download.php?bo_table=". $bo_table. "&wr_id=". $list[$i][wr_id]. "&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. "&wr_id=". $list[$i][wr_id]. "&no=0";
}
if($file1) {
$down_link1 = "$g4[bbs_path]/download.php?bo_table=". $bo_table. "&wr_id=". $list[$i][wr_id]. "&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>태그 다운로드 버튼이 출력되도록 코드를 감싸야 합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 파일 업로드 시 원본 파일명 유지 및 변경 방지 방법 26.10.02
- 다음글그누보드 글쓰기 페이지 비회원 개인정보 수집 동의 추가 방법 26.10.02
댓글목록
등록된 댓글이 없습니다.