리스트 페이지에서 다운로드 받기 "잘못된 접근입니다!"

리스트 페이지에서 다운로드 받기 "잘못된 접근입니다!"

QA

리스트 페이지에서 다운로드 받기 "잘못된 접근입니다!"

본문

만들다 말아서 코드 정리가 되어 있지 못합니다. 이해해 주세요.

 

그누보드5 스킨 중, 파일다운로드 스킨 제작해 주신 선생님

작품을 파일다운로드에 적용하게 되었습니다.

단순하게 다운로드 처리해도 되겠으나.. 욕심이 뭔지요. ㅜㅜ

이분 다운로드 스킨에 담긴 코드가 너무 좋아요 ㅡㅡ/ 너무 화려 ^^

여러모로 쓸모가 많을 것 같아 플레이어스킨을 만들면서 앉히게 합니다!

다운로드 권한을 주었을 때 발생하는 문제입니다. 권한지정 안 하면 정상!

 

문제를 일으키는 영역은

 

<?php // 파일다운로드
        ?>
     $result = sql_query($sql);
     while ($row = sql_fetch_array($result))
     {
      $down_link = "download.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&no={$row[bf_no]}";
      $file_source = addslashes($row[bf_source]);
      $file_type = preg_replace('/^.*\.([^.]+)$/D', '$1', $file_source);
      //$file_size = get_filesize($row[bf_filesize]);
      if(!in_array($file_type, array('jpg', 'jpeg', 'gif', 'bmp', 'png'))){ //이미지는 제외
       echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
       //echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
       //echo "<img src='". $board_skin_url ."/filetype/". $file_type .".gif' border=0 align='absmiddle' alt=\"".$file_source."\">({$file_size})";
       //echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
       echo "<img src='". $board_skin_url ."/filetype/". $file_type .".gif' border=0 align='absmiddle' alt=\"\">";
       echo "</a> ";
      }
     }
        ?>​

 

이 부분인데요.

 

다른 스킨들을 다운로드 받아 참고도 하고 변경해 보았으나

원하는 답을 얻지는 못했습니다!!

 

만들 당시에는 우선 가동이 목적이라서..

 

bbs/download.php 파일 상단에 있는

 

// 쿠키에 저장된 ID값과 넘어온 ID값을 비교하여 같지 않을 경우 오류 발생
//    alert('잘못된 접근입니다.');
//if (!get_session('ss_view_'.$bo_table.'_'.$wr_id))
//    alert('잘못된 접근입니다.');​

 

이렇게 주석처리를 하고 사용할 수 있었습니다.

이렇게 써도 되는지도 궁금하고요.

 

바르게 처리하려면 어떤 형태를 띄어야 할지 문의 드려요!

코어는 안 건드리고 싶어서요. ㅜㅜ

 

 

981623e8a4e682317a117797d44b4e68_1433113275_6487.jpg 

 

.........................

 

다른 부분들은 오작동 없이 잘 되는데요.

위에 문의 드린 부분은 자신이 없네요. ㅜㅜ

 

파일 다운로드 권한을 지정하면..

 

981623e8a4e682317a117797d44b4e68_1433113376_285.jpg 

 

잘못된 접근입니다. 라고 메시지가 뜨세요.

그래서 우선은 코어를 건드리게 됩니다. 급하게 적용하고자 ㅡㅡ/

바르게 처리하는 방법! 아시잖아요?

개념만 잡아 주세요!

 

코드값 전체 안 주셔도 되세요!

뭔가 아예 몰라서 접근치 못하는 경우입니다.

힌트만 주십시오!


고맙습니다! 행복하신 한 주 되십시오!


PS.

급하지 않습니다!

만들던 것이라서 마무리 하고 싶어서요. 

성의 껏 만들어 공개스킨으로 등록하려합니다!

시간 되실 때 귀한 말씀 한 말씀만 주십시오!

 

 

........................ 목록페이지 전체코드 시작

 

<?php


$colspan = 5;

if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>

