【问题标题】:how to use multiple headers in php with if statement如何通过if语句在php中使用多个标头
【发布时间】:2013-01-12 14:58:30
【问题描述】:

当 $_SESSION['user'] 不为空(用户已登录)时,我想将 login.php 重定向到 index.php

<?php
    session_start();
    if (isset($_SESSION['user'])){
        header ('refresh:3 ; URL:index.php');
    }
?>

但是当用户登录页面时没有重定向到 index.php

【问题讨论】:

    标签: php redirect


    【解决方案1】:

    这应该可行:

    <?php
        session_start();
        if (isset($_SESSION['user'])){
            header('Location: http://www.yoursite.com/');
            die();
        }
    ?>
    

    如果你想在 x 秒后重定向用户,那么使用

        <?php
            session_start();
            if (isset($_SESSION['user'])){
                header( "refresh:3;url=whatever.php" ); 
            }
        ?>
    

    【讨论】:

    • 太糟糕了,它没有达到他想要的效果。 :P
    • 我也想在 3 秒内使用刷新,但是当我写 header('Refresh:3;Location: index.php');为什么它不起作用?
    • @anonymous,你为什么要那样做?答案刚刚给你。按照给定的方式正确使用它,不要修改它,这样它就不起作用了。
    • 认真看我的回答。我什至用一点^ 指出了问题所在。
    • @anonymous 你混淆了这两种可能性,看看我的第二个例子,这就是你想要做的。
    【解决方案2】:

    你做错了。 Example of how to do it and some more info about the header.

    <?php
    session_start ();
    if (isset($_SESSION['user'])
    {
        header ('Refresh: 3; url=index.php');
        //                      ^
    }
    ?>
    

    你使用了:,它应该是一个等号。

    【讨论】:

    • 在使用“刷新”标头时不应使用die
    • 感谢当我写位置而不是 URL 这工作正常。但是当我写网址时,这不起作用。
    • 你还在尝试吗?仔细看...你的代码没问题,只有一个字符是错误的。你可以的!
    • 谢谢你的错误是我犯的:D 当我刷新页面时这是有效的,因为我没有在正确的位置定义 $_SESSION['user']。
    • 这次可能是这样,但在某些浏览器上这不起作用:Refresh: &lt;seconds&gt;; url:&lt;page&gt; 你最好使用:Refresh: &lt;seconds&gt;; url=&lt;page&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多