michael: Zugriff auf .htaccess mit PHP - Verzeichnisschutz?

Hallo,

ich würde gerne ein Verzeichnis schützen, ähnlich wie mit .htaccess, allerdings möchte ich, dass der User seine Benutzerdaten in ein Formular auf der Website eingibt und nach der Eingabe ein neues Fenster erhält.

Gibts da eine einfache Möglichkeit?

Hab mal gelesen (link ist unten), dass man mit PHP auf .htaccess zugreifen und die Abfrage dann über ein HTML Formular gestalten kann. Hat jemand eine Idee, wie das funktioniert?

Gruß

Michael

  1. Moin!

    Hab mal gelesen (link ist unten), dass man mit PHP auf .htaccess zugreifen und die Abfrage dann über ein HTML Formular gestalten kann. Hat jemand eine Idee, wie das funktioniert?

    Das sind zwei Paar Schuhe:

    1. Man kann natürlich ein HTML-Formular nehmen und dort Zugangsdaten eingeben lassen. Das ist aber ein stinknormales Formular und bietet keinerlei Zugangskontrolle via .htaccess. Es ist _nicht_ möglich, die Anmeldedaten für .htaccess in einem HTML-Formular eingeben zu lassen.

    2. Das vom Browser angezeigte Dialogfeld kann man auch mit PHP generieren lassen. Dazu muß man nur genau dieselben Header ausgeben, die der Webserver auch einfach ausgeben würde, also essentiell Status-Code 401 (nebst ein paar anderen Angaben, auf die und deren Reihenfolge es unbedingt ankommt. Mehr dazu sagt dir php.net).

    Es ist sehr sinnvoll, die Userauthentifizierung dem .htaccess-Mechanismus zu überlassen. Wenn darüber der Benutzer erfolgreich angemeldet wurde, kann PHP über $HTTP_SERVER_VARS["REMOTE_USER"] den Usernamen abfragen. Wenn PHP als Apache-Modul läuft, kann es sogar das Paßwort abfragen ($PHP_AUTH_USER und $PHP_AUTH_PW).

    http://www.php.net/manual/de/features.http-auth.php

    - Sven Rautenberg

    1. Das sind zwei Paar Schuhe:

      1. Man kann natürlich ein HTML-Formular nehmen und dort Zugangsdaten eingeben lassen. Das ist aber ein stinknormales Formular und bietet keinerlei Zugangskontrolle via .htaccess. Es ist _nicht_ möglich, die Anmeldedaten für .htaccess in einem HTML-Formular eingeben zu lassen.

      Hallo Sven,

      danke für die schnelle Antwort.

      Welche Möglichkeit habe ich denn, einen geschützten Bereich einzurichten, bei dem die Anmeldung über ein Formular erfolgt?

      Zur Info: Auf dem Server läuft PHP, CGI, Perl, Python und MySQL.

      Gruß

      Michael

      1. Yo!

        Welche Möglichkeit habe ich denn, einen geschützten Bereich einzurichten, bei dem die Anmeldung über ein Formular erfolgt?

        Alle Möglichkeiten natürlich. Du mußt dir "nur" was eigenes selbst ausdenken und dafür sorgen, daß es sicher ist. Genau der letzte Punkt dürfte etwas kniffliger werden, denn .htaccess ist geprüft und für gut befunden worden von tausenden von Entwicklern, schon jahrelang. Dein eigener Code ist ungeprüft und wurde nur von dir angeschaut.

        Zur Info: Auf dem Server läuft PHP, CGI, Perl, Python und MySQL.

        CGI kann da garnicht "laufen", weil's eine Schnittstelle ist, an die z.B. Perl "andocken" kann, aber auch PHP und Python, oder beispielsweise C oder C++. Nur so zur Info.

        - Sven Rautenberg

        1. Alle Möglichkeiten natürlich. Du mußt dir "nur" was eigenes selbst ausdenken und dafür sorgen, daß es sicher ist. Genau der letzte Punkt dürfte etwas kniffliger werden, denn .htaccess ist geprüft und für gut befunden worden von tausenden von Entwicklern, schon jahrelang. Dein eigener Code ist ungeprüft und wurde nur von dir angeschaut.

          Ich werde mir dann mal was ausdenken...

          Gruß aus Hamburg

          Michael