2013-04-22 2 views
1

PHP 초보자, 내 사이트를 변조 시키려고합니다. 누군가 브라우저 주소 표시 줄의 URL을 수정하면 페이지 URL을 다시로드하고 싶습니다. 내가 생각한 한 가지 방법은 세션 변수에 페이지 URL을 저장하여 필요할 때 재사용하는 것입니다.
다음 페이지 URL은 사용자 선택에 기반한 SQL 쿼리 (그리고 수십 가지가있을 수 있습니다)에서 발생하므로 URL이 어떻게 될지 미리 알지 못합니다. 제가하고 싶은 것은 사용자가 링크를 클릭 할 때 주소를 복구하는 것입니다 (링크 위로 마우스를 가져 가면 왼쪽 하단 모서리에 Firefox가 표시하는 주소) 그리고 세션 변수에 저장합니다 . 가능합니까? 그렇다면 PHP로 어떻게 복구 할 수 있습니까?PHP로 수정 된 주소 표시 줄을 수정하는 방법

+1

끔찍한 사용성처럼 들립니다. – Matthew

+0

질문을 올바르게 이해하면 그 값은 이미 $ _SERVER 배열에 저장되어 있습니다. – Jerry

+0

Erm ...이 말은 매우 복잡한 방식이 아닙니다. 사용자를 이전 페이지로 리디렉션하고 싶습니다. (그렇지 않은 경우 : Matthews 대답을 참조하십시오.). – Wrikken

답변

1

실제로 두 개 이상의 URL이 필요하지 않습니다. 서버가 다음에 수행 할 작업을 알고 있기 때문에 전체 페이지 순서에서 동일한 URL을 사용할 수 있습니다.

"유한 상태 기계"에 대해 알리고 사용자에게 제공하는 선택에 따라 매우 제한된 동작 만 허용하는 워크 플로를 만드는 방법을 알려줍니다. 당신은 이것을위한 세션이 필요할 것입니다.

제대로 완료되면 다른 모든 URL은 404 또는 다른 결과가 발생하므로 사용자가 URL을 조작 할 수 없으며 사용자 선택을 허용하는 하나의 URL로 피델 링하려는 경우 원하는 단계가 목록에있는 경우에만 작동합니다 허용되는 단계 - 그렇지 않으면 아무것도 변경되지 않습니다.

제 1 상태가 "시작"되고, 천이 "대답 1"과 "2 않음"이다 수 :

은 예시한다. 이들은 더 이상 전환하지 않고 두 개의 종료 상태로 전환 중입니다. 따라서 사용자가 "대답 1"상태가되면 새 세션을 만들지 않고 다른 상태로 이동할 수 없습니다. 또한 컴퓨터 상태가 세션에 연결되어 있지 않으면 금지 될 수 있습니다. 사용자 계정