[질문] GD_gallery 스킨 사용하시는 분중 뷰 페이지 에러 정보
[질문] GD_gallery 스킨 사용하시는 분중 뷰 페이지 에러본문
어제 그누4설치하고, gd_gallery 스킨을 받아서 설치했습니다.
나름대로 스킨을 좀 수정하고, 이미지를 올려 확인을 했는데,
뷰 페이지에서 원본이미지 사이즈 그대로 나오면서 이미지 이후로
html 코드가 출력이 안됩니다.
view.skin.php에서 110번째(?)줄에 아래 코드를 주석처리하니
$exif = @exif_read_data("$view[file][$i][path]/$view[file][$i][file]");
이미지만 출력이 안되고 나머지는 모두 제대로 출력이 되는 거 같네요..
초보라 뭐가 문제인지 모르겠습니다.
서버는 개인서버로 win2003, php5.04, mysql4.1.7, gd2.1.9 입니다.
GD는 따로 설치한 적은 없고, php.ini의 extention부에서 주석처리를 풀었습니다.
참고로 원본 스킨(gd_gallery)에서도 같은 현상이 일어납니다.
답변 부탁드립니다.
아래 소스 입니다.
수정하고 디버깅해보느라 원본이랑 좀 틀린 부분도 있습니다.
-----------------------------------------------------------------------------------------------------------------
<!-- 스킨 css -->
<link rel="stylesheet" href="<?=$board_skin_path?>/style.css" type="text/css">
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<!-- 게시글 보기 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspcing="0"><tr><td>
<!-- 링크 버튼 -->
<?
ob_start();
?>
<table width='100%' cellpadding=0 cellspacing=0>
<tr height=35>
<td width=75%>
<? if ($search_href) { echo "<a href=\"$search_href\"><img src='$board_skin_path/img/btn_search_list.gif' border='0' align='absmiddle'></a> "; } ?>
<? echo "<a href=\"$list_href\"><img src='$board_skin_path/img/btn_list.gif' border='0' align='absmiddle'></a> "; ?>
<? if ($write_href) { echo "<a href=\"$write_href\"><img src='$board_skin_path/img/btn_write.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($reply_href) { echo "<a href=\"$reply_href\"><img src='$board_skin_path/img/btn_reply.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($update_href) { echo "<a href=\"$update_href\"><img src='$board_skin_path/img/btn_update.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($delete_href) { echo "<a href=\"$delete_href\"><img src='$board_skin_path/img/btn_delete.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($good_href) { echo "<a href=\"$good_href\" target='hiddenframe'><img src='$board_skin_path/img/btn_good.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($nogood_href) { echo "<a href=\"$nogood_href\" target='hiddenframe'><img src='$board_skin_path/img/btn_nogood.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($scrap_href) { echo "<a href=\"javascript:;\" onclick=\"win_scrap('./scrap_popin.php?bo_table=$bo_table&wr_id=$wr_id');\"><img src='$board_skin_path/img/btn_scrap.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($copy_href) { echo "<a href=\"$copy_href\"><img src='$board_skin_path/img/btn_copy.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($move_href) { echo "<a href=\"$move_href\"><img src='$board_skin_path/img/btn_move.gif' border='0' align='absmiddle'></a> "; } ?>
</td>
<td width=25% align=right>
<? if ($prev_href) { echo "<a href=\"$prev_href\" title=\"$prev_wr_subject\"><img src='$board_skin_path/img/btn_prev.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($next_href) { echo "<a href=\"$next_href\" title=\"$next_wr_subject\"><img src='$board_skin_path/img/btn_next.gif' border='0' align='absmiddle'></a> "; } ?>
</td>
</tr>
</table>
<?
$link_buttons = ob_get_contents();
ob_end_flush();
?>
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td height=2 bgcolor=#B0ADF5></td></tr>
<tr><td height=30 bgcolor=#F8F8F9 style="padding:5 0 5 0;"> <strong><? if ($is_category) { echo ($category_name ? "[$view[ca_name]] " : ""); } ?><?=$view[subject]?></strong></td></tr>
<tr><td height=30> <font color=#7A8FDB>글쓴이</font> : <?=$view[name]?><? if ($is_ip_view) { echo " ($ip)"; } ?>
<font color=#7A8FDB>날짜</font> : <?=substr($view[wr_datetime],2,14)?>
<font color=#7A8FDB>조회</font> : <?=$view[wr_hit]?>
<? if ($is_good) { ?><font color=#7A8FDB>추천</font> : <?=$view[wr_good]?> <?}?>
<? if ($is_nogood) { ?><font color=#7A8FDB>비추천</font> : <?=$view[wr_nogood]?> <?}?></td></tr>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
<? if ($trackback_url) { ?>
<tr><td height=30> 트랙백 주소 : <a href="javascript:clipboard_trackback('<?=$trackback_url?>');" style="letter-spacing:0;" title='이 글을 소개할 때는 이 주소를 사용하세요'><?=$trackback_url?></a>
<script language="JavaScript">
function clipboard_trackback(str)
{
if (g4_is_gecko)
prompt("이 글의 고유주소입니다. Ctrl+C를 눌러 복사하세요.", str);
else if (g4_is_ie) {
window.clipboardData.setData("Text", str);
alert("트랙백 주소가 복사되었습니다.\n\n<?=$trackback_url?>");
}
}
</script></td></tr>
<?}?>
<?
// 가변 파일
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++)
{
if ($view[file][$i][source] && !$view[file][$i][view])
//if ($view[file][$i][source])
{
$cnt++;
echo "<tr><td height=22> <img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href='{$view[file][$i][href]}' title='{$view[file][$i][content]}'><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
}
}
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
if ($view[link][$i])
{
$cnt++;
$link = cut_str($view[link][$i], 70);
echo "<tr><td height=22> <img src='{$board_skin_path}/img/icon_link.gif' align=absmiddle> <a href='{$view[link_href][$i]}' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
}
}
?>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
<tr>
<td height="150" style='word-break:break-all; padding:10px;' bgcolor=#F8F8F9>
<!-- <font color=#ff8800><b>목록에서 작은 이미지로 확인하신 후 ↑ 위의 파일을 다운로드 받아서 사용하세요.</b></font>
<br><br> -->
<?
// 파일 출력
for ($i=0; $i<=count($view[file]); $i++)
{
if ($view[file][$i][view])
{
echo "*<!--".$view[file][$i][view]."-->*";
echo "<p>" ;
echo "##";
//$exif = @exif_read_data("$view[file][$i][path]/$view[file][$i][file]");
echo "##";
if (isset($exif[Make]) || isset($exif[Model])) echo "카메라모델 : $exif[Make] - $exif[Model]<br>";
if (isset($exif[DateTimeOriginal])) echo "촬영일시 : $exif[DateTimeOriginal]<br>";
if (isset($exif[COMPUTED][Width]) || isset($exif[COMPUTED][Height])) echo "이미지크기 : {$exif[COMPUTED][Width]} x {$exif[COMPUTED][Height]} 픽셀<br>";
if (isset($exif[COMPUTED][ApertureFNumber])) echo "조리개 : {$exif[COMPUTED][ApertureFNumber]}<br>";
if (isset($exif[ISOSpeedRatings])) echo "ISO : $exif[ISOSpeedRatings]<br>";
if (isset($exif[WhiteBalance])) echo "화이트밸런스 : {$exif[WhiteBalance]}<br>";
if (isset($exif[ExposureTime])) echo "노출시간 : $exif[ExposureTime] 초<br>";
if (isset($exif[ExposureBiasValue])) echo "노출보정 : $exif[ExposureBiasValue]<br>";
if (isset($exif[COMPUTED][CCDWidth])) echo "CCD : {$exif[COMPUTED][CCDWidth]}<br>";
if (isset($exif[Flash])) echo "플래쉬 : {$exif[Flash]}<br>";
echo "<p>" ;
//print_r2($exif);
}
}
?>
<span class="ct lh"><?=$view[content];?></span>
<?//echo $view[rich_content]; // 과 같은 코드를 사용할 경우?>
<!-- 테러 태그 방지용 --></xml></xmp><a href=""></a><a href=''></a>
<? if ($is_signature) { echo "<br>$signature<br><br>"; } // 서명 출력 ?></td>
</tr>
</table><br>
<?
include_once("./view_comment.php");
?>
<?=$link_buttons?>
</td></tr></table><br>
<script language="JavaScript">
// HTML 로 넘어온 <img ... > 태그의 폭이 테이블폭보다 크다면 테이블폭을 적용한다.
function resize_image()
{
var target = document.getElementsByName('target_resize_image[]');
var image_width = parseInt('<?=$board[bo_image_width]?>');
var image_height = 0;
for(i=0; i<target.length; i++) {
// 원래 사이즈를 저장해 놓는다
target[i].tmp_width = target[i].width;
target[i].tmp_height = target[i].height;
// 이미지 폭이 테이블 폭보다 크다면 테이블폭에 맞춘다
if(target[i].width > image_width) {
image_height = parseFloat(target[i].width / target[i].height)
target[i].width = image_width;
target[i].height = parseInt(image_width / image_height);
}
}
}
window.onload = resize_image;
</script>
<!-- 게시글 보기 끝 -->
나름대로 스킨을 좀 수정하고, 이미지를 올려 확인을 했는데,
뷰 페이지에서 원본이미지 사이즈 그대로 나오면서 이미지 이후로
html 코드가 출력이 안됩니다.
view.skin.php에서 110번째(?)줄에 아래 코드를 주석처리하니
$exif = @exif_read_data("$view[file][$i][path]/$view[file][$i][file]");
이미지만 출력이 안되고 나머지는 모두 제대로 출력이 되는 거 같네요..
초보라 뭐가 문제인지 모르겠습니다.
서버는 개인서버로 win2003, php5.04, mysql4.1.7, gd2.1.9 입니다.
GD는 따로 설치한 적은 없고, php.ini의 extention부에서 주석처리를 풀었습니다.
참고로 원본 스킨(gd_gallery)에서도 같은 현상이 일어납니다.
답변 부탁드립니다.
아래 소스 입니다.
수정하고 디버깅해보느라 원본이랑 좀 틀린 부분도 있습니다.
-----------------------------------------------------------------------------------------------------------------
<!-- 스킨 css -->
<link rel="stylesheet" href="<?=$board_skin_path?>/style.css" type="text/css">
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<!-- 게시글 보기 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspcing="0"><tr><td>
<!-- 링크 버튼 -->
<?
ob_start();
?>
<table width='100%' cellpadding=0 cellspacing=0>
<tr height=35>
<td width=75%>
<? if ($search_href) { echo "<a href=\"$search_href\"><img src='$board_skin_path/img/btn_search_list.gif' border='0' align='absmiddle'></a> "; } ?>
<? echo "<a href=\"$list_href\"><img src='$board_skin_path/img/btn_list.gif' border='0' align='absmiddle'></a> "; ?>
<? if ($write_href) { echo "<a href=\"$write_href\"><img src='$board_skin_path/img/btn_write.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($reply_href) { echo "<a href=\"$reply_href\"><img src='$board_skin_path/img/btn_reply.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($update_href) { echo "<a href=\"$update_href\"><img src='$board_skin_path/img/btn_update.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($delete_href) { echo "<a href=\"$delete_href\"><img src='$board_skin_path/img/btn_delete.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($good_href) { echo "<a href=\"$good_href\" target='hiddenframe'><img src='$board_skin_path/img/btn_good.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($nogood_href) { echo "<a href=\"$nogood_href\" target='hiddenframe'><img src='$board_skin_path/img/btn_nogood.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($scrap_href) { echo "<a href=\"javascript:;\" onclick=\"win_scrap('./scrap_popin.php?bo_table=$bo_table&wr_id=$wr_id');\"><img src='$board_skin_path/img/btn_scrap.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($copy_href) { echo "<a href=\"$copy_href\"><img src='$board_skin_path/img/btn_copy.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($move_href) { echo "<a href=\"$move_href\"><img src='$board_skin_path/img/btn_move.gif' border='0' align='absmiddle'></a> "; } ?>
</td>
<td width=25% align=right>
<? if ($prev_href) { echo "<a href=\"$prev_href\" title=\"$prev_wr_subject\"><img src='$board_skin_path/img/btn_prev.gif' border='0' align='absmiddle'></a> "; } ?>
<? if ($next_href) { echo "<a href=\"$next_href\" title=\"$next_wr_subject\"><img src='$board_skin_path/img/btn_next.gif' border='0' align='absmiddle'></a> "; } ?>
</td>
</tr>
</table>
<?
$link_buttons = ob_get_contents();
ob_end_flush();
?>
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td height=2 bgcolor=#B0ADF5></td></tr>
<tr><td height=30 bgcolor=#F8F8F9 style="padding:5 0 5 0;"> <strong><? if ($is_category) { echo ($category_name ? "[$view[ca_name]] " : ""); } ?><?=$view[subject]?></strong></td></tr>
<tr><td height=30> <font color=#7A8FDB>글쓴이</font> : <?=$view[name]?><? if ($is_ip_view) { echo " ($ip)"; } ?>
<font color=#7A8FDB>날짜</font> : <?=substr($view[wr_datetime],2,14)?>
<font color=#7A8FDB>조회</font> : <?=$view[wr_hit]?>
<? if ($is_good) { ?><font color=#7A8FDB>추천</font> : <?=$view[wr_good]?> <?}?>
<? if ($is_nogood) { ?><font color=#7A8FDB>비추천</font> : <?=$view[wr_nogood]?> <?}?></td></tr>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
<? if ($trackback_url) { ?>
<tr><td height=30> 트랙백 주소 : <a href="javascript:clipboard_trackback('<?=$trackback_url?>');" style="letter-spacing:0;" title='이 글을 소개할 때는 이 주소를 사용하세요'><?=$trackback_url?></a>
<script language="JavaScript">
function clipboard_trackback(str)
{
if (g4_is_gecko)
prompt("이 글의 고유주소입니다. Ctrl+C를 눌러 복사하세요.", str);
else if (g4_is_ie) {
window.clipboardData.setData("Text", str);
alert("트랙백 주소가 복사되었습니다.\n\n<?=$trackback_url?>");
}
}
</script></td></tr>
<?}?>
<?
// 가변 파일
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++)
{
if ($view[file][$i][source] && !$view[file][$i][view])
//if ($view[file][$i][source])
{
$cnt++;
echo "<tr><td height=22> <img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href='{$view[file][$i][href]}' title='{$view[file][$i][content]}'><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
}
}
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
if ($view[link][$i])
{
$cnt++;
$link = cut_str($view[link][$i], 70);
echo "<tr><td height=22> <img src='{$board_skin_path}/img/icon_link.gif' align=absmiddle> <a href='{$view[link_href][$i]}' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
}
}
?>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
<tr>
<td height="150" style='word-break:break-all; padding:10px;' bgcolor=#F8F8F9>
<!-- <font color=#ff8800><b>목록에서 작은 이미지로 확인하신 후 ↑ 위의 파일을 다운로드 받아서 사용하세요.</b></font>
<br><br> -->
<?
// 파일 출력
for ($i=0; $i<=count($view[file]); $i++)
{
if ($view[file][$i][view])
{
echo "*<!--".$view[file][$i][view]."-->*";
echo "<p>" ;
echo "##";
//$exif = @exif_read_data("$view[file][$i][path]/$view[file][$i][file]");
echo "##";
if (isset($exif[Make]) || isset($exif[Model])) echo "카메라모델 : $exif[Make] - $exif[Model]<br>";
if (isset($exif[DateTimeOriginal])) echo "촬영일시 : $exif[DateTimeOriginal]<br>";
if (isset($exif[COMPUTED][Width]) || isset($exif[COMPUTED][Height])) echo "이미지크기 : {$exif[COMPUTED][Width]} x {$exif[COMPUTED][Height]} 픽셀<br>";
if (isset($exif[COMPUTED][ApertureFNumber])) echo "조리개 : {$exif[COMPUTED][ApertureFNumber]}<br>";
if (isset($exif[ISOSpeedRatings])) echo "ISO : $exif[ISOSpeedRatings]<br>";
if (isset($exif[WhiteBalance])) echo "화이트밸런스 : {$exif[WhiteBalance]}<br>";
if (isset($exif[ExposureTime])) echo "노출시간 : $exif[ExposureTime] 초<br>";
if (isset($exif[ExposureBiasValue])) echo "노출보정 : $exif[ExposureBiasValue]<br>";
if (isset($exif[COMPUTED][CCDWidth])) echo "CCD : {$exif[COMPUTED][CCDWidth]}<br>";
if (isset($exif[Flash])) echo "플래쉬 : {$exif[Flash]}<br>";
echo "<p>" ;
//print_r2($exif);
}
}
?>
<span class="ct lh"><?=$view[content];?></span>
<?//echo $view[rich_content]; // 과 같은 코드를 사용할 경우?>
<!-- 테러 태그 방지용 --></xml></xmp><a href=""></a><a href=''></a>
<? if ($is_signature) { echo "<br>$signature<br><br>"; } // 서명 출력 ?></td>
</tr>
</table><br>
<?
include_once("./view_comment.php");
?>
<?=$link_buttons?>
</td></tr></table><br>
<script language="JavaScript">
// HTML 로 넘어온 <img ... > 태그의 폭이 테이블폭보다 크다면 테이블폭을 적용한다.
function resize_image()
{
var target = document.getElementsByName('target_resize_image[]');
var image_width = parseInt('<?=$board[bo_image_width]?>');
var image_height = 0;
for(i=0; i<target.length; i++) {
// 원래 사이즈를 저장해 놓는다
target[i].tmp_width = target[i].width;
target[i].tmp_height = target[i].height;
// 이미지 폭이 테이블 폭보다 크다면 테이블폭에 맞춘다
if(target[i].width > image_width) {
image_height = parseFloat(target[i].width / target[i].height)
target[i].width = image_width;
target[i].height = parseInt(image_width / image_height);
}
}
}
window.onload = resize_image;
</script>
<!-- 게시글 보기 끝 -->
댓글 전체
php.ini의 extention부가 주석처리 된것으로 봐서 GD Library가 설치 되지 않은 듯 합니다.