Страница защиты паролем, допускающая неправильные пароли

#php #authentication #password-protection

#php #аутентификация #защита паролем

Вопрос:

Мне нужна помощь в создании страницы с защитой паролем для работы на моем сайте портфолио. В настоящее время страница защиты паролем позволяет пользователям проходить, даже если они вводят неправильный пароль. Кто-нибудь может помочь? У меня нет предыдущего опыта работы с PHP.

Код ниже. Живой сайт: https://www.starchevsky.com/pwo.php

(следует перенаправить на starchevsky.com/pwo.html )

 <?php


$password = "";

if(isset($_POST['submit'])) {


$password = $_POST['password'];
header('location: http://www.starchevsky.com/pwo.html');

if($password != "design6020") {

$error['password'] = "Please re-enter the password.";

}

}

?>

<!DOCTYPE html>

<html>

<head>
      
    <meta name="robots" content="noindex">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="Product Designer with 13 years of experience leading projects for clients large and small, including Google, Bank of America, and Chick-fil-A."/>
    <title>Tatiana Starchevsky</title>
    <link href="https://fonts.googleapis.com/css2?family=Montserratamp;family=Prataamp;display=swap" rel="stylesheet">
    <link rel="shortcut icon" href="img/favicon.ico" />    
    <link rel="stylesheet" href="lib/css/foundation.css" />
    <link rel="stylesheet" href="lib/css/style.css" />
    <link rel="stylesheet" href="lib/css/app.css" />
    
    <style>
 
      input[type=text] {
        border: 2px solid #ccc;
        border-radius: 4px;
        border-style:solid;
        -webkit-appearance: none;
        box-shadow: inset 0px 0px 0px 0px red;
      }
        
      input[type=button],
      input[type=submit] {
        background-color: #d50634;
        border: none;
        color: #fff;
        padding: 15px 30px;
        text-decoration: none;
        margin: 4px 2px;
        border-radius: 4px;
        cursor: pointer;
      } 
      
        input:hover[type="submit"] 
        {
            background: #000;
        }
      
    </style>
    </head>

<body>

<em><?php if($password == "design6020") { 

    header('location: http://www.starchevsky.com/pwo.html');
?></em>
    

<!-- PROTECTED INFORMATION GOES HERE -->

<?php } else { ?>

   <section id="headernav"> 
      <div class="grid-x">
          <div class="cell small-6 name">
            <a href="index.html">Tatiana Starchevsky</a>
          </div>
          <div class="cell small-6">
            <ul class="menu align-right">
              <li><a ref="index.html">Projects</a></li>
              <li><a href="mailto:starchevsky@gmail.com">Contact</a></li>
            </ul>
          </div>
      </div>
    </section> 
    
    <section>
        <div class="grid-x align-center align-middle">
          <div class="large-6 small-6 cell">              
              
              <br><br><br><br>
              <h3>Password Protected</h3>
              <br>                
              <p>At the client's request, this project is password protected.</p>
              <small>Please <a href="mailto:starchevsky@gmail.com">email me</a> if you need access.</small>
              <br><br>

              
<?php foreach($error as $errors) {

echo "<p style='color: red;'>".$errors."</p>";

}

?>

<form name="login" action="pwo.php" method="post">


<p>


<input type="text" id="password" class="password" name="password" placeholder="Password" value="<?php if(isset($password)) { echo $password; } ?>"> <input type="submit" name="submit" value="Submit">
    
</p>

<?php } ?>

</form> 

          
</div>

</section> 

     

    <script src="js/vendor/jquery.js"></script>
    <script src="js/vendor/what-input.js"></script>
    <script src="js/vendor/foundation.js"></script>
    <script src="js/app.js"></script>


</body>

</html>
  

Комментарии:

1. используется session для защиты вашей страницы или настройки пароля для этой страницы в панели администратора.

2. Независимо от того, что они вводят, пока форма отправлена, вы делаете header('location: http://www.starchevsky.com/pwo.html'); почему?

3. Как я уже упоминал, у меня нет предыдущего опыта работы с PHP, поэтому этот код я нашел в Интернете. Можете ли вы уточнить, как использовать сеанс или что именно нужно обновить с помощью header(‘location: …)?