PHP重定向到没有空白页的另一页

时间:2014-10-04 09:26:20

标签: javascript php jquery redirect

我有这个PHP功能用于重定向页面:

function _IS_Redirect_($url) {
    if(!headers_sent()) {
        //If headers not sent yet... then do php redirect
        header('Location: '.$url);
        exit;
    } else {
        //If headers are sent... do javascript redirect... if javascript disabled, do html redirect.
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$url.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
        echo '</noscript>';
        exit;
    }
}

现在,当我提交表单时,如果表单没有错误重定向到另一个页面。现在我有2个问题:

  • 在帖子提交后,当页面重定向时,我看到空白页面,然后页面重定向!如何重定向页面而不看空白页?
  • 我需要在新页面中显示成功消息。如何处理成功错误到新页面?

如何修复此错误?

1 个答案:

答案 0 :(得分:0)

如果您使用javascript或html刷新重定向,您将始终看到一个空白页面。最好的解决方案是在页面上显示一条消息,说明它们很快就会被重定向。在您的情况下显示成功消息,并且他们将被重定向。

理想情况下,您永远不需要js或html重定向。如果这是一个问题,请找到重新排列代码的方法,以便在运行任何其他代码之前重定向。并确保没有错误导致它。

至于在用户被重定向到的页面上显示成功消息,还有另一个Stack Overflow Answer来解决它。我认为最简单的解决方案是在URL的末尾添加一个GET变量。

header('Location: '.$url.'?success=1'); 

在重定向页面

if ( isset($_GET['success']) && $_GET['success'] == 1 )
{
     echo "Success";
}

另一种解决方案是使用会话变量。请参阅上面的堆栈溢出问题的链接。