【问题标题】:Using multiple passwords for a simple password-protected page为简单的受密码保护的页面使用多个密码
【发布时间】:2016-03-08 14:00:07
【问题描述】:

我正在尝试使用 PHP 保护我网站中的某些页面,但没有创建数据库或用户名。

我按照这篇文章评论中的说明进行操作:What is the best way to password protect folder/page using php without a db or username 效果很好!但我想更进一步并更改代码以便在同一页面上接受多个密码。这可能吗?

我想它会是这样的:检查检索到的值是否存在于 $password 数组中

//access.php

<?php
//put sha1() encrypted password here - example is 'hello'
$password = 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d';

session_start();
if (!isset($_SESSION['loggedIn'])) {
   $_SESSION['loggedIn'] = false;
}

if (isset($_POST['password'])) {
  if (sha1($_POST['password']) == $password) {
    $_SESSION['loggedIn'] = true;
  } else {
     die ('Incorrect password');
  }
} 

if (!$_SESSION['loggedIn']): ?>

<html><head><title>Login</title></head>
<body>
 <p>You need to login</p>
 <form method="post">
  Password: <input type="password" name="password"> <br />
  <input type="submit" name="submit" value="Login">
</form>
</body>

<?php
exit();
endif;
?> 

【问题讨论】:

    标签: php html forms passwords password-protection


    【解决方案1】:

    你可以将你的密码设置为一个数组,然后像这样循环槽来检查它们

    $passwords = [
        'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d',
        'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d',
        'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d',
    ];
    
    
    if (isset($_POST['password'])) {
    
      $result = false;
    
      foreach($passwords as $password){
          if (sha1($_POST['password']) == $password) {
            $result = true;
         }
      }
    
      if($result) {
         $_SESSION['loggedIn'] = true;
      } else {
         die ('Incorrect password');
      }
    
    }
    

    【讨论】:

      【解决方案2】:

      制作一个密码数组,然后使用 in_array 函数检查用户密码是否在其中。

      要更改的行是:

      $passwords = array("aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", "etc..");
      

      和

      if (in_array(sha1($_POST['password']), $passwords)) {
      

      【讨论】:

      • 你成功了,汤姆!谢谢您的帮助! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多