2016-10-03 4 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"); 
} 

이를 지우려면하지 않으면 것은 다시 로그인 페이지로 리디렉션합니다 (PHP 태그에서 분명히) index.php 파일의 맨 위에 놓기 만하면 색인 페이지가로드 될 때마다 확인됩니다.

+0

안녕하십니까? @twigg 응답 해 주셔서 감사합니다. 나는 이것을 index.php에 넣었고, 여전히 배우면서 메신저가 누군가 나를 도와주었습니다. – RedZ

+0

님이 답변을 – twigg

+0

업데이트했습니다. 내가 할 수 있으면 한 가지 더 질문이 있습니다. 내 페이지는 연락처 목록입니다. 연락처 추가/제거 단추가 있습니다. 연락처를 추가/삭제하기 전에 먼저 로그인해야하지만 이미 어떤 연락처가 이미 있는지 볼 수있는 방법이 있나요? – RedZ

관련 문제