2017-10-15 152 views
0

這可能看起來很混亂,但我的網站上有一個登錄系統。我的網站上也有一個論壇。我想要做的就是如果人們點擊論壇按鈕並且他們沒有登錄,就會把他們帶到登錄頁面,但是如果他們是,他們會把他們帶到論壇。我有這個,但我正在努力做更多的事情。我也想這樣做,如果人們進入網址並輸入www.example.com/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

在您forums.php的頂部,檢查會話處於活動狀態,如果沒有,發出HTTP重定向。

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

exit重要的是要避免運行頁面上的任何更多的代碼,如果用戶被重定向。

重定向應該放在任何輸出發生之前,這意味着它應該在被執行的文件的頂部。

+0

這並沒有起初工作,但我編輯了一下你的代碼,所以而不是你有什麼,我把: '<?php session_start();如果(isset($ _ SESSION ['u_username'])){ header('Location:forums.php'); exit(); } else { header('Location:login.php'); exit(); } ?>'這似乎工作,所以感謝您的幫助。 – abyss

+0

如果你把這個_in'forums.php'_正如你所說的那樣,那麼它必須重定向到forums.php非常奇怪:-)然而,在我的答案中有一個缺失的'!',所以我現在添加了它。 – MatsLindh

+0

是的,我注意到了,我嘗試了我的代碼,我把它放在forums.php裏面,注意到一切都很好,直到我登錄並在論壇中點擊。當我這樣做時,它表示谷歌錯誤,說它重定向太多。那麼我會把你的代碼放在index.php中,如果我確實能完全工作嗎? – abyss

相關問題