2012-04-17 22 views
0

PHPでログイン/ログアウトパネルを作成するのに2日間を費やしました。私はあなたが既にセッション変数でログインしているかどうかをチェックし、適切な "パネル"をエコーする1つのPHPファイルを使用しています。JS、PHPまたはHTMLを使用してHTMLページをリフレッシュする方法

私が持っている問題は、ログインとログアウト後、他のパネルが実際に表示されるようにページを更新する必要があることです。私はPHPでheader()を介して行われていることがわかりましたが、私はいつもヘッダを取得しているので、問題を実装しています。とにかく数時間後に私はjavascriptを使うことにしたので、基本的なredirect(url)というURLをとり、そのページを開く機能を作ったので、私は$_SERVER["PHP_SELF"]にそれを渡しているので、同じページに戻り、基本的にはリフレッシュします。しかし、今私は考えていた、誰かがJSを無効にする場合、私はそれに問題があるつもりです。

私が気付いていない代替手段はありますか? 乾杯

+0

はすでにページを更新しない場合、またはあなたはそれにajaxを使っていますか? – jeroen

+1

Meta Redirectの(HTML) - http://en.wikipedia.org/wiki/Meta_refresh –

+0

ところで、あなたがリダイレクトする必要がある場合にphpの 'header'関数が行く方法です。あなたに与えるべきではありませんあなたのロジックが一番上にあり、最後の出力がブラウザに出力されていれば、何らかのトラブルが発生します。 – jeroen

答えて

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 
+1

lol about F5 –

+0

だから、それは本当にそれについてだと思う:P –

-1

はちょうど追加、すでに送られたヘッダの問題を解決するには、次の

ob_start(); 

をあなたのコードの先頭に。

+0

一般に、根底にある構造的な問題を修正する方が良いです。 – ceejayoz

+0

それをどこに追加しますか?すべての前にで? –

0

ログアウトスクリプトを自分のページにしてみてください。ログアウトリンクをそこにポイントし、セッション変数の設定を解除します。あなたはページの参照元を取得して、それを元に戻すことができます。

+0

"it"は彼らがログアウトするために来たページを意味します。 – slowBear

1

開口部<?phpタグの前またはヘッダがすでに問題

関連する問題