& .htaccess
Daniel
- php
0 SteBu1 Andreas Korthaus0 Cybaer0 Andreas Korthaus
Hi,
ich habe folgendes problem. ich möchte einen bereich mit .htaccess
schützen, um das login aber der seitengestalltung anzupassen möchte ich
die benutzer und pwd eingabe über eine php seite machen. ist dies
möglich? wie kann ich die eingaben an .htaccess übergeben? außer über
die URL was ja aber nicht bei allen brwosern funktioniert.
MfG
Moin,
die benutzer und pwd eingabe über eine php seite machen. ist dies
möglich?
Ja.
Schaue dir mal das Array $_SERVER an. Dort gibt es PHP_AUTH_USER und PHP_AUTH_PW.
http://www.php-faq.de/q/q-apache-php-passwort.html
wie kann ich die eingaben an .htaccess übergeben?
Brauchst Du dann nicht.
SteBu
Hallo!
ich möchte einen bereich mit .htaccess
schützen, um das login aber der seitengestalltung anzupassen möchte ich
die benutzer und pwd eingabe über eine php seite machen. ist dies
möglich?
Nein.
Wenn Du nicht das Standard-Fenster des Browsers verwenden willst, musst Du Dir ein eigenes Login mit einem HTML-Formular und Sessions basteln. .htaccess oder HTTP_AUTH überhaupt können Dir dabei nicht helfen. Außerdem wirkt dieser Schutz dann nicht auf ein ganzes Verzeichnis, sondern immer nur auf die Scripte die den Passwortschutz explizit verwenden.
Ein Beispiel für so ein Login-System findest Du hier: http://tut.php-q.net/login.html
Grüße
Andreas
Hallo!
Ein Beispiel für so ein Login-System findest Du hier: http://tut.php-q.net/login.html
Herrje, hab ja ganz vergessen dass wir hier seit neustem ja auch einen hervorragenden Feature Artikel von Benjamin zum Thema "Sessionbasiertes Loginsystem" haben: http://aktuell.de.selfhtml.org/tippstricks/php/loginsystem/ ;-)
Grüße
Andreas
Hi,
vielen dank für deinen hinweis, ich habe ein SESSION loginsystem schon
entwickelt klappt wunderbar, ich möchte die verzeichnisse aber
zusätzlich mit .htaccess schützen. dies ist also nicht möglich?
MfG
Hallo!
vielen dank für deinen hinweis, ich habe ein SESSION loginsystem schon
entwickelt klappt wunderbar, ich möchte die verzeichnisse aber
zusätzlich mit .htaccess schützen. dies ist also nicht möglich?
Das geht nicht. Du kannst die Dateien nur per Server-Konfiguration schützen, und dann von einem PHP-Script ausliefern lassen. Aber da würde ich dann auch kein HTTP-AUTH verwenden, sondern am besten die Dateien außerhalb des doc-root speichern, und entsprechend der Rechte mit einem PHP-Script und readfile() ausliefern.
Grüße
Andreas
Hi,
die benutzer und pwd eingabe über eine php seite machen. ist dies
möglich?
Wenn (wie üblich) allow_url_open erlaubt ist, sollte das gehen.
wie kann ich die eingaben an .htaccess übergeben? außer über
die URL was ja aber nicht bei allen brwosern funktioniert.
Direkt mit PHP: fopen('http://user:passwort@www.example.org/protected/dummy.dat','r')
dummy.dat darf auch 0 Bytes groß sein - es geht ja nur um die Anmeldung. ;-)
Gruß, Cybaer
Hallo!
Direkt mit PHP: fopen('http://user:passwort@www.example.org/protected/dummy.dat','r')
dummy.dat darf auch 0 Bytes groß sein - es geht ja nur um die Anmeldung. ;-)
Und was hat man dann davon gehabt? Entweder man reicht alle Seiten auf diese Weise durch, oder es bringt nichts. Der Browser merkt sich die HTTP_AUTH Zugangsdaten nur, wenn sie über das Eingabefenster eingegeben wurden.
Grüße
Andreas
Hi,
Direkt mit PHP: fopen('http://user:passwort@www.example.org/protected/dummy.dat','r')
Und was hat man dann davon gehabt? Entweder man reicht alle Seiten auf diese Weise durch, oder es bringt nichts.
und da dies nicht von allen browsern unterstützt wird ist es auch nicht
die lösung die ich verwenden könnte. ich hatte dies mal zu testzwecken
so eine kleine mehrseitige page gebastelt und mit FF und Ie getestet,
ich weis nichtmehr mit welchem aber mit einem von beiden funktionierte
es nicht. wenn ich mich recht erinnere hat der IE gestreikt.
MfG
Hi,
und da dies nicht von allen browsern unterstützt wird
Was der Browser kann oder nicht, ist PHP natürlich echt egal - und in PHP ist diese Möglichkeit halt vorgesehen.
Aber man muß dann die Datei auch, s. Andreas richtige Anmerkung, auch mit PHP an den Browser weiterleiten, also z.B. readfile('http://user...').
wenn ich mich recht erinnere hat der IE gestreikt.
Korrekt. Spätestens ab SP2. Nur ist das PHP egal.
Gruß, Cybaer
Hallo!
Direkt mit PHP: fopen('http://user:passwort@www.example.org/protected/dummy.dat','r')
Und was hat man dann davon gehabt? Entweder man reicht alle Seiten auf diese Weise durch, oder es bringt nichts.und da dies nicht von allen browsern unterstützt wird ist es auch nicht
die lösung die ich verwenden könnte.
Das was Cybaer gepostet hat war PHP-Code, den die Browser gar nicht zu sehen bekommen. Bei der Vartiante macht das PHP-Script selber nochmal einen HTTP-Request um an die Resource zu kommen. Das ganze ist auch nicht unbedingt von allow_url_fopen abhängig (im Gegenteil ich würde das aus sicherheitstechnischen Gründen lieber deaktivieren), das geht auch mit fsockopen() oder etwas einfacher mit PEAR::HTTP_Request:
<?php
require_once 'HTTP/Request.php';
$req =& new HTTP_Request('http://forum.de.selfhtml.org/my/');
$req->setBasicAuth('johndoe', 'foo');
$response = $req->sendRequest();
if (PEAR::isError($response)) {
echo $response->getMessage();
} else {
echo $req->getResponseBody();
}
?>
Das bringt aber auch einige Probleme mit sich, da Du nicht direkt auf die Resourcen zugreifst.
Grüße
Andreas
Hi,
Und was hat man dann davon gehabt? Entweder man reicht alle Seiten auf diese Weise durch, oder es bringt nichts.
Oops, ja klar. =:-)
Gruß, Cybaer