제로보드4는 공식적으로 더 이상 개발되지도 배포되지도 않습니다.
제로보드4를 사용하기 위한 팁보다 제로보드4를 안전하고 무사히 다른 툴로 이전하는 팁들을 게재해주시면 감사하겠습니다.
시간이 오래 지난 만큼 오래된 프로그램은 보안 및 사용성에 있어 문제가 많으니 이해 바랍니다.
글 수 4,549

게시판마다 다운로드 권한을 설정할수 있게 합나다.
다운로드권한이 없으면 링크는 안됩니다.
글 작성자는 다운로드권한이 없어도 다운로드 가능합니다
수정할 파일은 3개 입니다.
admin/admin_exce_board.php
admin/admin_modify_grant.php
include/list_check.php
---------------------------------------------
admin_exce_board.php
수정전
// 권한 설정
elseif($exec2=="modify_grant_ok") {
@mysql_query("update $admin_table set grant_html='$grant_html', grant_list='$grant_list',
grant_view='$grant_view', grant_comment='$grant_comment', grant_write='$grant_write',
grant_reply='$grant_reply', grant_delete='$grant_delete', grant_notice='$grant_notice',
grant_view_secret='$grant_view_secret', use_showip = '$grant_imagebox' where no='$no'+ '+ '") or
Error("권한 설정 변경시 에러가 발생하였습니다".mysql_error());
-----------------------------------------------
수정후
// 권한 설정
elseif($exec2=="modify_grant_ok") {
@mysql_query("update $admin_table set grant_html='$grant_html', grant_list='$grant_list',
grant_download='$grant_download',
grant_view='$grant_view', grant_comment='$grant_comment', grant_write='$grant_write',
grant_reply='$grant_reply', grant_delete='$grant_delete', grant_notice='$grant_notice',
grant_view_secret='$grant_view_secret', use_showip = '$grant_imagebox' where no='+ '$no'+ '") or
Error("권한 설정 변경시 에러가 발생하였습니다".mysql_error());
------------------------------------------------
admin_modify_grant.php
수정전
댓글 달기 권한을 레벨별로 지정합니다.
</td>
</tr>
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;font-weight:bold;><b>삭제 권한
</td>
-----------------------------------------------
수정후
댓글 달기 권한을 레벨별로 지정합니다.
</td>
</tr>
<!------추가부분---------->
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;font-weight:bold;><b>다운로드 권한
</td>
<td >
<select name=grant_download class=input>
<?
for($i=1;$i<=10;$i++)
if($i==$board_data[grant_download]) echo"<option value=$i selected>$i</option>";
else echo"<option value=$i>$i</option>";
?>
</select>
다운로드 권한을 레벨별로 지정합니다.
</td>
</tr>
<!------여기까지---------->
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;font-weight:bold;><b>삭제 권한
</td>
-------------------------------------------------------
list_check.php
수정전
if($file_name1) {
$file_size1=@GetFileSize(filesize($data[file_name1]));
$a_file_link1="<a href='download.php?$href$sort&no=$data[no]
&filenum=1'>";
} else {
$file_size1=0;
$a_file_link1="<Zeroboard";
}
if($file_name2) {
$file_size2=@GetFileSize(filesize($data[file_name2]));
$a_file_link2="<a href='download.php?$href$sort&no=$data[no]
&filenum=2'>";
} else {
$file_size2=0;
$a_file_link2="<Zeroboard";
}
$upload_image1=$upload_image2="";
-----------------------------------------------
수정후
$file_size1=@GetFileSize(filesize($data[file_name1]));
$file_size2=@GetFileSize(filesize($data[file_name2]));
if($file_name1&&($is_admin||$member[level]<=$setup[grant_download]||$data
[ismember]==$member[no])) {
$a_file_link1="<a href='download.php?$href$sort&no=$data[no]
&filenum=1'>";
} else {$a_file_link1="";}
if($file_name2&&($is_admin||$member[level]<=$setup[grant_download]||$data
[ismember]==$member[no])) {
$a_file_link2="<a href='download.php?$href$sort&no=$data[no]
&filenum=2'>";
} else {$a_file_link2="";}
$upload_image1=$upload_image2="";
------------------------------------------------
down.php
<?
$file=file("../config.php");
$size=sizeof($file);
for($i=1;$i<=4;$i++){$file[$i]=trim(str_replace("n","",$file[$i]));}
$conn=mysql_connect($file[1], $file[2], $file[3]); //mysql접속
$mysql=mysql_select_db($file[4], $conn); //db선택
$query="alter table zetyx_admin_table add (grant_download int(2) not null default '10')";
$da=mysql_query($query, $conn);
if($da){echo "<p align=center>다운로드 필드 추가 성공<br><br><a href='../admin_setup.php'>
관리자페이지로 이동</a>";}
else{echo "<p align=center>다운로드 필드 추가 실패";}
?>
-------------------------------------------------
down.php는 필드를 추가하는 파일입니다. 다운로드 권한설정 필드가 필요하기때문에.
필드추가 완료되면 이 파일은 쓸모가 없는 파일입니다.
down.php파일을 admin폴더에 넣고 웹에서 실행하세요.
예: http://127.0.0.1/bbs/admin/down.php
======================================================================================
편법을 이용한 다운로드를 막기 위해 스킨폴더의 view.php 파일도 조금 수정합니다.
수정전
<?=$hide_download1_start?><font class=list_eng>-
<b>Download #1</b> : <?=$a_file_link1?><?=$file_name1?> (<?=$file_size1?>)</a>, Download : <?=$file_download1?></font><br><?=$upload_image1?><?=$hide_download1_end?>
<?=$hide_download2_start?><font class=list_eng>- <b>Download #2</b> : <?=$a_file_link2?><?=$file_name2?> (<?=$file_size2?>)</a>, Download : <?=$file_download2?></font><br><?=$upload_image2?><?=$hide_download2_end?>
수정후
<?=$hide_download1_start?><font class=list_eng>-
<?=$a_file_link1?><b> 다운로드1 </b>(<?=$file_size1?>)</a>, Download : <?=$file_download1?></font><br><?=$upload_image1?><?=$hide_download1_end?>
<?=$hide_download2_start?><font class=list_eng>-
<?=$a_file_link2?><b> 다운로드2 </b>(<?=$file_size2?>)</a>, Download : <?=$file_download2?></font><br><?=$upload_image2?><?=$hide_download2_end?>
영진, 대류//
그것의 대처 방안이
다운로드 링크가 걸리는 곳을 파일 이름을 나오지 않게
획일적으로 '다운로드'라는 이름으로 바꿔 버리는 겁니다.
예를 들어 보통은 "$[파일네임변수] ( down : $[다운로드횟수변수] )"
뭐 이런 식의 글자에 하이퍼 링크가 걸려 있는데요.
여기서 filename 변수를 지워버리고 '다운로드 ( down : $[다운로드횟수변수] )"
이렇게 고쳐버린다는 거지요.
그리고 덤으로
파일 업로드시 무조건 적으로 파일네임을 랜덤하게 변하게 해주는 소스를 걸어준다면
경로 다운은 할 수 없습니다.
그것의 대처 방안이
다운로드 링크가 걸리는 곳을 파일 이름을 나오지 않게
획일적으로 '다운로드'라는 이름으로 바꿔 버리는 겁니다.
예를 들어 보통은 "$[파일네임변수] ( down : $[다운로드횟수변수] )"
뭐 이런 식의 글자에 하이퍼 링크가 걸려 있는데요.
여기서 filename 변수를 지워버리고 '다운로드 ( down : $[다운로드횟수변수] )"
이렇게 고쳐버린다는 거지요.
그리고 덤으로
파일 업로드시 무조건 적으로 파일네임을 랜덤하게 변하게 해주는 소스를 걸어준다면
경로 다운은 할 수 없습니다.
파일 이름을 안 보이게 하는 것이 아니라
그냥 임시로 감추는 것 뿐인데...
꼭 파일 이름에 링크를 걸어야 되는 이유라도 있는 건가요?;;
영진님 말씀은
"게시판마다 다운로드 권한을 설정할수 있게 합니다.
다운로드권한이 없어도 파일이름은 출력되고 링크만 안됩니다.
글 작성자는 다운로드권한이 없어도 다운로드 가능합니다"
이 명제인데...
이걸
"게시판마다 다운로드 권한을 설정할수 있게 합니다.
다운로드권한이 없어도 다운로드 글씨만 출력되고 링크는 걸려있지 않습니다.
글 작성자는 다운로드권한이 없어도 다운로드 가능합니다."
이렇게 바꾸면
만사 오케이 아닌가요?
제가 어디 간과한 부분이 있는건지... 쩝;;
그냥 임시로 감추는 것 뿐인데...
꼭 파일 이름에 링크를 걸어야 되는 이유라도 있는 건가요?;;
영진님 말씀은
"게시판마다 다운로드 권한을 설정할수 있게 합니다.
다운로드권한이 없어도 파일이름은 출력되고 링크만 안됩니다.
글 작성자는 다운로드권한이 없어도 다운로드 가능합니다"
이 명제인데...
이걸
"게시판마다 다운로드 권한을 설정할수 있게 합니다.
다운로드권한이 없어도 다운로드 글씨만 출력되고 링크는 걸려있지 않습니다.
글 작성자는 다운로드권한이 없어도 다운로드 가능합니다."
이렇게 바꾸면
만사 오케이 아닌가요?
제가 어디 간과한 부분이 있는건지... 쩝;;
//데보라
필드에러가 나는 이유는 down.php이름으로 파일을 만들어 admin에 넣고,아니면 admin에서 작성하고..;
웹에서 절대경로 http://...down.php실행하면 필드가 자동으로 추가됩니다.
필드가 추가된것을 보려면 phpmyadmin..? 에서 _admin_table 에서 확인하시면 되요.
말씀 드렸듯이 위 에러는 'grant_download' 필드가 없어 생기는 에러에요.
필드가 생성되면 제로보드 관리자모드에서 권한설정을 변경해도 잘 작동되죠
필드에러가 나는 이유는 down.php이름으로 파일을 만들어 admin에 넣고,아니면 admin에서 작성하고..;
웹에서 절대경로 http://...down.php실행하면 필드가 자동으로 추가됩니다.
필드가 추가된것을 보려면 phpmyadmin..? 에서 _admin_table 에서 확인하시면 되요.
말씀 드렸듯이 위 에러는 'grant_download' 필드가 없어 생기는 에러에요.
필드가 생성되면 제로보드 관리자모드에서 권한설정을 변경해도 잘 작동되죠

다른 분들은 성공하셨나요?