2016-10-03 122 views
0

我的登录页面正常工作。强制登录页面首先显示

它不使用用户数据库,它在代码中使用预定义的用户名和密码。我无法做的唯一事情就是在index.php之前首先显示登录页面。任何人都可以键入index.php,并且该网站将打开,因此它不使用登录页面。

这里是我的login.php

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

<html lang = "en"> 

<head> 
    <title>Alpine VW Extension List</title> 
    <link href = "css/bootstrap.min.css" rel = "stylesheet"> 

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

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

    .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="email"] { 
     margin-bottom: -1px; 
     border-bottom-right-radius: 0; 
     border-bottom-left-radius: 0; 
     border-color:#017572; 
    } 

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

    h2{ 
     text-align: center; 
     color: #017572; 
    } 
    </style> 

</head> 

<body> 

    <h2>Welcome, Please Login</h2> 
    <div class = "container form-signin"> 

    <?php 
     $msg = ''; 

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

      if ($_POST["username"] == "admin" && 
       $_POST["password"] == "admin") { 
       $_SESSION["valid"] = true; 
       $_SESSION["timeout"] = time(); 
       $_SESSION["username"] = "admin"; 

       header("location:index.php"); 
      }else { 
       $msg = 'Wrong username or password'; 
      } 
     } 
    ?> 
    </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> 
     <input type = "text" class = "form-control" 
      name = "username" placeholder = "username = tutorialspoint" 
      required autofocus></br> 
     <input type = "password" class = "form-control" 
      name = "password" placeholder = "password = 1234" required> 
     <button class = "btn btn-lg btn-primary btn-block" type = "submit" 
      name = "login">Login</button> 
    </form> 


    </div> 

</body> 
</html> 
+1

检查登录索引页 - 如果他们没有登录重定向到登录页面。 –

回答

1

您需要设置一个会话变量的东西就像你在上面的代码所做的是罚款。

$_SESSION["valid"] = true; 

然后index.php网页上,你需要启动会话,并检查有效会话变量设置为true,如果不重定向回登录页面

session_start(); 
if($_SESSION["valid"] != true){ 
    header("location: login.php"); 
} 

要清除此从你的评论开始,你只需将它放在你的index.php文件的顶部(很明显在PHP标签中),并且每次你的索引页被加载时都会检查它。

+0

你好,先生@twigg谢谢你的回应。我将如何把这个在index.php中,因为我仍然在学习,并且有人帮我做了那部分。 – RedZ

+0

更新了答案 – twigg

+0

谢谢你完美的工作!如果可以,我还有一个问题。我的页面是联系人列表。用按钮添加/删除联系人。有没有办法让我这样做,所以你必须先登录,然后才能添加/删除联系人,但你至少能够看到已经存在的联系人。 – RedZ