자기가 올린 파일 다운로드 "값을 제대로 넘겨주세요." 에러... > 그누3질답

그누3질답

자기가 올린 파일 다운로드 "값을 제대로 넘겨주세요." 에러... 정보

자기가 올린 파일 다운로드 "값을 제대로 넘겨주세요." 에러...

본문

정말 아는 거 없이
홈페이지 만드느라... 고생 많이 하고 있습니다.

본인이 올린 파일을 다운로드하면
"값을 제대로 넘겨주세요." 에러가 납니다.
다른 사람이 올린 건 정상적으로 다운로드 되고요....

gbdownload.php의 다른 곳에서 링크 거는 것을 방지하기 위한 코드 때문이지 않을까 생각하는데....
gbdownload.php를 수정한 건 없습니다.

아래 소스도 혹시 첨부합니다.

----------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "NONE");

// 3.42
// 파일 다운로드에서 열기를 선택한 경우 파일을 열 수 없는 오류 발생 수정 (sjsjin 님께서 알려주셨습니다.)
header("pragma: no-cache");
header("expires: 0");
header("Cache-Control: cache, must-revalidate");
 
# 3.23
# 쿠키에 저장된 ID값과 넘어온 ID값을 비교하여 같지 않을 경우 오류 발생
# 다른곳에서 링크 거는것을 방지하기 위한 코드
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!$_SESSION[$ss_name])
    alert("값을 제대로 넘겨주세요.");

if ($member[mb_level] < $board[bo_download_level]) {
    $alert_msg = "다운로드 권한이 없습니다.";
    if ($member[mb_id]) {
        alert($alert_msg);
    } else {
        alert($alert_msg . "\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./?doc=bbs/mblogin.php&wr_id=$wr_id&$qstr&url=".urlencode("./?doc=bbs/gnuboard.php&bo_table=$bo_table&wr_id=$wr_id"));
    }
}

$subject = conv_subject($write[wr_subject], 255);
$html_title = "$group[gr_subject] > $board[bo_subject] > " . $subject . " > 다운로드";

$filepath = "./data/file/$bo_table/" . $write["wr_file".$index];
$filepath = addslashes($filepath);
$original = $write["wr_file".$index."_source"];

if ($write["wr_file{$index}"] && file_exists($filepath)) {
    if(eregi("msie", $_SERVER[HTTP_USER_AGENT]) && eregi("5\.5", $_SERVER[HTTP_USER_AGENT])) {
        header("content-type: doesn/matter");
        header("content-length: ".filesize("$filepath"));
        header("content-disposition: attachment; filename=$original");
        header("content-transfer-encoding: binary");
    } else {
        header("content-type: file/unknown");
        header("content-length: ".filesize("$filepath"));
        header("content-disposition: attachment; filename=$original");
        header("content-description: php generated data");
    }
    header("pragma: no-cache");
    header("expires: 0");

    if (is_file("$filepath")) {
        $fp = fopen("$filepath", "rb");
        // 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이...
        if (!fpassthru($fp)) {
            fclose($fp);
        }

        # 3.23
        $ss_name = "ss_down_{$bo_table}_{$wr_id}_{$index}";
        if (!$_SESSION[$ss_name]) {
            $sql = " update $write_table
                        set wr_file{$index}_download = wr_file{$index}_download + 1
                      where wr_id = '$wr_id' ";
            sql_query($sql);

            session_register($ss_name);
            $$ss_name = $_SESSION[$ss_name] = TRUE;
        }
    } else {
        alert("해당 파일이나 경로가 존재하지 않습니다.");
    }

} else {
    alert("파일을 찾을 수 없습니다.");
}
?>

댓글 전체

전체 9,564
그누3질답 내용 검색

회원로그인

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