Didi: HTTP-Authentifizierung

Beitrag lesen

Allgemeiner Tipp: Wenn eine Bedingung, so wie hier, nicht so tut, wie sie tun soll, obwohl sie es eigentlich tun müsste, dann ist es immer hilfreich, die beteiligten Variablen zur Kontrolle auszugeben. Ändere deinen Code wie folgt:

<?php
  //Benutzername und Passwort für die Authentifizierung
  $benutzername = 'rock';
  $passwort = 'roll';

var_dump($_SERVER['PHP_AUTH_USER']);
var_dump($_SERVER['PHP_AUTH_PW']);
die();

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
    ($_SERVER['PHP_AUTH_USER'] != $benutzername) || ($_SERVER['PHP_AUTH_PW'] != $passwort)) {
    // Zugangsdaten falsch, Authenfizizierungs-Header senden
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Guitar Wars"');
    exit('<h2>Guitar Wars</h2>Tut uns wirklich Leid, aber auf diese Seite können ' .
         'Sie nur mit den richtigen Zugangsdaten zugreifen.');
  }
?>