<h2 id="container_title"><?php echo $board['bo_subject'] ?><span class="sound_only"> 목록</span></h2>
<!-- 게시판 목록 시작 { -->
<div id="bo_list" style="width:<?php echo $width; ?>">

    <!-- 게시판 카테고리 시작 { -->
    <?php if ($is_category) { ?>
    <nav id="bo_cate">
        <h2><?php echo $board['bo_subject'] ?> 카테고리</h2>
        <ul id="bo_cate_ul">
            <?php echo $category_option ?>
        </ul>
    </nav>
    <?php } ?>
    <!-- } 게시판 카테고리 끝 -->

    <!-- 게시판 페이지 정보 및 버튼 시작 { -->
    <div class="bo_fx">
        <div id="bo_list_total">
            <span>Total <?php echo number_format($total_count) ?>건</span>
            <?php echo $page ?> 페이지
        </div>

        <?php if ($rss_href || $write_href) { ?>
        <ul class="btn_bo_user">
            <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01">RSS</a></li><?php } ?>
            <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin">관리자</a></li><?php } ?>
            <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02">글쓰기</a></li><?php } ?>
        </ul>
        <?php } ?>
    </div>
    <!-- } 게시판 페이지 정보 및 버튼 끝 -->

    <form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="sw" value="">

    <div class="tbl_head01 tbl_wrap">
        <table>
        <caption><?php echo $board['bo_subject'] ?> 목록</caption>
        <thead>
        <tr>
            <th scope="col"><span>번호</span></th>
            <?php if ($is_checkbox) { ?>
            <th scope="col">
                <label for="chkall" class="sound_only">현재 페이지 게시물 전체</label>
                <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);">
            </th>
            <?php } ?>
            <th scope="col">제목</th>
            <th scope="col">듣기</th>
            <th scope="col">가사</th>
            <th scope="col">다운</th>
            <th scope="col">작성자</th>
            <th scope="col"><?php echo subject_sort_link('wr_datetime', $qstr2, 1) ?>작성일</a></th>
            <th scope="col"><?php echo subject_sort_link('wr_hit', $qstr2, 1) ?>조회</a></th>
            <?php if ($is_good) { ?><th scope="col"><?php echo subject_sort_link('wr_good', $qstr2, 1) ?>추천</a></th><?php } ?>
            <?php if ($is_nogood) { ?><th scope="col"><?php echo subject_sort_link('wr_nogood', $qstr2, 1) ?>비추천</a></th><?php } ?>
        </tr>
        </thead>
        <tbody class="bo_tr">
        <?php
        for ($i=0; $i<count($list); $i++) {
         ?>
        <tr class="<?php if ($list[$i]['is_notice']) echo "bo_notice"; ?>">
            <td class="td_num">
            <?php
            if ($list[$i]['is_notice']) // 공지사항
                echo '<img src="'.$board_skin_url.'/img/icon_notice.gif" alt="공지">';
            else if ($wr_id == $list[$i]['wr_id'])
                echo "<span class=\"bo_current\">열람중</span>";
            else
                echo $list[$i]['num'];
             ?>
            </td>
            <?php if ($is_checkbox) { ?>
            <td class="td_chk">
                <label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject'] ?></label>
                <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
            </td>
            <?php } ?>
            <td class="td_subject">
                <?php
                echo $list[$i]['icon_reply'];
                if ($is_category && $list[$i]['ca_name']) {
                 ?>
                <a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>
                <?php } ?>

                <a href="<?php echo $list[$i]['href'] ?>">
                    <?php echo $list[$i]['subject'] ?>
                    <?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><?php echo $list[$i]['comment_cnt']; ?><span class="sound_only">개</span><?php } ?>
                </a>

                <?php
                // if ($list[$i]['link']['count']) { echo '['.$list[$i]['link']['count']}.']'; }
                // if ($list[$i]['file']['count']) { echo '<'.$list[$i]['file']['count'].'>'; }

                if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new'];
                if (isset($list[$i]['icon_hot'])) echo $list[$i]['icon_hot'];
                //if (isset($list[$i]['icon_file'])) echo $list[$i]['icon_file'];
                if (isset($list[$i]['icon_link'])) echo $list[$i]['icon_link'];
                if (isset($list[$i]['icon_secret'])) echo $list[$i]['icon_secret'];

                 ?>
            </td>
            <td class="td_icon">
   <?  // 듣기버튼
            echo "<a href='javascript:window.open(\"board2.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]};\",\"win\",\"width=420px, height=100px\");void(0);'>
            <img src='{$board_skin_url}/img/icon_audio.gif' align='absmiddle' border='0' title='듣기' >";
            ?>
            </td>
            <td class="td_icon">
            <?php // 가사보기
   if($list[$i]['wr_content']){
   $wr_id_no = $list[$i]["wr_id"];
   echo "<a href=\"javascript:window.open('".$board_skin_url."/lyrics.php?bo_table=".$bo_table."&wr_id=".$wr_id_no.";','v','width=350,height=500,menubar=no,scrolling=auto,marginwidth=10,marginheight=10');void(0);\"><img src=\"".$board_skin_url."/img/icon_lyrics.gif\"></a>";
   }      
   ?>
            </td>
            <td class="td_icon">
   <?php // 파일다운로드
     $sql = " select * from $g5[board_file_table] where bo_table = '". $bo_table. "' and wr_id = '". $list[$i][wr_id] ."' order by bf_no ";
     $result = sql_query($sql);
     while ($row = sql_fetch_array($result))
     {
      $down_link = "download.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&no={$row[bf_no]}";
      $file_source = addslashes($row[bf_source]);
      $file_type = preg_replace('/^.*\.([^.]+)$/D', '$1', $file_source);
      //$file_size = get_filesize($row[bf_filesize]);
      if(!in_array($file_type, array('jpg', 'jpeg', 'gif', 'bmp', 'png'))){ //이미지는 제외
       echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
       //echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
       //echo "<img src='". $board_skin_url ."/filetype/". $file_type .".gif' border=0 align='absmiddle' alt=\"".$file_source."\">({$file_size})";
       //echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
       echo "<img src='". $board_skin_url ."/filetype/". $file_type .".gif' border=0 align='absmiddle' alt=\"\">";
       echo "</a> ";
      }
     }
        ?>
                     <?php
       if($list[$i]["wr_link1"]){
       
       $music_sir = $list[$i]["wr_link1"];
        
       }elseif($list[$i][file][1][file]){
        $music_sir = "../data/file/".$bo_table."/".$list[$i][file][1][file];
        }
      ?>
                    <?php // echo'<br><audio src="'.$music_sir.'" preload="auto"></audio>';?>
            </td>
           
            <td class="td_name sv_use"><?php echo $list[$i]['name'] ?></td>
            <td class="td_date"><?php echo $list[$i]['datetime'] ?></td>
            <td class="td_num"><?php echo $list[$i]['wr_hit'] ?></td>
            <?php if ($is_good) { ?><td class="td_num"><?php echo $list[$i]['wr_good'] ?></td><?php } ?>
            <?php if ($is_nogood) { ?><td class="td_num"><?php echo $list[$i]['wr_nogood'] ?></td><?php } ?>
        </tr>
        <?php } ?>
        <?php if (count($list) == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
        </tbody>
        </table>
    </div>

    <?php if ($list_href || $is_checkbox || $write_href) { ?>
    <div class="bo_fx">
        <?php if ($is_checkbox) { ?>
        <ul class="btn_bo_adm">
            <li><input type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"></li>
            <li><input type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"></li>
            <li><input type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"></li>
        </ul>
        <?php } ?>

        <?php if ($list_href || $write_href) { ?>
        <ul class="btn_bo_user">
            <?php if ($list_href) { ?><li><a href="<?php echo $list_href ?>" class="btn_b01">목록</a></li><?php } ?>
            <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02">글쓰기</a></li><?php } ?>
        </ul>
        <?php } ?>
    </div>
    <?php } ?>
    </form>
</div>

<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>

<!-- 페이지 -->
<?php echo $write_pages;  ?>

<!-- 게시판 검색 시작 { -->
<fieldset id="bo_sch">
    <legend>게시물 검색</legend>

    <form name="fsearch" method="get" class="board_search">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sop" value="and">
    <label for="sfl" class="sound_only">검색대상</label>
    <select name="sfl" id="sfl">
        <option value="wr_subject"<?php echo get_selected($sfl, 'wr_subject', true); ?>>제목</option>
        <option value="wr_subject||wr_content"<?php echo get_selected($sfl, 'wr_subject||wr_content'); ?>>제목+내용</option>
        <option value="mb_id,1"<?php echo get_selected($sfl, 'mb_id,1'); ?>>회원아이디</option>
        <option value="mb_id,0"<?php echo get_selected($sfl, 'mb_id,0'); ?>>회원아이디(코)</option>
        <option value="wr_name,1"<?php echo get_selected($sfl, 'wr_name,1'); ?>>글쓴이</option>
        <option value="wr_name,0"<?php echo get_selected($sfl, 'wr_name,0'); ?>>글쓴이(코)</option>
    </select>
    <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
    <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="frm_input required" size="15" maxlength="20">
    <input type="submit" value="검색" class="btn_submit">
    </form>
</fieldset>
<!-- } 게시판 검색 끝 -->

<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
    var f = document.fboardlist;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]")
            f.elements[i].checked = sw;
    }
}

