在php中重新提交表单,如何重定向到特定页面

时间:2013-07-22 19:33:28

标签: 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,那么它应该重定向到它之前的页面。

1 个答案:

答案 0 :(得分:0)

这不是一个确切的解决方案,但重定向人员使用以下内容:

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

要使用上述代码,必须先显示该代码,然后才能向页面显示任何其他信息。

要将用户重定向到他们来自的页面,请使用以下命令:

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

使用$_SERVER['HTTP_REFERER']时要小心,因为该URL是由用户代理设置的,并不总是在那里。

如果您确实需要重定向到他们重定向到登录页面之前所在页面,您需要将该信息存储到$ _SESSION []变量中,或者将其作为URL中的GET变量。

示例:

  1. 用户转到http://www.example.com/settings.php
  2. 用户未登录时将其重定向至login.php?redirect=http://www.example.com/settings.php或重定向集$_SESSION['redirect'] = "http://www.example.com/settings.php";
  3. 处理登录
    • 登录失败将其重定向到login.php?redirect=http://www.example.com/settings.php或login.php(如果您使用了SESSION变量)。
    • 使用header('Location: '+$_GET['redirect']);header('Location: '+$_SESSION['redirect']);
    • 登录成功重定向
  4. More Information on Sessions

    More Information on $_SERVER variables

    More Information on header()