Andreas Korthaus: Userverwaltung Mysql vs .htaccess

Beitrag lesen

Hi TomIRL!

  1. Zunächst möchte ich wissen, wie man ein Formular in einem wie auch immer gelagerten html Dokument /PHP Skript  so absenden kann dass ein Login in einen mit .htaccess geschützten Bereich möglich ist.

Das geht leider nicht.

  1. Gibt es bei Pear oder was auch immer Skripte / Klassen, die einen einfache Userverwaltung auf MySQL /PHP Basis ermöglichen, und wenn ja wie sicher /zuverlässig sind diese? Man muß ja nicht das Rad neu erfinden wenn es was brauchbares gibt.
    Wenn es so etwas nicht gibt, dann suche ich ein Tutorial wie man so etwas am besten erstellt, damit ich nicht unnötig viele Systemkritische Dinge einbaue.
  1. Worin liegen die Vorteile / Nachtele einer Userverwaltung mit .htaccess oder mit MySQL /PHP.

Ich würde so nicht unterscheiden. Mit .htaccess meinst Du vermutlich Basic Authentication. Dies kann seine Daten z.B. auch in MySQL/PostgreSQL speichern (mod_auth_pg, mod_auth_mysql). Auf der anderen Seite, hast Du bei PHP die Wahl ob Du mit einem HTML-Formular und einer Sessen-Lösung(Cookies, url-rewrite) arbeiten willst, oder ebenfalls mit Basic Authentication (letzteres aber nur bei mod_php, Zugriff auf den Benutzernamen bei Basic-Auth hast Du allerdings immer über $_SEVER['AUTH_USER']).
Natürlich hast Du in PHP erheblich weitreichendere Möglichkeiten, was z.B. die Feinheit von Rechten angeht..., auf der anderen Seite hat der Basic-Auth Mechanismus des Apachen(.htaccess) den Vorteil, dass er weniger komplex ist, und komplett außerhalb von PHP abläuft, und somit auch andere Dateien als PHP-Scripte schützt.
Ich habe lange Zeit mit Basic-Authentication auf Basis von PHP gearbeitet, habe inzwischen aber normale "HTML-Logins", da ich hier die volle Kontrolle über den Authentifizierungs-Mechanismus besitze. Basic-Authentication ist auf HTTP-Ebene implementiert, das heißt Du kannst mit PHP weniger Einfluss auf das Verhalten des Clients(Browser) nehmen, als mit einem HTML-Formular. Eine nervige Sache ist z.B., dass die Basic-Authentication, bzw. sämtliche mir bekannten Implementierungen, keinen Mechanismus für ein "logout" vorsehen. Beim IE war es noch einigermaßen einfach den auf HTTP-Ebene zu "überlisten", bei einigen Mozilla-Versionen war es unmöglich, bei anderen klappt es nicht wirklich zuverlässig... also keine gute Basis.

Basic-Authentication ist nicht wirklich für eine Login-Session gedacht. Es ist ein wunderbarer Mechanismus wenn man Dateien nur einem beschränktem Benutzerkreis zugänglich machen will, aber wenn Du z.B. so Sachen hast wie ein Timeout des Logins, oder einen Logout-Button, dann macht es keinen Sinn mehr.

Den Link zum PEAR-Paket hast Du ja schon, das ist sicher eine vernünftige Lösung. Da hast Du auch die Wahl zwischen verschiedenen Mechanismen, wie ich sie hier beschrieben habe.

Grüße
Andreas

--
SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/