2017-10-15 29 views
0

これは最初はかなり混乱しているように思えますが、私のウェブサイトにはログインシステムがあります。私は私のウェブサイトにもフォーラムを持っています。私がしたいことは、人々がフォーラムボタンをクリックしてログインしていない場合はログインページに表示されますが、そうであればフォーラムに表示されます。私はその場所にそれを持っていますが、私はもう一つのことをやろうとしています。私はまた、人々がURLに入り、www.example.com/forums.phpを入力すると、ログインしているかどうかをチェックし、ログインしていない場合はログインページに戻し、そこに連れて行きなさい。私はこれで試してみましたが、それは私が述べたように最初の部分のためだけに働いています。あなたのforums.phpの上にログインしていない場合、ユーザーを別のページにリダイレクトしますか?

<!-- Main Content --> 
     <p class="japanese">プレーンズ</p> 
     <p class="dev" contenteditable>currently under development</p> 
     <p class="clock"></p> 
     <p class="login"><a href="login.php">login</a></p> 
     <p class="register"><a href="register.php">register</a></p> 
     <?php 
      if (isset($_SESSION['u_username'])) { 
       echo '<p class="forums"><a href="forums.php">forums</a></p>'; 
      } else { 
       echo '<p class="forums"><a href="login.php">forums</a></p>'; 
      } 
     ?> 

答えて

1

、セッションがアクティブであるかどうかを確認し、そうでない場合、HTTPリダイレクトを発行します。

<?php 
if (!isset($_SESSION['u_username'])) { 
    header('Location: login.php'); 
    exit(); 
} 

exitユーザーがリダイレクトされている場合は、ページ上の任意のより多くのコードを実行しないようにすることが重要です。

出力が行われる前にリダイレクトを配置する必要があります。つまり、実行中のファイルの先頭にリダイレクトする必要があります。

最初は動作しませんでした
+0

が、私は代わりに、あなたが持っていたものを、少しので、あなたのコードを編集したが、私が入れ:? '「これは助けてくれてありがとうございました。 – abyss

+0

あなたが望むようにこの_in 'forums.php'_を置くなら、forums.php :-)にリダイレクトするのは非常に奇妙です。しかし、私の答えには'! 'がありませんでした。今すぐ追加しました。 – MatsLindh

+0

うん、私はそれに気づき、forums.phpの中に入れたコードを試してみたところ、フォーラムにログインしてクリックするまで、すべてがうまくいきました。私がそうしたとき、それはあまりにも多くリダイレ​​クトされたというGoogleのエラーを述べました。だから私はあなたのコードをindex.phpに入れてしまいましたか? – abyss

関連する問題