0

PHP でログイン/ログアウト パネルを作成するのに 2 日間を費やしました。セッション変数によって既にログインしているかどうかを確認し、適切な「パネル」をエコーする 1 つの PHP ファイルを使用しています。

私が抱えている問題は、ログインしてからログアウトした後、他のパネルが実際に表示されるようにページを更新する必要があることです。私はPHPで完了していることを発見しましたheader()が、ヘッダーが送信されたことを常に取得しているため、実装に問題があります。とにかく、何時間もかけてJavaScriptを使用することにしたのでredirect(url)、URLを取得してそのページを開く基本的な関数を作成し、それに渡す$_SERVER["PHP_SELF"]ので、同じページに戻って基本的にリフレッシュします。しかし今、誰かが JS を無効にしたら、私はそれで問題が発生するだろうと考えていました。

私が知らない代替案はありますか?乾杯

4

4 に答える 4

2

Javascript ソリューション:

var newURL = "http://THE-URL.com";
document.location.href = newURL;

また

location.reload(true);

HTML ソリューション:

<meta http-equiv="refresh" content="2;url=http://THE-URL.com">

PHP ソリューション:

// taken from http://www.phpfreaks.com/forums/index.php?topic=228678.0
function redirect($loc){
    echo "<script>window.location.href='".$loc."'</script>";
}
function GoHere(){
    redirect('http://THE-URL.com');
}

また

header( "refresh: 2; url='http://THE-URL.com'" );

ユーザー ソリューション:

Press F5
于 2012-04-17T21:52:42.900 に答える
1

ヘッダーが既に送信されている問題を解決するために、開始<?phpタグの前または終了タグの後にスペース、改行、またはその他のゴミを削除します?>

于 2012-04-17T21:36:22.597 に答える
0

ログアウト スクリプトを独自のページにしてみてください。ログアウト リンクをそこに向けてから、セッション変数の設定を解除します。ページリファラーを取得して、そこに送り返すことができます。

于 2012-04-17T21:34:10.850 に答える
-1

すでに送信されたヘッダーの問題を解決するには、次を追加します。

ob_start();

コードの先頭に。

于 2012-04-17T21:29:09.027 に答える