无法重定向到HTML页面

时间:2012-06-20 00:12:06

标签: php html

我的问题是在我成功登录后,它没有重定向到我应该去的页面。

另外,我正在使用apache服务器。

下面是我认为需要修复的PHP部分。

if($count==1){
    // Register $Username, $Password and redirect to file "login_success.php"
    session_register("Username");
    session_register("Password");
    echo "Correct Username & Password";

    header("location:$http://localhost/.../contacts.html");
    }
    else {
    echo "Wrong Username or Password";
    header("location:../php/error.php");
    }

使用

header("location:$http://localhost/.../contacts.html");

我得到403 Forbidden错误.. 这个错误没有出现在网页上,而是出现在萤火虫上。

如果我用

替换

header( 'Location: http://localhost/.../contacts.html' ) ;

header("Location: ./../contacts.html");

header('Location: ./../contacts.html');

它没有给我任何错误,但它只通过显示contacts.html的html代码并且不显示页面本身而在firebug中响应..

请帮我解释一下如何解决这个问题

抱歉任何语法错误和难以理解:)

3 个答案:

答案 0 :(得分:2)

documentation所述,如果您之前打印过一些html,则无法使用header。 (你以前甚至不能留空格。)

只需删除echo,就可以了。

答案 1 :(得分:1)

一旦echo发送任何内容或发送任何输出,您的标头就会被发送。因此,在执行此操作后,您无法操纵标题。您可以通过简单搜索SO

上的错误消息找到有关此问题的大量帖子

https://stackoverflow.com/search?q=headers+already+sent

当你将它们重定向到下一行时,有什么回应的东西? :P

修改:此声明中是否存在美元符号的原因:header("location:$http://localhost/.../contacts.html");$http是变量吗?也许尝试删除美元符号..

答案 2 :(得分:-1)

在http之前删除$符号并完成...