PHP标头和刷新无法正常工作

时间:2011-05-31 11:09:22

标签: php header refresh

我的服务器在 PHP 5.2.9 中运行,当我使用刷新和标头功能时,它无法正常工作。这是我的代码

header("location: index.php");

header( "Refresh: 0;" );

以前我在不同的服务器上工作,它工作正常。我该如何解决这个问题?

这是我的完整代码

if($_POST['sign_in'])
{
    $email = $_POST['email'];
    $password = $_POST['password'];
    $sql = "SELECT * FROM tbl_members WHERE m_email='$email' and m_password='$password'";
    $res = mysql_query($sql);
    $count = mysql_num_rows($res);
    if($count==1)
    {
        session_register("email");
        header("location: index.php");
    }
    else
    {
        $sql = "SELECT * FROM tbl_temp_members WHERE email='$email'";
        $res = mysql_query($sql);
        $count = mysql_num_rows($res);
        if($count==1)
        {
            echo "Login unsuccessful,Account still not activated";  
        }
        else
        {
            echo "Login unsccessful";
        }
    }
}

4 个答案:

答案 0 :(得分:5)

位置和刷新require an absolute URI(和“位置”而不是“位置”)。

试试这个:

header('Location: http://absolute.uri/file.ext');

如果这没有帮助,请检查my answer for any "strange" PHP problem;)

答案 1 :(得分:3)

取决于你想要做什么。你想尝试重定向吗?如果是这种情况,您只需使用header('Location: http://www.example.com/');,但如果您想在一段时间后刷新,则可以使用:

header( "refresh:5;url=wherever.php" ); 
echo 'You\'ll be redirected in about 5 secs. ';
echo 'If not, click <a href="wherever.php">here</a>.';

获得了来自 - http://php.net/manual/en/function.header.php的示例代码 - 也许值得一读。

答案 2 :(得分:1)

(1)如果您拥有位置

,则不需要刷新标头

(2)在最后添加exit;

  

第二个特例是   “位置:”标题。不仅如此   将此标题发送回浏览器,   但它也返回REDIRECT(302)   状态代码到浏览器,除非   201或3xx状态代码已经存在   已经确定。

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

答案 3 :(得分:0)

然后最好使用JavaScript。在此代码之前附加:

<script> setTimeout(function() { window.location = "index.php"; }, 2000); </script>