로그인 후에 메인페이지로 계속 이동이 되네요. 정보
로그인 후에 메인페이지로 계속 이동이 되네요.본문
서브페이지에서 로그인하면 메인페이지로 이동됩니다.
로그인 한 현재 페이지에 머물게 하고 싶습니다.
위와 같은 질문을 찾아서 해봤는데...
bbs/login_check.php 파일
$link = $g4[path];를 $link = $_SERVER['HTTP_REFERER'];로 수정
저는 안되네요....ㅜㅡ
다른 문제가 있는건지요???
날이 많이 춥네요. 건강들 유의하세요...ㅜㅡ
로그인 한 현재 페이지에 머물게 하고 싶습니다.
위와 같은 질문을 찾아서 해봤는데...
bbs/login_check.php 파일
$link = $g4[path];를 $link = $_SERVER['HTTP_REFERER'];로 수정
저는 안되네요....ㅜㅡ
다른 문제가 있는건지요???
날이 많이 춥네요. 건강들 유의하세요...ㅜㅡ
댓글 전체
bbs/login_check.php 파일의 어느 부분에서 수정하셨나요?
저는 맨 마지막 부분에서 수정했는데...잘되네요.
그누보드4 최근 소스 사용하였구요.
else
//$link = $g4[path]; // <- 수정하기전.
$link = $_SERVER['HTTP_REFERER']; // <- 수정한 부분
goto_url($link);
?>
저는 맨 마지막 부분에서 수정했는데...잘되네요.
그누보드4 최근 소스 사용하였구요.
else
//$link = $g4[path]; // <- 수정하기전.
$link = $_SERVER['HTTP_REFERER']; // <- 수정한 부분
goto_url($link);
?>
똑 같은 위치 입니다...ㅜㅜ
else
$link = $_SERVER['HTTP_REFERER'];
goto_url($link);
?>
else
$link = $_SERVER['HTTP_REFERER'];
goto_url($link);
?>
---------------------------------------------------
else
//$link = $g4[path];
$link = $_SERVER['HTTP_REFERER'];
alert($link);
goto_url($link);
?>
---------------------------------------------------
이렇게 디버깅을 해보셔야겠습니다.
$link 값이 로그인한후 뜨길 원하는 페이지인지 확인하려면요...
else
//$link = $g4[path];
$link = $_SERVER['HTTP_REFERER'];
alert($link);
goto_url($link);
?>
---------------------------------------------------
이렇게 디버깅을 해보셔야겠습니다.
$link 값이 로그인한후 뜨길 원하는 페이지인지 확인하려면요...
메인 주소가 나오네요.
배추빌더를 쓰고 있어서 마이위트에도 물어보니 이렇게 답변을 해주시던데요.
--------------------------------------------------------------------------
로그인 링크가 이런식으로 되어야 합니다.
<a href="<?=$g4[bbs_path]?>/login.php?url=<?=$urlencode?>">로그인</a>
--------------------------------------------------------------------------
어느 부분을 수정해야하는지 모르겠네요...ㅜㅜ
배추빌더를 쓰고 있어서 마이위트에도 물어보니 이렇게 답변을 해주시던데요.
--------------------------------------------------------------------------
로그인 링크가 이런식으로 되어야 합니다.
<a href="<?=$g4[bbs_path]?>/login.php?url=<?=$urlencode?>">로그인</a>
--------------------------------------------------------------------------
어느 부분을 수정해야하는지 모르겠네요...ㅜㅜ
그누보드4 소스를 중심으로 분석해 봤습니다.
1 ================================================================================
파일명 : common.php
소스 line : 378
// URL ENCODING
if (isset($url)) {
$urlencode = urlencode($url);
}
else {
// 2008.01.25 Cross Site Scripting 때문에 수정
//$urlencode = $_SERVER['REQUEST_URI'];
$urlencode = urlencode($_SERVER[REQUEST_URI]);
}
<===========이부분에서 $urlencode변수에 요청한 페이지의 url을 저장합니다.
2 ================================================================================
그누4 왼쪽 메뉴를 이용한 로그인의 경우
outlogin.skin.1.php
line : 24
$outlogin_url = $urlencode; <=== 그리고 이부분에서$urlencode를 낼름 받아쓰죠..($urlencode가 전역변수입니다)
line : 43
<input type="hidden" name="url" value="<?=$outlogin_url?>"> <== 보이시죠? $outlogin_url을 폼의 히든 변수 url로 만든부분이요..
3 ================================================================================
그누4 위쪽의 로그인 버튼을 눌러 로그인 페이지를 열어서 로그인하는 경우
이경우도 common.php를 인클루드하므로
line :20
if ($url)
$urlencode = urlencode($url);
else
$urlencode = urlencode($_SERVER[REQUEST_URI]);
이부분이 필요없어보이지만...우쨌든..이부분에서도 합니다..
전역변수 $urlencode에 요청한페이지를 저장합니다..
그리고 나머지는 2와 비슷합니다.
$member_skin_path/login.skin.php
line : 24
$outlogin_url = $urlencode; <=== 그리고 이부분에서$urlencode를 낼름 받아쓰죠..($urlencode가 전역변수입니다)
line : 31
<input type="hidden" name="url" value="<?=$outlogin_url?>"> <== 보이시죠? $outlogin_url을 폼의 히든 변수 url로 만든부분이요..
4 ================================================================================
이렇게 폼의 url 변수 넣어서 login_check.php에 전달했습니다.
================================================================================
이런식으로 그누4 소스를 분석하다보면
어떻게 요청한 페이지의 url이 login_check.php에 전달되는지 보이실겁니다....
제가 분석한 부분이 쪼금 틀릴수는 있습니다..
그러나 대체로 이렇게 한다는 흐름은 맞을 겁니다~~~
소스를 열심히 보시면 답이 다 있응게로.......
화이팅입니다~~~!!!!
즐건하루~~~
1 ================================================================================
파일명 : common.php
소스 line : 378
// URL ENCODING
if (isset($url)) {
$urlencode = urlencode($url);
}
else {
// 2008.01.25 Cross Site Scripting 때문에 수정
//$urlencode = $_SERVER['REQUEST_URI'];
$urlencode = urlencode($_SERVER[REQUEST_URI]);
}
<===========이부분에서 $urlencode변수에 요청한 페이지의 url을 저장합니다.
2 ================================================================================
그누4 왼쪽 메뉴를 이용한 로그인의 경우
outlogin.skin.1.php
line : 24
$outlogin_url = $urlencode; <=== 그리고 이부분에서$urlencode를 낼름 받아쓰죠..($urlencode가 전역변수입니다)
line : 43
<input type="hidden" name="url" value="<?=$outlogin_url?>"> <== 보이시죠? $outlogin_url을 폼의 히든 변수 url로 만든부분이요..
3 ================================================================================
그누4 위쪽의 로그인 버튼을 눌러 로그인 페이지를 열어서 로그인하는 경우
이경우도 common.php를 인클루드하므로
line :20
if ($url)
$urlencode = urlencode($url);
else
$urlencode = urlencode($_SERVER[REQUEST_URI]);
이부분이 필요없어보이지만...우쨌든..이부분에서도 합니다..
전역변수 $urlencode에 요청한페이지를 저장합니다..
그리고 나머지는 2와 비슷합니다.
$member_skin_path/login.skin.php
line : 24
$outlogin_url = $urlencode; <=== 그리고 이부분에서$urlencode를 낼름 받아쓰죠..($urlencode가 전역변수입니다)
line : 31
<input type="hidden" name="url" value="<?=$outlogin_url?>"> <== 보이시죠? $outlogin_url을 폼의 히든 변수 url로 만든부분이요..
4 ================================================================================
이렇게 폼의 url 변수 넣어서 login_check.php에 전달했습니다.
================================================================================
이런식으로 그누4 소스를 분석하다보면
어떻게 요청한 페이지의 url이 login_check.php에 전달되는지 보이실겁니다....
제가 분석한 부분이 쪼금 틀릴수는 있습니다..
그러나 대체로 이렇게 한다는 흐름은 맞을 겁니다~~~
소스를 열심히 보시면 답이 다 있응게로.......
화이팅입니다~~~!!!!
즐건하루~~~
네 소중한 답변 감사합니다.
열심히 공부해보겠습니다...^^;
열심히 공부해보겠습니다...^^;
답이 될지 모르겠지만 outlogin.skin.1.php 에서
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if ($g4['https_url']) {
$outlogin_url = $_GET['url'];
if ($outlogin_url) {
if (preg_match("/^\.\.\//", $outlogin_url)) {
$outlogin_url = urlencode($g4[url]."/".preg_replace("/^\.\.\//", "", $outlogin_url));
}
else {
$purl = parse_url($g4[url]);
if ($purl[path]) {
$path = urlencode($purl[path]);
$urlencode = preg_replace("/".$path."/", "", $urlencode);
}
$outlogin_url = $g4[url].$urlencode;
}
}
else {
$outlogin_url = $g4[url].$urlencode; ◀◀◀ $g4[url];뒤에 .$urlencode; 추가하니까 되네요.
}
}
else {
$outlogin_url = $urlencode;
}
?>
문제는 없을까요???
오류가 나는지 좀더 해볼께요.
감사합니다.
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if ($g4['https_url']) {
$outlogin_url = $_GET['url'];
if ($outlogin_url) {
if (preg_match("/^\.\.\//", $outlogin_url)) {
$outlogin_url = urlencode($g4[url]."/".preg_replace("/^\.\.\//", "", $outlogin_url));
}
else {
$purl = parse_url($g4[url]);
if ($purl[path]) {
$path = urlencode($purl[path]);
$urlencode = preg_replace("/".$path."/", "", $urlencode);
}
$outlogin_url = $g4[url].$urlencode;
}
}
else {
$outlogin_url = $g4[url].$urlencode; ◀◀◀ $g4[url];뒤에 .$urlencode; 추가하니까 되네요.
}
}
else {
$outlogin_url = $urlencode;
}
?>
문제는 없을까요???
오류가 나는지 좀더 해볼께요.
감사합니다.