UseModWiki소스수정/로그아웃직후상단메뉴 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/로그아웃직후상단메뉴 는 읽기 전용 페이지입니다.
== 로그아웃 직후에 상단메뉴에 여전히 로그아웃 링크가 남아있는 문제 해결 == * 로그인한 상태에서 로그아웃 링크를 클릭했을 경우, 로그아웃이 되었다는 말은 나오는데 상단 메뉴에는 여전히 "로그아웃"으로 링크가 존재한다. 이 상태에서 다시 다른 페이지로 가거나 로그아웃 링크를 한 번 더 눌러야만 "로그인"으로 바뀐다. * 이 문제에 대해 [[Bab2]] 님이 [[/사용자의견]] 란에 패치를 작성해 주셨는데, [[주인장]]은 사용자ID 에 관한 부분은 될 수 있는 한 건드리지 않으려 한다. 그 이유는
환경설정에서 사용할 수 없는 아이디를 넣었을 때의 처리 문제 해결
섹션에서 언급한 것처럼 사용자ID 의 개념이 오리지널 UseModWiki 와 다르기 때문이다. 따라서, 여기서는 최소한 영향을 덜 미치면서 문제를 해결하는 꽁수를 택했다. * 부작용: 아직 모름 -_-; ** 문제의 원인은, 처음에 로그아웃 버튼을 클릭하면 logout result 화면이 출력되는데, "메뉴바를 출력하는 시점 이후"에 실제로 로그아웃 동작을 수행한다는 것이다. 즉 메뉴바가 출력되는 순간에는 아직 로그아웃되지 않은 상태이고, 따라서 여전히 로그아웃 버튼이 출력된다. 그렇다고 해서 실제 로그아웃 동작 부분을 메뉴바 출력보다 앞서서 할 경우, 이번에는 본문창의 메세지가 제대로 출력되지 않는다. ** 메뉴바를 출력할 때는, UserID 가 113 또는 112 면 "login" 을, 그렇지 않으면 "logout" 을 출력하게 되어 있다. 따라서 이 패치에서는, logout result 화면에서 상단 메뉴를 출력하기 전에 UserID 를 임시로 113 으로 만들고, 상단 메뉴를 출력한 후에 다시 UserID 값을 복원한 이후 나머지 로그아웃 과정을 수행하도록 한다. ** GetHeader() 함수와 그 안에서 호출되는 모든 함수 안에서 UserID 가 얼마나 사용되느냐에 따라서 부작용의 규모가 달라질 것이다. ** 현재로서는 상단 메뉴 말고는 UserID 에 민감한 동작을 하는 루틴을 찾지 못했다. 특별한 문제는 없을 것이라 희망한다. : {{{#!vim perl sub DoLogout { ... $SetCookie{'rev'} = 1; ### print 문의 앞뒤로 추가한다. my $tempUserID = $UserID; # 추가 $UserID = "113"; # 추가 print &GetHeader('', T('Logout Results'), ''); $UserID = $tempUserID; # 추가 ### if (($UserID ne "113") && ($UserID ne "112")) { print Ts('Logout for user ID %s complete.', $UserID); } ... } }}} ---- [[위키위키분류]]
UseModWiki소스수정/로그아웃직후상단메뉴
페이지로 돌아가기 |
다른 수정본 보기