자기가 올린 파일 다운로드 "값을 제대로 넘겨주세요." 에러... 정보
자기가 올린 파일 다운로드 "값을 제대로 넘겨주세요." 에러...본문
정말 아는 거 없이
홈페이지 만드느라... 고생 많이 하고 있습니다.
본인이 올린 파일을 다운로드하면
"값을 제대로 넘겨주세요." 에러가 납니다.
다른 사람이 올린 건 정상적으로 다운로드 되고요....
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("파일을 찾을 수 없습니다.");
}
?>
홈페이지 만드느라... 고생 많이 하고 있습니다.
본인이 올린 파일을 다운로드하면
"값을 제대로 넘겨주세요." 에러가 납니다.
다른 사람이 올린 건 정상적으로 다운로드 되고요....
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("파일을 찾을 수 없습니다.");
}
?>
댓글 전체
아시는 분의 답변 꼭 부탁드립니다.