一尘不染

在没有数据库或用户名的情况下使用php密码保护文件夹/页面的最佳方法是什么

php

在没有数据库或用户名但使用数据库的情况下,使用php密码保护文件夹的最佳方法是什么。基本上,我有一个页面,该页面将列出组织的联系人,并且需要使用密码保护该文件夹,而无需为每个用户提供帐户。只有一个密码会经常更改并分发给该组。我知道这不是很安全,但我永远不知道如何做到这一点。最好的方式。

如果用户正确输入密码后可以记住一段时间,那就太好了。


我正在做David Heggie所建议的,除了没有cookie之外。看起来确实不安全,但是最好设置一个不好的密码保护,然后再没有密码保护。

这是针对内部站点的,人们在其中会忘记自己的登录名和密码,并且永远不会经历 注册 过程……除非真的很容易,他们根本不会使用该系统。

我想查看其他解决此问题的方法。

由于用户群不是非常精通技术的人,还有其他方法可以做到这一点。


阅读 272

收藏
2020-05-29

共1个答案

一尘不染

您可以使用如下形式:

//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>
</html>

<?php
exit();
endif;
?>

然后在要保护的每个文件上,放在顶部:

<?php
require('access.php');
?>
secret text

这不是一个很好的解决方案,但它可能会做您想要的

编辑

您可以添加一个logout.php页面,例如:

<?php
    session_start();
    $_SESSION['loggedIn'] = false;
?>
You have logged out
2020-05-29