1

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

另外,我正在使用 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。

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

对于任何语法错误和难以理解的内容,我们深表歉意 :)

4

3 回答 3

2

文档header中所述,如果您之前打印了一些 html ,则无法使用。(你之前甚至不能放一个空格)。

只需删除echo它,它应该没问题。

于 2012-06-20T00:15:08.573 回答
1

一旦您echo发送任何内容或发送任何输出,您的标头就会被发送。因此,您不能在这样做后操纵您的标题。通过简单搜索您在 SO 上的错误消息,您会发现很多关于此问题的帖子

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

当您将它们重定向到下一行时,无论如何要回显它们有什么意义?:p

编辑:此语句中的美元符号是否有原因:header("location:$http://localhost/.../contacts.html");?是$http变量吗?也许尝试删除美元符号..

于 2012-06-20T00:15:24.267 回答
-1

去掉$http前面的标志就完成了...

于 2012-06-20T01:15:26.647 回答