【问题标题】:How do I make a default page for my website application with php?如何使用 php 为我的网站应用程序创建默认页面?
【发布时间】:2017-06-28 08:01:09
【问题描述】:

所以我希望有人能给我一个简单的功能或解决方案,在我的网站上放置一个默认页面。这意味着如果用户试图访问我网站的另一个页面,他就无法访问。他需要通过这个默认页面。因为在我的站点中,我有一个管理页面,我不想让一个简单的用户访问它。我在互联网上做了一些研究,但我没有找到一个很好的答案来解决我的问题。有没有办法简单地通过代码而不更改索引文件来做到这一点?更具体地说,我希望它仅适用于我的一个网站,而不适用于所有网站。我有一个管理员登录系统,但是由于您可以通过输入地址而不使用登录系统直接访问管理页面,所以这是一个问题。我确实尝试过建立索引,但问题是当我尝试登录时,它会将我重定向到默认页面而不是管理页面。我将不胜感激。最好的问候一个年轻的程序员。

这里是 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>Foredeck@Admin</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');
?>

【问题讨论】:

  • 不确定你想做什么。仅使用代码(例如 index.php),您无法阻止其他用户使用完整 url 访问管理页面。此外,您有一个管理员登录系统,如果普通用户访问管理页面,这应该不是问题。也许你可以解释更多你想做什么
  • 好吧,如果我在地址栏中输入您以管理员身份登录后正常获得的网页的确切地址,我可以访问该页面,但我不希望那样。您必须登录才能访问此页面,否则它会将您重定向到我的主页。登录页面 => 管理页面。如果我输入管理页面的地址,我可以访问它,这就是没有登录的问题。
  • 您应该更改“登录系统”而不是 index 文件。您无需登录即可访问管理页面,可能您的登录系统已存储会话以记住您。您可以重新访问并不意味着其他人可以。

标签: php indexing directory default


【解决方案1】:

说实话,我不明白你为什么要这样做,但无论如何。

但如果我是你,我会采取下一步行动

  1. 配置 Apache/Nginx/或您在网站上使用的/通过默认页面(index.php 或类似内容)处理您的所有请求

  2. 在 index.php 中,您需要了解您的用户需要什么页面。如果不存在给他显示 404 页面。

  3. 如果页面存在并且它不是您的默认页面,并且用户之前没有访问过它,请将他重定向到那里。
  4. 在您的默认页面中,写入会话,例如$_SESSION['passed_default'] = 1;

  5. 现在,您需要在 index.php 中检查

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

【讨论】:

  • 好吧,这是一项调查,假设默认页面为您提供选项:1- 管理员然后您必须登录才能编辑调查 2- 客户回答调查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
相关资源
最近更新 更多