2011-01-23 29 views
0

私は他のすべてのページに含まれているPHPファイルを持っているので、コードを修正して永遠にループしないようにしたいのです。ファイルが "somename.php"とリダイレクトされていない場合、リダイレクト

基本的に、ユーザーがスプラッシュページのメンバーでない場合、他のページからリダイレクトしたい場合、splash.phpに達したときにエラーが発生し、同じリダイレクトが繰り返し実行されます(無限ループ)。

だから私は

if (!isMember()) { 
    header('Location: ' . MY_URL_ROOT . 'splash.php'); 
} 

答えて

2

おかげで、次は十分です現在のページがsplash.phpされていない場合にのみ実行するコードを変更したい:ちなみに

if (!isMember() && $_SERVER['PHP_SELF'] != MY_URL_ROOT . 'splash.php') { 
    header('Location: ' . MY_URL_ROOT . 'splash.php'); 
    exit(); 
} 

を、あなたは常にべきサーバーがスクリプトの残りの部分を処理し続けることを特に望まない限り、ヘッダーを使用してリダイレクトした後にexitと呼び出してください。

+0

+1、削除済みの鉱山。 'PHP_SELF'は' REQUEST_URI'よりも優れています。なぜなら、前者はクエリ文字列をすべて除外してしまうからです。 – Yahel

+0

ありがとうございます。しかし、私のブラウザには「このWebページにはリダイレクトループがあります」というように無限ループが発生しています。どのように無限ループからそれを防ぐことができますか?ありがとう! –

+0

@Adrian M.デバッグの目的で、リダイレクトを無効にし、$ _SERVER ['PHP_SELF']とMY_URL_ROOT.'splash.php 'をエコーアウトします。 –

関連する問題