0

私はPHPに少し問題があります。おそらくほとんどの人にとって、それはばかげた問題ですが、あなたの助けが必要です。
これが私のコードです:

function is_logged() {
if(isset($_COOKIE['username'])) {
    return true;
} else {
    return false;
}
}

そして、これがコード全体の一部であり、ログに記録されていない場合に誰かがアクセスを拒否する必要があります。

if(!is_logged()) {
header("Location: ./?act=Home");
}

どこで間違えましたか?

編集:申し訳ありませんが、問題についてはまったく説明していません...この関数はリダイレクトされず、ページが空白のままになります!

4

1 に答える 1

0

これを試して:

ページの最初に、ob_start()エラーメッセージが出力されないように配置し、チェックを次のように変更します。

if(!is_logged()) {
    ob_clean();
    header("Location: ./?act=Home");
    die();
}

ここdie()では、PHPが他のことを実行できないようにします(おそらく、リダイレクトがないようにヘッダーを変更します)。また、このコードが呼び出される前にエラーメッセージが生成されているかどうかを確認する必要があります(これは通常、header()リダイレクトの問題であるため)。エラーメッセージがphp.iniおよび/またはPHPでdisplay_errorsを使用してオンになっていることを確認してください。ob_startob_cleanはエラーメッセージが表示されないようにするため、エラーが何であるかを確認するために一時的に削除する必要があることに注意してください。

とはいえ、ユーザーがログインしているかどうかを判断するためにCookieを使用するだけでは、だれでもブラウザでCookieを作成するのは非常に簡単なので、悪い習慣と見なされます。有効なログインであることを確認するために、サーバー側のチェックを行う必要があります。

于 2012-07-24T17:34:27.650 に答える