Hallo Manfred,
Auf einer Website befindet sich ein Login-Formular (z.B. /login.php). Wenn der User dort seine Zugangsdaten einträgt, soll er Zugriff auf einen bestimmten Ordner bekommen (z.B. /sicherer_ordner/index.html).
- Die Dateien sollen im Browser angezeigt werden können (es ist kein Up-/Download-Ordner, d.h. die Dateien sollen eigentlich nicht erst durch PHP durchgeparst werden, da auch Templates und komplexe Script in dem sicheren Ordner liegen und es das ganze dann höchstwahrscheinlich zerschiesst.
Du brauchst sie ja nicht parsen, du musst sie nur ausgeben.
Da es sich um hunderte von Dateien im sicheren Ordner (unter anderem auch Graphiken) handelt, kann ich nicht in jede Datei eine Abfrage integrieren.
- Das größte Problem ist, daß wenn ein User direkt über den Link in /sicherer_ordner/unterordner/irgendeine_datei.gif springt, ein Schutz dieser Datei wahrscheinlich nur über .htaccess realisiert werden kann. Allerdings kann ich nirgends eine Möglichkeit finden, die unschöne htaccess Abfrage-Maske durch eine Kombination aus Login-Formular und PHP zu umgehen.
Das ist vielleicht nicht das Schönste - auf jeden Fall aber das Sicherste.
Da der User in den meisten Fällen bereits auf der Website eingeloggt ist, finde ich es unsinnig, die Login-Daten nochmals in eine htaccess-Maske eintragen zu müssen.
http://php3.de/manual/de/features.http-auth.php hat mir nicht wirklich weitergeholfen, denn soweit ich das verstehe, ist damit nur möglich, wieder die unschöne HTTP-Login-Maske zu erzwingen?
Ja, das bietet dir nur Zugriff auf Benutzernamen und Passwort von HTTP-auth.
Gibt es eine Möglichkeit, die Login-Daten irgendwie zu übergeben, so dass keine htaccess-Maske erscheint?
Mein Vorschlag:
* Entweder du lenkst alle Anfragen an eine Datei innerhalb des sicheren
Ordners auf ein PHP-Script (mit mod_rewrite).
* Oder du sperrst den sicheren Ordner (Deny from All), und erlaubst den
Zugriff nur über ein PHP-Script (mit PATH_INFO, d.h. /sicher.php/unterordner/datei;
$_SERVER['PATH_INFO'] enthält dann "/unterordner/datei"*).
Und in diesem PHP-Script fragst du dann halt die Login-Daten ab.
Viele Grüße aus Freiburg,
Marian
* ob mit oder ohne / am Anfang weiß ich nicht mehr
Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
<!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->