-4

サイトを保護するためにこのコードを実行していますが、データベースなしで複数のユーザーを使用する方法を知りたいです。テキストファイルでできることを読みましたが、方法がわかりません。私の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

?>
4

1 に答える 1

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
   )

また、パスワードが失敗した場合は、(場所のリダイレクトを行う代わりに) ヘッダーを再度吐き出す必要がありますリダイレクト ループ)

于 2012-09-01T07:19:47.227 に答える