하반기 부터 php7.4 미만은 안녕이라는 공지를 보고
올리는 김에 php8.2 올리자 해서 서버 세팅하고
바뀌는 php 버전에 맞춰 이것 저것 수정하고 있었는데
다른 페이지에서는 이상없는데
읽기 페이지에서 로그인 또는 회원가입을 클릭하면 이동이 안되고 있습니다.
검색을 해 보면 비슷한 경험을 하신 선배님들이 있었던거 같은데
미묘하게 다른 케이스라 해결책을 못찾고 있습니다.
로그인은 {getUrl('act', 'dispMemberLoginForm')}
회원가입은 {getUrl('act', 'dispMemberSignUpForm')}
을 사용하고 있습니다.
소스를 보면 링크는 해당 메뉴로 제대로 뜨고 있는데 클릭하면 제자리 걸음만 하네요.
방법이 없을까요?
PHP 버전과는 관계없습니다. 예전에 만들어진 레이아웃들이 로그인/회원가입 링크에서 document_srl을 빼지 않아서 일어나는 현상입니다. 레이아웃에 따라서는 7.4에서도 종종 보고되는 문제인데, 대부분의 회원들은 메인화면에서 로그인을 하니까 몇 년째 눈치채는 사람이 거의 없었을 뿐...
{getUrl(['mid' => $mid, 'act' => 'dispMemberLoginForm'])}
{getUrl(['mid' => $mid, 'act' => 'dispMemberSignUpForm'])}
이렇게 바꾸시면 됩니다. 명시적으로 선언한 mid와 act를 제외한 변수들은 모두 제거하고 로그인/회원가입 링크를 생성하라는 뜻입니다.
변수를 초기화하지 않고 덧붙이기만 하는 URL 생성 방식은 모두 퇴출 대상입니다. 특히 어떤 화면에서 사용할지 모르는 레이아웃에서 그렇게 하면 큰일나요. 게시판에는 document_srl, comment_srl, page, 검색어 등 잡다한 변수가 많이 붙어 있어서, 거기에 단순히 act만 추가하면 무엇을 요청하는 것인지 혼란스럽거든요.