2011-07-20 1 views
0

イムユーザーがログインしていない場合は、リダイレクトを作成しようと、私はここでトラブルPHPは声明を継続しますか?

をサイコーいます。これは、正常に動作しているが、それが遅れていると見ることができイム

<?php 
if (is_user_logged_in()) { 
?> 

/*My Content*/ 

<?php 
    } else { 
     echo '<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.*****.com/non-member.php">'; 
    } 
?> 

を用いる方法イムですページがリダイレクトされるまでに数秒間

私がしたいことは、このようなものです。

<?php 
if (is_user_logged_in()) { 
    /*IGNORE NEXT STATEMENT*/ 
} else { 
     echo '<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.****.com/non-member.php">'; 
    } 
?> 

これが可能かどうかわかりませんが、私は何とかそこにmehodがあると思います。行動のそのタイプの

+1

違いは何ですか? :? – KingCrunch

答えて

8

、あなたはヘッダ使用してオフには本当に優れている:

<?php 
// place at the top, before anything (including whitespace). 
if(!is_user_logged_in()) { 
    header("Location: http://www.****.com/non-member.php"); 
    die(); // you don't want the rest of the page showing. 
} 
?> 

あなたが最初のページを参照してくださいにログインしていない人をせずにしようとしているものを行います。

+0

乱用しないでください。die(); –

+0

しようとしていません。この状況でのdie()またはexitは、残りのファイルをelseステートメントにラップするよりはるかに明白です。 – cwallenpoole

+0

'exit'は問題ありません。 'die'はエラーシグナリングのためのものです –

0
if (!is_user_logged_in()) 
{ 
     header("Location: http://www.****.com/non-member.php"); 
     exit; 
} 
//rest of content. 
0

リダイレクトするためLocationヘッダを使用する:この方法を使用

<?php 
if (is_user_logged_in()) { 
    /* snip */ 
} else { 
    header("Location: http://www.****.com/non-member.php"); 
} 
?> 

とすぐにHTTPヘッダーを受け取っており、HTMLページ自体は完全に無視されるようにリダイレクトをトリガします。

1

ではなく

if (!is_user_logged_in()) { 
    header("Location: http://www.*****.com/non-member.php"); 
} 

を試してみてください。 !は、if()テストの結果を逆にするブール型の「not」であり、header()コールは、HTMLに埋め込まれたメタヘッダーを発行するよりも冗長性が低く信頼性の高いメソッドです。

0

is_user_logged_in()がfalseの場合、そのif文内のコードは実際には実行されず、かなり無視されます(エラーの場合は引き続き解析されます)。あなたの遅延はおそらくあなたのリダイレクトから来ています。ヘッダ()を使ってリダイレクトしてみてください。例:

header( 'Location:http://www.google.com');

+0

遅延はMETA-リダイレクトは、DOMが完全にロードされた後にのみ '実行'されるため、ここではほとんどの人がHTTPヘッダーリダイレクトを使用することを提案しています。 – feeela

0

はこれを試してください:あなたはこの

<?php 
if (!is_user_logged_in()) { 
    echo '<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.****.com/non-member.php">'; 
} else { 
    Do your thing 
} 
?> 

を試していけないのはなぜ状態が確認されていない場合

<?php 
if (!is_user_logged_in()) { 
     die(header("Location: http://www.****.com/non-member.php")); 
} 
?> 
0

条件の先頭に配置"!"をチェックします。

関連する問題