포스트의 고유주소를 제공하는 pl명령에 잘못된 pl번호를 입력하면 아래와 같은 오류가 발생하여 원인을 찾던 중 PSY님의 이전, 다음글 제목 출력하기 코드에서 문제가 있음을 확인하고 패치하였습니다.
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 23 in /home/firejune/public_html/index.php on line 621
수정 하던 중 원작자인 PYS님의 블로그가 운명하신(?) 것을 알게 되었습니다. 찾는 분이 계실것 같아 이곳에 로그를 남깁니다. PYS님의 주옥같은 팁들을 더이상 볼 수 없다는 것이 너무 아쉽군요. 아래의 원문은 저의 하드디스크에 저장되어 있는 문서로 최종 업데이트일은 언제인지 알 수 없습니다.
* 한 페이지에 여러개의 블로그를 보이게 설정한 경우 버그 패치했습니다.
* 카테고리리스트나 방명록 페이지에서도 이전글/다음글이 보여지는 버그 패치했습니다.
* 현재 시각 2004/09/15 13시 50분 이전에 긇어 가신 분은 다시 긇어 가세요.
* 카테고리 리스트에서 글 선택 시 이전/이후 글 제목이 틀리게 나오는 벌레 잡았습니다. (2004/09/15 21:45) - 수정바랍니다. ㅠ.ㅠ;;
* 혹시 이후 다른 문제가 있으면 이 포스트 댓글에 남기거나 남겨진 댓글들을 참고하세요.
index.php 의 다음 부분을 찾아서 붉은색 코드를 추가합니다.
/////////////////// page navigation
unset($buf, $prev_page, $next_page);
$i = $page - 5;
$cnt = 0;
$final = sprintf("%d", ($t_cnt+$pagelog-1) / $pagelog);
if ($md) $add_val = "&md=$md".$add_val;
if ($sort) $add_val = "&sort=$sort".$add_val;
if ($i > 0 && $i > ($final - 9)) { $i = $final - 9; if ($i < 1) $i = 1; }
if ($page > 5) { $buf .= set_paging_link(1); $buf .= " ... "; }
while(1) { $i++; if ($i < 1) continue; $buf .= set_paging_link($i); $cnt++; if ($cnt == 9 || $i == $final || !$final) break; }
if ($final > $i) { $buf .= " ... "; $buf .= set_paging_link($final); }
if ($page > 1) $prev_page = "href="index.php?page=".($page-1)."$add_val"";
if ($page != $final && $final) $next_page = "href="index.php?page=".($page+1)."$add_val"";
$d1 = str_replace("[ ##_s_paging_rep_## ]", $buf, $d1);
$d1 = str_replace("[ ##_prev_page_## ]", $prev_page, $d1);
$d1 = str_replace("[ ##_next_page_## ]", $next_page, $d1);
if (!($md == "rss" || $md == "guest" || ($&&&ct1 && $p_select_cat_view == 1 && !$pl) || (($setdate || $setday) && $p_select_arc_view == 1 && !$pl) || ($stext && !$pl))) {
// 이전 글 제목 가져오기
if($page > 1) {
$sql = "SELECT title FROM t3_" . $dbid . " WHERE $is_public $add_query ORDER BY regdate DESC LIMIT " . ($start - 1) . ", 1";
$prev_title = mysql_result(mysql_query($sql), 0, 0);
} else {
$prev_title = "이 글이 처음 글입니다.";
}
//echo $prev_title;
// 다음 글 제목 가져오기
if($page != $final && $final) {
$sql = "SELECT title FROM t3_" . $dbid . " WHERE $is_public $add_query ORDER BY regdate DESC LIMIT " . ($start + $pagelog) . ", 1";
$next_title = mysql_result(mysql_query($sql), 0, 0);
} else {
$next_title = "이 글이 마지막 글입니다.";
}
//echo $next_title;
$d1 = str_replace("[ ##_prev_title_## ]", "▲ 이전 글 : " . $prev_title, $d1);
$d1 = str_replace("[ ##_next_title_## ]", "▼ 다음 글 : " . $next_title, $d1);
} else {
$d1 = str_replace("[ ##_prev_title_## ]", "", $d1);
$d1 = str_replace("[ ##_next_title_## ]", "", $d1);
}
Comments