2017-02-10 114 views
-6

所以我希望有人可以給我一個簡單的功能或解決方案,把我的網站默認頁面。這意味着如果用戶嘗試訪問我的網站的另一個頁面,他不能。他需要通過這個默認頁面。因爲在我的網站中我有一個管理頁面,我不想讓簡單的用戶訪問它。我在互聯網上做了一些研究,但沒有找到解決我的問題的好方法。有什麼辦法可以簡單地通過代碼來完成,而不是改變索引文件?更具體地說,我希望它只適用於我的一個網站,而不是所有的網站。我有一個管理員登錄系統,但既然你可以直接通過輸入地址訪問管理頁面,而不使用登錄系統,這是一個問題。我確實嘗試做索引,但問題是當我嘗試登錄時,它將重定向到默認頁面而不是管理頁面。我會感謝任何幫助。最好問候一位年輕的程序員。如何使用php爲我的網站應用程序創建默認頁面?

這裏是index.php文件

<?php 

header('Location: Foredeckmain.php'); 
exit; 
?> 

這裏是登錄頁面

<?php 
    ob_start(); 
    session_start(); 
?> 

<html lang = "en"> 

    <head> 
     <title>Foredeck Login.com</title> 
     <link href = "css/bootstrap.min.css" rel = "stylesheet"> 

     <style> 
     body { 
      padding-top: 40px; 
      padding-bottom: 40px; 
      background-color: #6495ED; 
     } 

     .form-signin { 
      max-width: 330px; 
      padding: 15px; 
      margin: 0 auto; 
      color: #000000; 
     } 

     .form-signin .form-signin-heading, 
     .form-signin .checkbox { 
      margin-bottom: 10px; 
     } 

     .form-signin .checkbox { 
      font-weight: normal; 
     } 

     .form-signin .form-control { 
      position: relative; 
      height: auto; 
      -webkit-box-sizing: border-box; 
      -moz-box-sizing: border-box; 
      box-sizing: border-box; 
      padding: 10px; 
      font-size: 16px; 
     } 

     .form-signin .form-control:focus { 
      z-index: 2; 
     } 

     .form-signin input[type="text"] { 
      margin-bottom: 0 px; 
      border-bottom-right-radius: 0; 
      border-bottom-left-radius: 0; 
      border-color:#000000; 
     } 

     .form-signin input[type="password"] { 
      margin-bottom: 10px; 
      border-top-left-radius: 0; 
      border-top-right-radius: 0; 
      border-color:#000000; 
     } 

     h3{ 
      text-align: ; 
      color: #000000; 
     } 
     h1{ 
      text-align: ; 
      color: #000000; 
     } 
     </style> 

    </head> 

<?php 
     $msg = ''; 

     if (isset($_POST['login']) && !empty($_POST['username']) 
      && !empty($_POST['password'])) { 

      if ($_POST['username'] == 'foredeck' && 
       $_POST['password'] == 'foredeck1') { 
       $_SESSION['valid'] = true; 
       $_SESSION['timeout'] = time(); 
       $_SESSION['username'] = 'foredeck'; 
       $msg ='Connexion Réussite'; 
       echo "<script type='text/javascript'>alert('Connexion Réussite'); 
       window.location='foredeck.php'; </script>"; 

       header("refresh:3 location: foredeck.php"); 

      }else { 
       $msg='Identifiant ou Mot de Passe incorrecte'; 
       $msg = "<script type='text/javascript'>alert('$msg')</script>"; 
       } 
      } 
    ?> 
    </div> <!-- /container --> 

    <div class = "container"> 

    <form class = "form-signin" role = "form" 
     action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); 
     ?>" method = "post"> 
     <h4 class = "form-signin-heading"><?php echo $msg; ?></h4> 
     <h1>[email protected]</h1> 
     <h3>Entrer l'identifant et le mot de passe:</h3> 
     <input type = "text" class = "form-control" 
       name = "username" placeholder = "Identifiant " 
       required autofocus></br> 
     <input type = "password" class = "form-control" 
       name = "password" placeholder = "Mot de passe " required> 
     <br> 

     <button class = "btn btn-lg btn-primary btn-block" type = "submit" 
       name = "login">Se connecter</button> 
    </form> 
    </div> 
    </body> 

這裏是註銷部分

<?php 
    session_start(); 
    unset($_SESSION["username"]); 
    unset($_SESSION["password"]); 

    echo 'Déconnexion en cours...'; 
    header('Refresh: 2; URL = foredeckmain.php'); 
?> 
+0

不知道你想做什麼。只有代碼(例如index.php),您不能阻止其他用戶訪問具有完整url的管理頁面。此外,你有一個管理員登錄系統,如果普通用戶訪問管理頁面,這應該不是問題。也許你可以更多地解釋你想要做什麼 – Prisoner

+0

好吧,如果我在地址欄中輸入網頁的確切地址,那麼在以管理員身份登錄後,您可以正常訪問網頁,我可以訪問該網頁,但我不想那樣做。您必須登錄才能訪問此頁面,否則它會將您重定向到我的主頁上。登錄頁面=>管理頁面。如果我輸入管理頁面的地址,我可以訪問它,這是沒有登錄的問題。 –

+0

你應該改變「登錄系統」而不是**索引**文件。您可以在不登錄的情況下訪問管理頁面,它可能會將您的登錄系統存儲到_remember_您。你可以重新訪問並不意味着其他人可以。 – Prisoner

回答

1

是真實的,我沒有你爲什麼要做到這一點,但無論如何理解的理由。

但是,如果我是你,我會做下一步

  1. 配置Apache/Nginx的/或你正在使用的爲您的網站/通過您的默認頁面處理所有的請求(的index.php或類似的東西)

  2. 在index.php你需要了解你的用戶需要什麼頁面。如果它不存在顯示他的404頁面。

  3. 如果存在頁面並且它不是您的默認頁面,並且用戶以前沒有訪問過它,請將其重定向到那裏。
  4. 在默認頁面,寫會話e.g $_SESSION['passed_default'] = 1;

  5. 現在,在你的index.php,你需要檢查

    if(isset($_SESSION['passed_default']) && $_SESSION['passed_default']) { //Show desired page } else { //redirect to default }

+0

這是一個調查,讓我們說默認頁面給你的選項:1-管理員,然後你必須登錄編輯調查2 - 客戶回答調查。 –

+0

謝謝@Rulisp –

相關問題