네이버 모바일 로그인 페이지처럼 따로 로그인을
로그인 전용 레이아웃을 사용해서 위젯 페이지로 만들어서 사용할 경우에
로그인 페이지로 접속해서 로그인한 이후에..
보통 관리자 회원 로그인 설정에서 설정해둔 메인 페이지로 이동이 아닌...
로그인하기 전에 보고 있던 페이지로 다시 이동하기를 하려고 하면 어떻게 해야하나요?;;;
이온디
Lv. 13
# 라이믹스 스킨 제작은 어디? >>>> XE 레이아웃, 라이믹스 스킨제작은 이온디에서 커스터마이징해드립니다.
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
댓글 17
success_return_url이라는 항목에 {$referer_url}이 들어 있습니다.
로그인 후에는 바로 전 페이지로 돌려보내 달라는 뜻이죠.
만약 다른 곳에서 $referer_url 변수가 필요하다면
modules/member/member.view.php 420~430줄 전후를 참고하여 만들어 쓰시면 됩니다.
<input type="hidden" name="success_return_url" value="{$referer_url}" />
어떤 스킨에서는 이렇게도 있던데 차이는 뭔지 혹시 알수 있을까요^^;
아래의 것은 리퍼러(이전 페이지)로 돌아갑니다.
로그인 위젯에서는 위의 것을 쓰는 게 옳고, 별도의 로그인 페이지라면 아래의 것을 써야죠.
감사합니다. ㅎ;; 찾아볼게요 ㅠㅠ
기존에는
<input type="hidden" name="success_return_url" value="{htmlspecialchars(getRequestUriByServerEnviroment(), ENT_COMPAT | ENT_HTML401, 'UTF-8', FALSE)}" />
이렇게 사용해서 로그인 버튼을 처리했습니다.
그런 식을.. 위에 기진곰님께서..
<input type="hidden" name="success_return_url" value="{$referer_url}" />
이렇게도 가능하다고 하셔서요.. 저게 로그인 후에 바로 전 페이지로 돌려보내라는 말이라고 하셨는데
원래는 코드 자체에는 저렇게만 하면 리퍼러를 저장해서 넘기는 게 되는 것이고...
저 {$referer_url} 이 코드를 레이아웃에서 사용하려면..
....
뭐 잘 몰라서 php로 그냥 날코딩하면..
<input type="hidden" name="success_return_url" value="<? echo($_SERVER['HTTP_REFERER']); ?>" />
이렇게 하니깐 되네요.. 혹시 더 좋은 방법 있나요?;
value="{htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_COMPAT, 'UTF-8')}"
감사합니다;;;
한가지 더 여쭤봐도 될까요^^;
php 에서 보면 encode/decode를 해줘라고 되어있던데요..
<? echo( urlencode( $_SERVER['HTTP_REFERER'] ) ); ?>
이런 식으로 하면... 서브밋되면 자동 decode가 되서.. 다시 끝에서 urldecode 해서..
location.href = '<?php echo urldecode($_POST['success_return_url']);?>';
이렇게 사용하라고 되어있던데요..
제가 이해를 잘 못해서 그런데.. XE에서는 그냥 <? echo($_SERVER['HTTP_REFERER']); ?>
이렇게만 적어도 잘 동작하던데.. 위의 말은 무슨 이야기인지 설명 부탁드려도 될까요?;;
XSS 공격을 막기 위해 htmlspecialchars만 해주면 됩니다.
그냥 이렇게 쓰는 거랑 다른가요?;
<input type="hidden" name="success_return_url" value="<? echo($_SERVER['HTTP_REFERER']); ?>" />
XE 문법 { } 으로 안되면 그냥 <?php echo htmlspecialchars($_SERVER['HTTP_REFERER']); ?> 도 해보세요.
위에껀 안되구요.
<? echo htmlspecialchars( $_SERVER['HTTP_REFERER'] ); ?>
이건 되네요 ㅎ;;
로그인 후 현재 페이지로 돌아와야 하는지, 이전 페이지로 돌아가야 하는지에 따라 용도가 다릅니다.