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 エラーが発生します。このエラーは Web ページではなく、firebug に表示されました。

と置き換えると

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 に答える