我有这个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个问题:
如何修复此错误?
答案 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";
}
另一种解决方案是使用会话变量。请参阅上面的堆栈溢出问题的链接。