2013-07-22 1 views
0

PHP로 양식을 다시 제출할 때 문제가 발생합니다. 양식이 내 사이트에 채워져 제출되면 양식이 다시 리디렉션됩니다.양식을 PHP로 다시 제출, 특정 페이지로 리디렉션하는 방법

<?php 
if (isset($_POST['submit'])){ 
     //process form input and validate data here 
     if (strlen(isset($_POST['name'])) > 0){ 
      //return status to user here 
      //and redirect page here. 
?> 
     <script type='text/javascript'> 
      history.go(-2); 
     </script> 
<?php 
     } 
    } 
?> 

이것은 어디에 문제가 있습니까? 저는 이전 페이지로 리디렉션하기 위해 javascript를 사용하고 있습니다. 이전 페이지로 리디렉션하려면 브라우저가 필요하지만 login.php 인 경우 login.php 이전 페이지로 리디렉션해야합니다. 이전 페이지를 가져오고 브라우저를 리디렉션하는 방법은 php에서 어떻게 수행합니까? 이전 페이지는 login.php라면 이전 페이지로 리디렉션되어야합니다.

+0

  • 로그인 성공 리디렉션 왜 당신은'위치를 설정하지? – Brad

  • +0

    당신은이'$ _SERVER [ 'HTTP_REFERER']'http://php.net/manual/en/reserved.variables.server.php을 조사해야합니다. –

    +0

    브래드, 이미 출력물을 보냈기 때문에 위치를 사용할 수 없습니다. 헤더 제출 ('위치')이 작동하지 않는 양식 제출 전에 에코가 있거나 내가 얻지 못하는 위치 방법을 사용하는 다른 방법이 있습니까? –

    답변

    0

    이 정확한 해결책은 아니지만 다음과 같은 사람들이 사용 리디렉션 :

    header('Location: http://www.google.com/'); 
    

    다른 정보가 페이지에 표시되기 전에 표시해야 위의 코드를 사용합니다.

    에서는 다음과 같은 사용에서 온 페이지로 사용자를 리디렉션하려면 해당 URL은 사용자 에이전트로 설정하고 항상이없는대로 $_SERVER['HTTP_REFERER']를 사용하는 경우

    header('Location: '+$_SERVER['HTTP_REFERER']); 
    

    하는 것은주의해야합니다.

    로그인 페이지로 리디렉션되기 전에 실제로 있던 페이지로 리디렉션해야하는 경우 해당 정보를 $ _SESSION [] 변수에 저장하거나 URL에서 GET var로 만들어야합니다.

    예 :

    1. 사용자 간다 사용자는 로그인 login.php?redirect=http://www.example.com/settings.php 또는 $_SESSION['redirect'] = "http://www.example.com/settings.php";
    2. 핸들 로그인
      • 로그인 login.php?redirect=http://www.example.com/settings.php 또는로 리디렉션 실패 설정 재 지정하기 전에 리디렉션되지
      • http://www.example.com/settings.php에 login.php (SESSION 변수를 사용한 경우). 대신에`헤더 : header('Location: '+$_GET['redirect']); 또는 header('Location: '+$_SESSION['redirect']);

    More Information on Sessions

    More Information on $_SERVER variables

    More Information on header()

    +0

    필자는 반드시 그것을 세션 변수에 저장해야합니까? 그냥 가져 가서 리디렉션 할 수 없습니까? –

    +0

    @samsonade, 나는 2 가지 옵션을 올렸다. 1은 세션 vars이고 다른 하나는 URL에 GET var로 게시하는 것입니다. 그 외에는 실행 가능한 해결책을 모릅니다. 완전히 다른 또 다른 솔루션이 있다고 생각조차하지 마십시오. – Steven10172

    관련 문제