Daten aus Login per .htaccess lesen

Klein0r

Erfahrenes Mitglied
Hallo zusammen,

gibt es eine Möglich den Benutzernamen (und/oder das Passwort) in PHP abzufragen welches bei einem Login via .htaccess und .htpasswd eingegeben wurde?

So direkt besteht ja erstmal keine Verbindung dahin, oder?
Sind ja zwei komplett unabhängige Lösungen - oder gibts da Schnittstellen?

lg
 
Danke - hatte mittlerweile den Link auch gefunden :)
Dabei ist aber nicht die Rede von einer .htaccess-Datei sondern das ganze wird über PHP gesteuert. Fast sogar noch besser! So komme ich auch an die entsprechenden Variablen.

Allerdings ist mir noch unklar wie ich bei einem Fehlversuch das Fenster für Benutzer und Passworteingabe erneut öffne.

lg
 
PHP interessiert nicht, ob du die Daten in eine Webformular eintippst oder in dem Fenster, dass du per htaccess öffnest, oder eben per
PHP:
header('WWW-Authenticate: Basic realm="My Realm"');

Falls die Daten falsch sind, sendest du einfach einen 401 unauthorized Header und blendest das Fenster nochmal ein.
 
Alles klar ich hatte gerade ein paar Tomaten auf den Augen...

Allgemein interessiert mich nur das Passwort - also ein Passwort für alle Benutzer.

PHP:
if (!isset($_SERVER['PHP_AUTH_USER'])) {
	
    header('WWW-Authenticate: Basic realm="Geschützter Bereich"');
    header('HTTP/1.0 401 Unauthorized');
    exit;
	
} else {
	if ($_SERVER['PHP_AUTH_PW'] == 'geheim') {
		define('USERNAME', $_SERVER['PHP_AUTH_USER']);
	}
	else {
	    header('WWW-Authenticate: Basic realm="Geschützter Bereich"');
	    header('HTTP/1.0 401 Unauthorized');
		exit;
	}
}

Nun wird der Benutzername abgefragt und wenn das Passwort = geheim ist wird unabhängig vom Benutzernamen der Zugang gestattet. Genau wie ich es wollte ;)

Keine Sorge - ist nur für mich und einen Freund - daher eine sehr einfache Technik mit nur einem Passwort. Werde es eventuell so aufziehen das jede Woche ein neues Passwort vergeben wird und das Passwort dann an alle Benutzer gesendet wird die in einer Mailliste stehen oder so. Ganz einfach also ;) Nu welches Wörterbuch ich dafür nutze ist mir noch nicht ganz klar...

Aber erstmal wird das ganze so reichen!
Das gute ist ja auch irgendwie das nun die ganze .htaccess/.htpasswd-Geschichte wegfällt. Sehr gut für mich da das Script dann auch portabel bleibt und man sich die absoluten Pfadangaben (sehr lästig) in htaccess-Dateien spart.

Dankeschön ;)

lg
 
Ähm was bedeutet folgender Satz:
Die HTTP-Authentifizierung durch PHP ist nur verfügbar, wenn PHP als Apache-Modul läuft und funktioniert daher nicht mit der CGI-Version.

Und wie finde ich das raus ob es als Modul läuft?
Auf meinem Webserver funktioniert oben genanntes Stück Quelltext nicht!
Hätte ich evt vorher mal testen sollen :(

Also es funktioniert soweit das ich nach eingabe von Benutzernamen und Passwort gefragt werde - allerdings wird der else-Teil nie betreten.
Also wird die Variable $_SERVER['PHP_AUTH_USER']) wohl nie gesetzt...

Was kann das sein?

Habe beide phpinfo's mal verglichen - auf der Serverseite fehlt folgendes völlig:
Code:
apache2handler
Apache Version 	Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8h mod_autoindex_color PHP/5.2.6 
Apache API Version 	20051115 
Server Administrator 	admin@localhost 
Hostname:Port 	localhost:80 
Max Requests 	Per Child: 0 - Keep Alive: on - Max Per Connection: 100 
Timeouts 	Connection: 300 - Keep-Alive: 5 
Virtual Server 	No 
Server Root 	C:/Program Files/xampp/apache 
Loaded Modules 	core mod_win32 mpm_winnt http_core mod_so mod_actions mod_alias mod_asis mod_auth_basic mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_cgi mod_dav mod_dav_fs mod_dir mod_env mod_include mod_info mod_isapi util_ldap mod_log_config mod_mime mod_negotiation mod_rewrite mod_setenvif mod_status mod_ssl mod_autoindex_color mod_php5

Liegt es daran?

lg
 
Zuletzt bearbeitet:
Gerade etwas gefunden was nicht dazu beiträgt das es geht:
Code:
Server API 	CGI/FastCGI

Mit dem zuvor schon genannten Satz:
Die HTTP-Authentifizierung durch PHP ist nur verfügbar, wenn PHP als Apache-Modul läuft und funktioniert daher nicht mit der CGI-Version.

sieht es wohl schlecht für mich aus...
Gibt es noch andere Möglichkeiten

lg
 
Was wäre denn besser an einer Alternativlösung, bspw. per PHP?

per .htaccess kannst du Verzeichnisse schützen, mit PHP nur die Skripte, in denen du deine Authentifizierung implementierst.
 
Zurück