2013-10-06 2 views
2

PHP를 사용하여 어떻게이 작업을 수행 할 수 있습니까? 예 :홈페이지로 리디렉션하는 것이 아니라 사용자가보고있는 페이지를 페이지에 유지하는 것

1) 있습니다의 말을하자 총 5 페이지 (A, B, C, D, E) 모든 사용자가 (하나가 로그인 또는 아웃)

2를 볼 수 있습니다) 사용자 X는 페이지 (C)을보고하고

3) 사용자 X에 기록 된 그/그녀가보다는 보는 것을) 페이지 (C에 로그인 할)와 같은 페이지 (C에 로그인되지 홈 페이지로 리디렉션 됨

나는 사용자 어떤 사용자가 어떤 페이지 에든지 로그인 할 때 홈 페이지로 리다이렉트되지만, 나는 이것을 원하지 않으며 내 사용자가 원하지 않는 것입니다. 나는 어떤 사용자라도 그들이보고있는 페이지에 로그인 할 수 있고 리다이렉트되기보다는 그들을위한 페이지.

이것은 사용자가 로그인하여 리디렉션되는 방식이지만 로그인 할 때 사용자가보고있는 페이지에 머무를 수있는 방법을 모를 수 있습니다.

PHP

header("Location: index.php"); 

더 그는 사용자가 로그인 할 때보고있는 동일한 페이지에 머물 수 있도록 할 필요가 있습니까? 아니면 그냥 위의 한 줄의 코드를 사용하여 찾을 수없는 간단한 솔루션이 있습니까?

자습서/블로그/포럼 등을 많이 읽었지 만 어느 곳에서나 확실한 답변을 찾을 수 없습니다. 나는 'PHP_SELF'를 보았지만 그것을 구현하는 방법을 모르고 php.net은 그것을 사용하는 방법에 대한 명확한 해결책을 가지고 있지 않다. 많이 감사하겠습니다.

해결했다 -> 당신의 도움을 Thinkswan

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
header("Location: $current_url"); 

UPDATE 감사 : - 당신은 상기에서 제시된 바로는 초기 질문

에서 유래> 질문을 올바른 형식을 취할 수 있을까요? 예 :

위와 같은 규칙이 적용됩니다.

1) 사용자 X는 현재 페이지 (C)에 로그인하지 않은 경우과의이 (C의) URL이 http://www.example.com/members.php을 읽고, 그/그녀가 해당 페이지를 클릭 사업부 컨테이너가 페이지 가정 해 봅시다, 또 다른 더 큰 div 컨테이너가 열립니다. 즉 열려있는 동안 URL이 지금 http://www.example.com/members.php#registered_members

3. )를 읽는 중

2), 사용자 X는 이제 로그인을 결정한다.이 곳에 사용하면 만들 수있는 방법이 있나요 그 더 큰 div 컨테이너가 열린 상태에서 같은 페이지에 X 로그가 남았습니까? 지금 현재 div 컨테이너는 사용자 X가 로그인하면 축소되지만 같은 페이지에 로그인되어 있습니다.

답변

3

$_SERVER['REQUEST_URI']을 사용할 수 있습니다.

예 :

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
header("Location: $current_url"); 

개정 질문에 대한 답변 :

조각 식별자로 알려진 URL,의 #registered_members 일부는 전송되지 않습니다 서버는 클라이언트 -입니다 측면에서만. PHP는 심지어 존재한다는 것을 결코 인식하지 못합니다.

그러나 페이지가 다시로드 될 때 JavaScript로 확인하고 페이지의 존재 여부에 따라 페이지를 업데이트 할 수 있습니다.

<script>alert(window.location.hash);</script> 
+0

브릴리언트 - 브라우저 간 호환이 가능합니까? 그리고 처음에는 반드시 http : //가 필요합니까? – user2732875

+0

위의 내 자신의 질문에 대답했습니다. 'thinkswan'이 도움을 주셔서 감사합니다! – user2732875

+0

학습하는 사람들에게 도움이 될 수 있습니다. http://stackoverflow.com/questions/13772934/php-server-variables-serverhttp-host-vs-serverserver-name, http://stackoverflow.com/questions/4730798/what-is-the-the-difference-between-serverrequest-uri-and-getq와 http://php.net/manual/en/function.header.php – pablofiumara

1

모든 양식에서 동일한 로그인 페이지를 포함 시키거나 호출하는 경우 한 가지 작업을 수행 할 수 있습니다. 세션 변수에서 현재 페이지 URL을 가져 와서 해당 페이지로 리디렉션하십시오.

관련 문제