2016-10-03 13 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

関連する問題