그누보드 코드 이해안 되는 부분이 있어서 질문드립니다.
본문
파일명은 bbs/board.php 파일입니다.
블록 친 부분
'./login.php?'.$qstr.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.($qstr?'&':''))
여기에서 .$qstr 이 변수가 검색관련 파라미터라고 알고있는데
1.
alert 함수에서 두번쨰 인자(이동할 url) 부분을 볼떄 ./login.php? 파일명 바로 뒤에 $qstr가 붙는 건지 모르겠습니다.
제가 알기론$qstr변수는 common.php파일에서 &(&)로 시작하도록 문자열을 만든걸로 알고 있는데 말이죠..
2.
그리고 맨 끝 ($qstr?'&':'') 3항 조건문에서
$qstr이 빈문자열이냐 아니냐에 따라서 &(&)를 붙이고 안붙이고를 결정하는 거 같은데
이건 무엇을 의미하는건가요??..
제가 고민하다가
bbs/board.php내에서 다른 코드부분에서 alert 함수 두번쨰 인자 (이동할 url) 부분을 살펴봤는데
이런식으로 뒤에 .$qstr 를 붙이던데...
왜 맨위에 말한 부분은 다른걸까요
답변 2
먼저 common.php파일에서 $qstr을 찾아 보니
변수값이 존재할 때 마다 쿼리스트링을 이룹니다.
// QUERY_STRING
$qstr = '';
$qstr .= '&sca=' . urlencode($sca);
$qstr .= '&sfl=' . urlencode($sfl); // search field (검색 필드)
$qstr .= '&stx=' . urlencode(cut_str($stx, 20, ''));
$qstr .= '&sst=' . urlencode($sst); // search sort (검색 정렬 필드)
$qstr .= '&sod=' . urlencode($sod);
$qstr .= '&sop=' . urlencode($sop);
$qstr .= '&spt=' . urlencode($spt);
즉, $qstr이 단순히 &만은 아니라는 겁니다.
그리고 1번 질문에 조금 착각을 하신듯하네요.
board.php파일 해당 부분을 찾아보니
./login.php?wr_id='.$wr_id.$qstr ...... 이렇게 되어 있으니 전혀 문제될게 없습니다.
2번 질문도 마찬가지구요.
저의 생각일 뿐입니다. 예전버전에선 현재와 qstr 처리방식이 달랏습니다. 그리고 매번 버전 업데이트는 소스를 통째로 다시쓰는것이 아니라 업그레이드가 필요한부분부분만 수정하는것일겁니다. 위 같은경우 버전업데이트후 프로그램실행에 문제가 되지않아 예전버전방식으로 사용된걸 발견못하시고 그대로 두신게 아닌가 싶습니다.