使用元标记重定向

时间:2013-12-18 23:47:06

标签: php redirect header meta

我正在开发一个在线商店,当用户的身份识别正确时,我将用户重定向到其他页面(例如,谷歌):

if(UsersManager::getInstance()->checkIdentification($_POST['userAdmin'], $_POST['passAdmin'])){
    $_SESSION['user']  = $_POST['userAdmin'];
    $_SESSION['lastConection'] = time();
    header('Location: http://www.google.es');
    die();
}

我将此代码上传到我的服务器并且可以正常运行。我已尝试过其他服务器,但重定向不起作用。

另外,我尝试使用此代码重定向

echo '<meta http-equiv="Refresh" content="0; URL=http://www.google.com">';

并删除

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

既不使用元标记,也不使用header()。在我的服务器工作正常。有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

请尝试显示错误,可能会出现输出缓冲警告。
在顶部添加

ini_set( 'display_errors', true );
error_reporting( E_ALL | E_STRICT );

P.S:使用元标记进行重定向就像你想要的那样,不是一个好的实践。

答案 1 :(得分:0)

查看为什么header();不工作。但快速修复可能是

    if(UsersManager::getInstance()->checkIdentification($_POST['userAdmin'],         $_POST['passAdmin'])){
        $_SESSION['user']  = $_POST['userAdmin'];
        $_SESSION['lastConection'] = time();
        header('Location: http://www.google.es');
        ?>
        <script type="text/javascript">
        <!--
        window.location = "http://www.google.es/"
        //-->
        </script>
        <?php
        echo "<a href=\"http://www.google.es\">If your browser didn't redirect you click here.</a>";
        die();
    }

Javascript应该重定向每个标头()不起作用。

如果他们有javascript禁用,它会给他们链接。尽管如此,让它成为一个漂亮的链接;]