나라오름님 스킨중,,
스킨을적용하면 너무나도 이뿌고 잘되는데,,
겔러리에서 이미지를샆입하지안은 글이 올라오면,
Warning: getimagesize(): Read error! in /home/hosting_users/gd24/www/main/club/skin/board/default1/skin.lib.php on line 5
위와같은오류가 남니다,,
겔러리니 뭐 사진안넣는경우가 별루없지만 그래도 , 글만적는경우도 가끔있는지라,
고수님들 살펴봐주시고
초보를위한 구체적인 답변 부탁드림니다,,
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 24개
위 링크는 7쟁이님의 "[게시판] 클럽용 게시판" 인데....
이미지가 없을 경우 썸네일생성 루틴을 통과하도록 수정해야 할것 같습니다
제가 완전히 초보라,,
어떻게 해야하는지 구채적으로 조금설명해주시면안될까요!!
너무 죄송함니다,,
현재 에러가 나오고있는 스킨에 포함된 skin.lib.php 의 소스를 봐야 할것 같은데요.
예상은 글 등록시 이미지 등록이 없는 상태에서 GD처리용 함수가 실행이 되면서
에러를 뿌리는것 같습니다.
//if (!file_exists($thumb)) // || ($img_max != $tsize[0] && $img_max != $tsize[1]))
// 위 라인 주석처리하고 아래의 라인을 추가
if (file_exists($thumb))
다음 처럼 수정해보세요.
수정전 :
if (!file_exists($thumb) || ($img_max != $tsize[0] && $img_max != $tsize[1]))
{
$file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
==> $size = get_size($file, $img_max); // 이라인을 아래의 if(is_file($file)) 아래쪽으로 이동
==> $gwidth = $size[w] + 8; // 이라인을 아래의 if(is_file($file)) 아래쪽으로 이동
if (is_file($file))
{
if ($size[t] == 1)
$src = imagecreatefromgif($file);
else if ($size[t] == 2)
$src = imagecreatefromjpeg($file);
else if ($size[t] == 3)
수정후 :
if (!file_exists($thumb) || ($img_max != $tsize[0] && $img_max != $tsize[1]))
{
$file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
if (is_file($file))
{
$size = get_size($file, $img_max);
$gwidth = $size[w] + 8;
if ($size[t] == 1)
$src = imagecreatefromgif($file);
else if ($size[t] == 2)
$src = imagecreatefromjpeg($file);
else if ($size[t] == 3)
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 9;
if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>
<table cellpadding="0" cellspacing="0" width="<?=$width?>">
<tr>
<td width="10" height="10" background="<?=$cb_board_skin_path?>/img2/l_top.gif"></td>
<td width="" height="10" background="<?=$cb_board_skin_path?>/img2/cen_top.gif"></td>
<td width="11" height="10" background="<?=$cb_board_skin_path?>/img2/r_top.gif"></td>
</tr>
<tr>
<td width="10" height="" background="<?=$cb_board_skin_path?>/img2/l_cen.gif"></td>
<td width="" height="" align="center" style="padding:5px 5px 5px 5px;">
<!-- 게시판 목록 시작 -->
<table width="100%" align="center" cellpadding="0" cellspacing="0"><tr><td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr height="25">
<td width="50%"> <strong><?=($sca) ? "$sca" : "전체글보기"?></strong></td>
<td align="right">
게시물 <?=number_format($total_count)?>건
<a href='<?=$rss_href?>'><img src='<?=$cb_board_skin_path?>/img/btn_rss.gif' border=0 align=absmiddle></a>
<? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$cb_board_skin_path?>/img/admin_button.gif" title="관리자" border="0" align="absmiddle"></a><? } ?></td>
</tr>
<tr><td colspan="2"></td></tr>
</table>
<!-- 제목 -->
<table width="100%" cellspacing="0" cellpadding="0">
<form name="fboardlist" method="post">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="spt" value="<?=$spt?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="sw" value="">
<tr><td colspan=12 height=2 bgcolor=#DFC59C></td><td></td></tr>
<!-- 목록 -->
<? for ($i=0; $i<count($list); $i++) { ?>
<!-- <tr height="33" <? if ($list[$i][is_notice]) { echo "bgcolor='#F9FBFB'"; } else { echo " onmouseover=\"this.style.backgroundColor='#EEEEEE';return true;\" onMouseOut=\"this.style.backgroundColor='';return true;\""; }?>> -->
<tr><td colspan=12 height=2 bgcolor=#DFC59C></td><td></td></tr>
<tr height="33">
<td></td>
<td align="center">
<?
if ($list[$i][is_notice]) // 공지사항
echo "<img src=\"$cb_board_skin_path/img/notice_icon.gif\" width=30 height=16>";
else if ($wr_id == $list[$i][wr_id]) // 현재위치
echo "<font color='#2C8CB9'><strong>{$list[$i][num]}</strong>";
else
echo "{$list[$i][num]}";
?>
</td>
<? if ($is_category) { ?><td width="70" align="center"><a href="<?=$list[$i][ca_name_href]?>"><font color=gray><?=$list[$i][ca_name]?></font></a></td><? } ?>
<? if ($is_checkbox) { ?><td width="40" align="center"><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?>
<td style='word-break:break-all;'>
<?
echo $nobr_begin;
echo $list[$i][reply];
echo $list[$i][icon_reply];
echo "<a href='{$list[$i][href]}'>";
if ($list[$i][is_notice])
echo "<font color='#2C8CB9'><strong>{$list[$i][subject]}</strong></font>";
else
echo "{$list[$i][subject]}";
echo "</a>";
if ($list[$i][comment_cnt])
echo " <a href=\"{$list[$i][comment_href]}\"><span style='font-size:7pt;'>{$list[$i][comment_cnt]}</span></a>";
// if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
// if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }
echo " " . $list[$i][icon_new];
echo " " . $list[$i][icon_file];
echo " " . $list[$i][icon_link];
echo " " . $list[$i][icon_hot];
echo " " . $list[$i][icon_secret];
echo $nobr_end;
?></td>
<td align="center"><?=$list[$i][name]?></td>
<td align="center"><?=$list[$i][datetime2]?></td>
<td align="center"><?=$list[$i][wr_hit]?></td>
<? if ($is_good) { ?><td align="center"><?=$list[$i][wr_good]?></td><? } ?>
<? if ($is_nogood) { ?><td align="center"><?=$list[$i][wr_nogood]?></td><? } ?>
<td></td>
</tr>
<tr>
<td colspan="<?=$colspan?>" height="1" background="<?=$cb_board_skin_path?>/img/dot_bg.gif"></td>
<? } ?>
<? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
</form>
</table>
<!-- 페이지 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td height="37" align="center" background="<?=$cb_board_skin_path?>/img/number_line.gif">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="center">
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$cb_board_skin_path/img/btn_search_prev.gif' width=50 height=20 border=0 align=absmiddle title='이전검색'></a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("처음", "<img src='$cb_board_skin_path/img/begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$cb_board_skin_path/img/prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$cb_board_skin_path/img/next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$cb_board_skin_path/img/end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "<font style=\"font-family:돋움; font-size:9pt; color:#797979\">$1</font>", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<font style=\"font-family:돋움; font-size:9pt; color:orange;\">$1</font>", $write_pages);
?>
<strong><?=$write_pages?></strong>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$cb_board_skin_path/img/btn_search_next.gif' width=50 height=20 border=0 align=absmiddle title='다음검색'></a>"; } ?>
</td>
</tr>
</table></td>
</tr>
</table>
<!-- 버튼 링크 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" height="40">
<? if ($list_href) { ?><a href="<?=$list_href?>&sca=<?=$sca?>"><img src="<?=$cb_board_skin_path?>/img/btn_list.gif" border="0"></a><? } ?>
<? if ($write_href) { ?><a href="<?=$write_href?>&sca=<?=$sca?>"><img src="<?=$cb_board_skin_path?>/img/btn_write.gif" border="0"></a><? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$cb_board_skin_path?>/img/btn_select_delete.gif" border="0"></a>
<a href="javascript:select_copy('copy');"><img src="<?=$cb_board_skin_path?>/img/btn_select_copy.gif" border="0"></a>
<a href="javascript:select_copy('move');"><img src="<?=$cb_board_skin_path?>/img/btn_select_move.gif" border="0"></a>
<? } ?>
</td>
<form name=fsearch method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<td width="50%" align="right">
<select name=sfl>
<option value='wr_subject'>제목</option>
<option value='wr_content'>내용</option>
<option value='mb_id'>회원아이디</option>
<option value='wr_name'>이름</option>
</select>
<INPUT maxLength=15 size=10 name=stx itemname="검색어" required value="<?=$stx?>">
<SELECT name=sop>
<OPTION value=and>And</OPTION>
<OPTION value=or>Or</OPTION>
</SELECT>
</td>
<td width="10%" align="center"><INPUT type=image src="<?=$cb_board_skin_path?>/img/search_btn.gif" border=0></td>
</form>
</tr>
</table>
</td></tr></table>
<script language="JavaScript">
if ("<?=$stx?>") {
document.fsearch.sfl.value = "<?=$sfl?>";
document.fsearch.sop.value = "<?=$sop?>";
}
</script>
<? if ($is_checkbox) { ?>
<script language="JavaScript">
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 check_confirm(str)
{
var f = document.fboardlist;
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(str + "할 게시물을 하나 이상 선택하세요.");
return false;
}
return true;
}
// 선택한 게시물 삭제
function select_delete()
{
var f = document.fboardlist;
str = "삭제";
if (!check_confirm(str))
return;
if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
return;
f.action = "./delete_all.php";
f.submit();
}
// 선택한 게시물 복사 및 이동
function select_copy(sw)
{
var f = document.fboardlist;
if (sw == "copy")
str = "복사";
else
str = "이동";
if (!check_confirm(str))
return;
var sub_win = window.open("", "move", "left=50, top=50, width=396, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
</td>
<td width="10" height="" background="<?=$cb_board_skin_path?>/img2/r_cen.gif"></td>
</tr>
<tr>
<td width="10" height="12" background="<?=$cb_board_skin_path?>/img2/l_tail.gif"></td>
<td width="" height="12" background="<?=$cb_board_skin_path?>/img2/cen_tail.gif"></td>
<td width="10" height="12" background="<?=$cb_board_skin_path?>/img2/r_tail.gif"></td>
</tr>
</table>
function get_size($filename, $max="120")
{
$size = Array();
list($width, $height, $type, $attr) = getimagesize($filename);
if ($width <= $max && $height <= $max) {
$size[w] = $width;
$size[h] = $height;
} else {
if ($width >= $height) {
$size[w] = $max;
$size[h] = round(($size[w] * $height) / $width);
}
if ($width < $height) {
$size[h] = $max;
$size[w] = round(($width * $size[h]) / $height);
}
}
return $size;
}
?>
이건대요?
<?
function get_size($filename, $max="120")
{
$size = Array();
if (is_file($filename)) { // 파일이 있는지 체크
list($width, $height, $type, $attr) = getimagesize($filename);
if ($width <= $max && $height <= $max) {
$size[w] = $width;
$size[h] = $height;
} else {
if ($width >= $height) {
$size[w] = $max;
$size[h] = round(($size[w] * $height) / $width);
}
if ($width < $height) {
$size[h] = $max;
$size[w] = round(($width * $size[h]) / $height);
}
}
} // 파일이 있는지 체크
return $size;
}
?>
if (is_file($filename)) { // 파일이 있는지 체크
해서 파일이 있을경우에 getimagesize() 하도록 하는데...
파일이 없을경우 위 함수를 호출하지 않으므로 이상이 없어야하는데...
클럽이 설치되지 않아서 나라오름님의 클럽용이 아닌 다른 스킨으로 테스트까지 하고 올린것인데....음....
테스트 해보니 에러 안납니다.
질문쟁이님 저는 에러가 사라졌습니다.
연애하는라 바쁘신거 아닙니까?
그누에 와서 이렇게 도와주시는분이 있어 정말행복함니다,,!!
즐거운 주말 되십시오^^
덕분에 얻어갑니다..
싸부라 부르고 배울수있는분이 있으면좋은데 그게 힘드네요^^
ROOT 님의 정성으로 해결이 되었다니 두분 고생하셨습니다.^^
그리고 이문제는 스킨상의 버그이므로 관련 스킨자료가 있는곳에
이질문의 링크라도 남겨 두셔야 할것 같습니다.
스킨자료가있는곳하고 유사한 스킨이 하나 더있는데요,, 거기에도 같은 오류가난다고 올라와있더군요,
거기에도 트랙팩 복사해서 올려두겟습니다,