我运行此代码来保护我的网站,但我想知道如何在没有数据库的情况下使用多个用户。 我读到你可以使用文本文件,但不知道如何,我的PHP概念是最小的。
感谢您的帮助。
<?php
session_start();
$username = "test";
$password = "test";
if(isset($_GET['logout']))
{
unset($_SESSION["login"]);
echo "You have logout ... ";
echo "[<a href='" . $_SERVER['PHP_SELF'] . "'>Login</a>]";
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !isset($_SESSION["login"]))
{
header("WWW-Authenticate: Basic realm=\"Ghost SMS\"");
header("HTTP/1.0 401 Unauthorized");
$_SESSION["login"] = true;
echo "You are unauthorized ... ";
echo "[<a href='" . $_SERVER['PHP_SELF'] . "'>Login</a>]";
exit;
}
else
{
if($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password)
{
echo "Welcome ";
echo "[<a href='" . $_SERVER['PHP_SELF'] . "?logout'>Logout</a>]";
}
else
{
unset($_SESSION["login"]);
header("Location: " . $_SERVER['PHP_SELF']);
}
}
// content here
?>
答案 0 :(得分:0)
试试这个:
$users = array('user' => 'password',
'user2' => 'pass',
'user3' => 'pass',
);
然后更改此行
if($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password)
到这个
if (isset($users[$_SERVER['PHP_AUTH_USER']]) // user exists
&& ($users[$_SERVER['PHP_AUTH_USER']] == $_SERVER['PHP_AUTH_PW']) // password matches
)
此外 - 如果密码失败,您需要再次吐出标题(而不是进行位置重定向) - 否则,如果用户输入无效的用户/密码,将永远不会提示用户输入正确的密码会导致重定向循环)