1

주제: 카테고리 특수 문자 문제?

음, 제가 봐도 원인을 정확히 모르겠어서 포럼에 올려봅니다.
블로그 스킨을 수정하던 중 발견했는데요, 한글 이름 카테고리 자체는 잘 동작하는데 특정한 경우에만 접근이 안 되고 백지로 나오는 경우가 있군요.

카테고리 이름: "살아가기, 생각하기"
카테고리 이름: "살아가기, 생각하기/즐기기" (위의 하위 카테고리)
카테고리 이름: "만들어내기"

맨 위에 것만 백지가 뜨고 아래 2개는 잘 나오는군요.
브라우저는 Firefox 3.0.1입니다.

스킨 손본 다음 디버깅 좀 해봐야 할 것 같네요;;

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

2

답글: 카테고리 특수 문자 문제?

추가입니다.

http://daybreaker.info/blog/category/%E … %B0?page=1
http://daybreaker.info/blog/category/%E … %B0?page=2
http://daybreaker.info/blog/category/%E … %B0?page=3

여기서 마지막만 백지인 이유는 뭘까요....-_-;

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

3

답글: 카테고리 특수 문자 문제?

디버그 모드를 켜봤는데, 일부 페이지에서는 아무 내용 표시 없이 디버그 정보(query 정보 등)만 출력되는 곳도 있고, 어떤 페이지에서는

array_search() [function.array-search]: Wrong datatype for second argument(2)
File: /home/daybreaker/www/blog/lib/model/blog.attachment.php:41
array_search() [function.array-search]: Wrong datatype for second argument(2)
File: /home/daybreaker/www/blog/lib/model/blog.attachment.php:41
array_search() [function.array-search]: Wrong datatype for second argument(2)
File: /home/daybreaker/www/blog/lib/model/blog.attachment.php:41
array_search() [function.array-search]: Wrong datatype for second argument(2)
File: /home/daybreaker/www/blog/lib/model/blog.attachment.php:32
... (수십 줄 반복)

이런 오류가 잔뜩 뜨는군요.;

ps. 일단 URL 파싱 자체는 문제 없이 잘 되는 것 같습니다;

Array
(
    [host] => daybreaker.info
    [fullpath] => /blog/category/살아가기, 생각하기
    [position] => /blog/rewrite.php
    [root] => /blog/
    [input] => category/%EC%82%B4%EC%95%84%EA%B0%80%EA%B8%B0,%20%EC%83%9D%EA%B0%81%ED%95%98%EA%B8%B0
    [URLfragment] => Array
        (
            [0] => category
            [1] => %EC%82%B4%EC%95%84%EA%B0%80%EA%B8%B0,%20%EC%83%9D%EA%B0%81%ED%95%98%EA%B8%B0
        )

)
Array
(
    [url]=> /blog/category/살아가기, 생각하기
    [value] => 살아가기, 생각하기
    [directive] => /category
    [page] => 1
)

즉, URL 처리하는 부분의 문제가 아니라 다른 쪽의 문제일 수도 있겠습니다.

daybreaker (2008-08-14 02:07:37)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

4

답글: 카테고리 특수 문자 문제?

일단 코드를 읽어보니

function getAttachmentsFromCache($blogid, $value, $filter = 'parent') {
    global $__gCacheAttachment;
    $result = array();
    foreach($__gCacheAttachment as $id => $info) {
        $row = array_search($value, $info);
        if($row) array_push($result,$__gCacheAttachment[$id]);
    }
    return $result;
}

여기에서 $info가 다른 부분에서 실행된 SQL 쿼리 결과의 row, 그러니까 dictionary 형태의 array를 가지고 있어야 하는데, 이 부분에서 뭔가 다른 형태의 데이터가 들어가 있는게 아닐까 싶군요.;;

daybreaker (2008-08-14 02:11:56)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

5

답글: 카테고리 특수 문자 문제?

php의 foreach가 유효성 체크를 안해서 생기는 문제입니다. ^^

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'