function fboardlist_submit(f) {
    var chk_count = 0;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
            chk_count++;
    }

    if (!chk_count) {
        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }

    if(document.pressed == "선택복사") {
        select_copy("copy");
        return;
    }

    if(document.pressed == "선택이동") {
        select_copy("move");
        return;
    }

    if(document.pressed == "선택삭제") {
        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
            return false;

        f.removeAttribute("target");
        f.action = "./board_list_update.php";
    }

    return true;
}

// 선택한 게시물 복사 및 이동
function select_copy(sw) {
    var f = document.fboardlist;

    if (sw == "copy")
        str = "복사";
    else
        str = "이동";

    var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");

    f.sw.value = sw;
    f.target = "move";
    f.action = "./move.php";
    f.submit();
}
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->

 

 

........................ 목록페이지 전체코드 끝 

이 질문에 댓글 쓰기 :

답변 2

일단 코드를 다 보진 않았지만 일단 눈에 들어오는건

<?php // 파일다운로드

        ?>

     $result = sql_query($sql); 

 

이거 여기서 ?> 상단에 php구문을 닫아 버리셨는데 원 소스인건가요?

문제를 일으킨 영역 표현이 잘못되어 있습니다.

.................................

<?php // 파일다운로드
$sql = " select * from $g5[board_file_table] where bo_table = '". $bo_table. "' and wr_id = '". $list[$i][wr_id] ."' order by bf_no ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
$down_link = "download.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&no={$row[bf_no]}";
$file_source = addslashes($row[bf_source]);
$file_type = preg_replace('/^.*\.([^.]+)$/D', '$1', $file_source);
//$file_size = get_filesize($row[bf_filesize]);
if(!in_array($file_type, array('jpg', 'jpeg', 'gif', 'bmp', 'png'))){ //이미지는 제외
echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
//echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
//echo "<img src='". $board_skin_url ."/filetype/". $file_type .".gif' border=0 align='absmiddle' alt=\"".$file_source."\">({$file_size})";
//echo "<a href=\"".$down_link."\" title=\"".$file_source."\">";
echo "<img src='". $board_skin_url ."/filetype/". $file_type .".gif' border=0 align='absmiddle' alt=\"\">";
echo "</a>&nbsp;";
}
}
    ?>
........................

이렇게 처리하여 앉혀 놓은 상태입니다!.
다른 플레이어 스킨도 같이 열어놓고 있다가 실수한 것 같아요. 죄송합니다!

내용페이지에 등록된 문제를 일으키는 영역은 이 댓글 내용이 맞습니다.
고맙습니다!

답변을 작성하시기 전에 로그인 해주세요.
전체 148
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT