로그인 후 기존 페이지로 리다이렉트 시 wr_id가 누락되는 문제
본문
안녕하세요.
문제는 제목과 같습니다.
이를테면 어떤 게시글을 보던 중 로그인을 누르면 아래와 같이 페이지 주소로 이동하게 되는데
https://사이트.net/bbs/login.php?url=https://사이트.net/bbs/board.php?bo_table=게시판&wr_id=3452
여기서 로그인을 하면, 리다이렉트가 게시물 주소로 가는 것이 아니라 wr_id가 누락된 게시판 주소로 이동을 하더라구요.
즉 본래 제대로라면 가야 할 곳은
https://사이트.net/bbs/board.php?bo_table=게시판&wr_id=3452
인데, 정작 이동하는 주소는
https://사이트.net/bbs/board.php?bo_table=게시판
로 이동해버립니다...
언젠가(아마 버젼 업그레이드 후)부터 이런 문제가 발생하고 있어서, 코드를 둘러보면
login_check.php에서 해당 코드는 찾았습니다만, 왜 갑자기 오작동을 하는지 모르겠습니다.
전혀 수정하거나 건든 적이 없거든요.
다른 분들은 잘 쓰시는걸 보면 저만 뭔가 잘못된거 같은데, 이미 코드는 그대로인 상황에서 제가 이걸 함부로 수정하면 오히려 동작이 꼬이지 않을까 싶어 먼저 질문글을 올려봅니다.
답변 2
url 인코딩이 안되는 것 같네요?
그누보드 원본은
theme/basic/head.php 에서 url 파라미터를 주지 않고 있는 걸로 봐서
따로 붙이신게 아닌가 하는데요
https://github.com/gnuboard/gnuboard5/blob/5.4.5.1/theme/basic/head.php#L96
가령 이런 식으로 되어 있을 법 합니다
<li><a href="<?php echo G5_BBS_URL ?>/login.php?url=<?php echo G5_URL.$_SERVER['REQUEST_URI']; ?>">로그인</a></li>
만약 이렇게 인코딩이 안되어 있다면
<li><a href="<?php echo G5_BBS_URL ?>/login.php?url=<?php echo urlencode(G5_URL.$_SERVER['REQUEST_URI']); ?>">로그인</a></li>
혹은
login.skin.php 파일에서
$login_url 대신 커스텀 되었을 수도 있습니다
https://github.com/gnuboard/gnuboard5/blob/5.4.5.1/theme/basic/skin/member/basic/login.skin.php#L17
기존소스 백업해두시고
login_check.php에서 wr_id를 제대로 받는지 확인해보세요