2014-02-27 2 views
5

브라우저에서 뒤로 버튼의 주소를 변경할 수 있습니까? 예를 들어 나는이 페이지에서 오전 : jQuery를 사용하여 브라우저에서 뒤로 버튼 기능을 변경하십시오.

http://website.com/page3.php

나는 양식을 제출하며이 주소를 반환 내가 예를 들어, 다른 페이지로 이동하는 후

http://website.com/page3.php?ok=ok

http://website.com/blog.html

뒤로 버튼을 클릭하면 페이지 위트로 돌아갑니다.

http://website.com/page3.php

가 (브라우저) 뒤로 버튼 것이 가능하다는 것을 매번 내가 그것을 클릭 하란에 시간 $의 _GET 변수 내가 여기 브라우저의 뒤로 버튼을 클릭하면이 것을 원하는 변수가있는 해당 특정 페이지에서 왔을 때마다 변수도 얻지 못합니다.

+0

도움이 될만한 정보 : http://bstavroulakis.com/blog/web/overriding-the-browsers-back-button/ –

답변

2

http://website.com/page3.php에 양식의 세션 변수를 설정할 수 있다고 생각합니다. 제출이 완료되면 http://website.com/page3.php?ok=ok에서 설정을 해제하십시오.

그리고 url에 변수가있는 페이지가로드 될 때마다 제출 세션 변수를 즉시 확인하여 양식 페이지에서 페이지로 리디렉션되는지 확인하십시오. 그렇지 않은 경우 페이지 3 페이지로 다시 리디렉션하십시오.

나는 충분히 자신을 분명히했으면 좋겠다.

1

이렇게하면 사용자가 페이지에 링크를 따라하는 경우, 뒤로 클릭하면 그들을 걸릴 것입니다 당신이 동작을 재정의 할 수 없습니다 pushState를 사용하여 브라우저 기록

0

으로 재생하여 함께 뭔가를 해킹 할 수 없습니다 다시.

1

한 가지 방법은 AJAX를 사용하여 양식 게시 요청을하는 것입니다.

양식에 토큰을 추가하고 헤더 (존재하지 않는 경우)를 사용하여 리디렉션하도록 서버 측을 점검하십시오. 예 :

<?php 
    session_start(); 
    if(isset($_GET['ok'])){ 
     if(isset($_SESSION['form_page3_token'])){ 
      $_SESSION['form_page3_token'] = null; 
      //first request : do your stuff 
     }else{ 
      //repost (F5 or Back in the browser => redirect to origin form) 
      header('Location: http://www.website.com/page3.php'); 
     } 
    }else{ 
     $_SESSION['form_page3_token'] = session_id(); 
     //here the code to show the form 
    } 
?> 
관련 문제