만료된 페이지입니다..png

며칠밤을 삽질한 끝에 버그를 잡았습니다. 태터툴즈 클래식 1.0 RC3 - 버그 리포트에서 나름대로 정리한 내용 중에 유독 이 문제만을 해결하지 못하고 있었지만, 이제 완벽해 졌군요.

처음에는 오피셜처럼, URL에 한글을 그대로 쓰는 방안을 강구하였지만 구조상의 문제로 삽질만세였구요. 자바스크립트에서 urlencode는 사용할 수가 없더군요. 혹시나 urlencode가능한 자바스크립트가 있나 싶어 이곳저곳 둘러보았지만, 역시나 삽질이었습니다. 결국에는 아주 간단한 방법으로 해답을 찾았는데요. 서치 이벤트가 일어나면 헤더에 주소를 전달하는 방식으로 결판났습니다.(뿌듯하군요.) 그동안 뒤로버튼 누르기가 두려웠지요? '만료된 페이지'는 이제 안녕입니다. 해결방법은 아래와 같습니다.

index.php
수정전 - 138열 부근에서 아래의 코드를 찾는다.

if ($stext) {
$stext = str_replace("%", "", $stext);
$add_query .= " and (title like ('%$stext%') or body like ('%$stext%')) "; $add_val .= "&stext=".urlencode($stext);
}
if ($stag) {

수정후 - 아래처럼 파란부분을 추가한다.

if ($stext) {
$stext = str_replace("%", "", $stext);
$add_query .= " and (title like ('%$stext%') or body like ('%$stext%')) "; $add_val .= "&stext=".urlencode($stext);
}
if ($search) header("Location: index.php?stext=".urlencode($stext)); // 만료된 페이지 수정(edited by kebie)
if ($stag) {

※ 오류, 버그, 개선 등과 관련된 피드백은 이곳에 댓글 및 트랙백으로 남겨주세요.

덧. kebie님께서 코드를 한줄로 만들어 주셨습니다. ^^

Comments

Got something to add? You can just leave a comment.

  • 미루 미루

    항상 간지러운 곳을 긁어주시네요.
    저도 검색을 하고 뒤로 버튼을 누르면 만료된 페이지라는 에러가 뜨던데, 좀 불편했습니다.
    위 방법되로 고치니, 검색 후에 뒤로버튼 눌러도 검색된 페이지가 그대로 뜨네요
    감사합니다. ^^

    reply edit

  • 파이어준 파이어준

    저도 뿌듯합니다. 이제 만족할 만한 수준이라 생각되니 블로깅에 전념해야겠습니다. ^^;

    reply edit

  • 9gle 9gle

    이쯤해서 비공식 개발진 대우를 해드려야 할듯.. ^^;;

    정말 수고 많으시네요..

    reply edit

  • 파이어준 파이어준

    별말씀을요... 전 프로그래머도 아니구요. 그냥 재미삼아 공부삼아하고 있는걸요. 이번 업데이트 작업으로 한단계 래밸업 한것 같아요 ^^; 다 태터툴즈 덕분이지요. 조금 길어지긴 했지만...

    reply edit

  • kebie kebie

    Post 방식으로 매개변수를 넘겨준 페이지는 만료된 페이지 문제 때문에 은근히 짜증나죠. 저도 이참에 바로 적용해 버렸습니다. ^^; 그런데, PHP의 헤더함수 대신자바스크립트를 사용한다면, 어차피 브라우저에서 URL을 UTF-8로 보내기 때문에 get방식으로 검색 키워드 매개변수를 변환하지 않고 그대로 넘겨줘도 상관없지 않을까요?

    reply edit

  • 파이어준 파이어준

    네 저도 그러한 방법으로 접근해보았습니다. 관리자의 글관리 목록에서 키워드를 get방식으로 전달하더라구요. 하지만 이유도 모른체 실패하고 말았어요. 저에게는 아직 역부족입니다. ^^

    reply edit

  • kebie kebie

    지금 막 그냥 get방식으로 넘겨주는 것이 안되는 걸 확인하고 왔습니다. ^^; 관리자 페이지도 파이어준님처럼 header 함수를 이용해서 urlencode로 변환해준다음에 get방식으로 넘겨주고 있네요.

    ps.
    위 소스에서 이부분만 추가해줘도 잘 되는 것 같습니다.

    if ($search) header("Location: index.php?stext=".urlencode($stext));

    reply edit

  • 파이어준 파이어준

    와! 한줄로 처리하셨군요! 대단하시네요! 수정하여 반영하겠습니다. 피드백 감사드립니다.

    reply edit

  • 피디 피디

    안그래도 이거 굉장히 거슬렸었는데, 감사합니다. ^^

    reply edit

  • 파이어준 파이어준

    네, 감사합니다.

    reply edit

  • 뮤직리카 뮤직리카

    아... 이거 미칩니다. 이 부분도 해결해 주시는겁니까? 파이어준 님 덕분에 클래식 1.0 RC3 가 아닌 OR 이 되어가고 있습니다.

    reply edit

  • 파이어준 파이어준

    함께 만드는 태터툴즈입니다. ^^; 클래식도 정식 OR을 만들어 주신다고 합니다.

    reply edit

  • 허니의 달콤한 작은 세상 허니의 달콤한 작은 세상

    키워드 검색, 검색오류 수정

  • 엘리타쥬 엘리타쥬

    오늘 파이어준님 블로그에서 10가지는 패치한 것 같습니다. (...)
    이 팁이 오늘로썬 마지막이네요. ;)
    이 자리를 빌어 한꺼번에 감사의 말씀 올립니다.
    새해 복 왕창 받으실 것이라 믿어 의심치 않아요~ 잇힝

    reply edit

  • 파이어준 파이어준

    클래식을 졸업하시는 군요. 축하드립니다. ^^

    reply edit

Your Reaction Time!

avatar

captcha