2017-02-10 72 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 –

相关问题