반응형
게시판 글쓰기를 눌렀는데 로그인 페이지로 이동 해서 로그인후 자동으로 방금 글쓰기를 할려고 하던 페이지로 이동하도록 처리 하고 싶다면 리턴URL 값을 urlencode로 넘겼다가 다시 받는 방식을 이용하면 됩니다.
* 글쓰기 페이지
<?
//현재 페이지 URL을 만듭니다.
//아래 결과 : /board/write.php?page=
$rurl = urlencode($_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
if(로그인확인) {
//로그인이 안된경우 로그인 페이지 이동
//아래 결과 : <script>location.href='/member/login.php?rurl=%2Fboard%2Fwrite.php%3Fpage%3D';</script>
echo "<script>location.href='/member/login.php?rurl=$url';</script>";
}
?>
* 로그인페이지
<form>
<input type="text" name="id">
<input type="text" name="pw">
<input type="hidden" name="rurl" value="<?=$rurl?>">
</form>
//$url : %2Fboard%2Fwrite.php%3Fpage%3D
* 로그인 처리 페이지
//로그인 처리 후 페이지 이동전
$rurl = urldecode($rurl);
if(isset($rurl)) {
echo "<script>location.href='$rurl';</script>";
}
복잡해 보일수도 있으나 간단하죠!
로그인 페이지로 이동할때 현재 페이지 URL을 변수에 담아서 보내었다가 로그인 처리페이지에서 넘겨 받은 로그인전 페이지 값이 있으면 해당 페이지로 이동.
여기시 urlencode를 사용하는 이유는 위 처럼 post방식에선 필요성이 없으나 간혹 링크 방식으로 보낼경우 뒤에 붙은 변수값이 마치 처리페이지 변수값으로 넘어 가는걸 방지하기 위함입니다.
예)
<?
$url = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
?>
<a href="/login.php?rurl=<?=$rurl?>">로그인</a>
예처럼 처리할 경우 결과는?
<a href="/login.php?rurl=/board/write.php?page=1&table=book">로그인</a>
이렇게 넘어갈 경우 table=book이라는 값은 로그인 처리후 넘겨 주지 못하게 됩니다.
따라서 urlencode, urldecode를 사용하는 것입니다.
도움이 되셨는지 모르겠네요 ^^
반응형
'웹프로그램' 카테고리의 다른 글
자바스크립트 상태바에 링크 주소 숨기기 (0) | 2008.11.07 |
---|---|
자바스크립트 게시판 리스트에서 본문글 미리 보여주기 (0) | 2008.11.07 |
자바스크립트 email 정규표현식 (0) | 2008.11.07 |
자바스크립트 <a href 클릭시 팝업 띄우기 및 클릭한 URL 값 받아오기 (0) | 2008.11.06 |
PHP 웹에서 서버 동시 접속자 수 확인 하기 (0) | 2008.10.28 |
PHP 처리후 페이지 이동 하는 방법들 (0) | 2008.10.20 |
PHP 날짜함수 요일 한글로 표시하기 (0) | 2008.10.19 |
PHP session_destroy() 오류 (0) | 2008.10.19 |