htusers dynamisch per PHP
Consti
- php
Hi zusammen!
Ich möchte die .htusers dynamisch erstellen und hab mir deswegen den folgenden PHP-Code reingeschrieben, die Datei in htusere.php umgeschrieben und von der entsprechenden htaccess darauf verwiesen. Wenn ich mir den Quelltext der Seite auf dem Browser anschau erscheint sie einwandfrei. Nur in den geschützten Bereich komm ich nicht rein.
$sql=mysql_query("SELECT * FROM tabelle ORDER BY id");
while($array=mysql_fetch_array($sql))if($array['account'])echo $array['account'].":".$array['passwort']."\n";?>
Habe in die selbe Datei auch mal direkt einen Account und ein Passwort reingeschrieben. Das hat auch funktioniert, nur die Liste mag er nicht. Liegt es vielleicht am \n? Danke schonmal!
Hi Consti!
Folgende Fragen an Dich zur Lösung:
Auf welcher Plattform abreitest Du? (Window || Linux)
Wie sieht ein Auszug aus der geparsten htusere.php aus?
Wie sieht $sql aus? ( print_r($sql) )
Am Textumbruch mit \n ist erstmal nichts zu bemängeln.
Gruß aus Berlin!
eddi
Hallo!
Erstmal Danke für die Hilfe!
Ich arbeite in Linux. Wenn ich den Quellcode der Datei htusers.php im Explorer anschau, dann wird alles richtig dargestellt. Ich hab den ganzen Quelltext mal kopiert und in die normale .htusers geschrieben und von der htaccess darauf verwiesen und alles hat funktioniert. Es scheint, als läuft die Schleife nicht, wenn htaccess drauf zugreift, oder zumindest liefert sie nicht das richtige Ergebnis.
Re:
Dann würde ich vorschlagen, Du schreibst in die .htaccess als Passwortquelle wieder .htusers hinein. Das Bearbeiten dieser Datei überläßt Du dann einem/einigen PHP-scripte/+n, so bleibst Du immer noch dynamisch genug, hast aber zwei andere Bremsen schonmal abgestellt:
Authentifizierung
=> 1. Aufruf von PHP (oft leider nicht per API)
=> 2. Aufruf eines Datenbankservers
Im Gegensatz dazu wird nur bei Änderungen der PHP-parser in Anspruch genommen.
Jetzt noch mal kurz darüber nachgedacht greift der Server wahrscheinlich mit einem einfachen Lesezugriff auf die jetzige htusers.php. Rein interessehalber könnte eine Konstellation, die den Server zwingt htusers.php zu parsen, sogar Erfolg haben:
AuthUserFile http://www.deine_domain.net/htusers.php
Vermutlich(!) ist diese Angabe gar nicht erlaubt under der Server verweigert dies...
Gruß aus Berlin!
eddi
Hi!
Danke erstmal für die Antwort! Ich denke er erlaubt schon den Zugriff auf eine .php-Datei, weil ich ja zusätzlich zu der Schleife ein paar Accounts dirket recngeschrieben hab und die hat er geschluckt. Woher bekomme ich denn solche PHP-Script zum bearbeiten der .htusers??
Hi!
... Ich denke er erlaubt schon den Zugriff auf eine .php-Datei, weil ich ja zusätzlich zu der Schleife ein paar Accounts dirket recngeschrieben hab und die hat er geschluckt. ...
Ein einfacher Lesezugriff heißt nicht, das der Server den vorgefundenen Inhalt mittels Parsen interpretiert! Wenn Du Dir einen Überblick über die Unterschiede machen willst, kannst Du eine beliebege Datei (was_weiss_ich.php) folgendermaßen öffnen:
<?php
header('Conten-Type: text/plain');
readfile('was_weiss_ich.php');
echo "\n\n\n\n\n========================\n\n\n\n\n";
readfile('http://www.dein_web.de/was_weiss_ich.php');
?>
...Woher bekomme ich denn solche PHP-Script zum bearbeiten der .htusers??
Vermutlich ist es Dir noch nicht aufgefallen, aber Skripte zusammenzuschustern (auch wenn man sich oftmals das Hirn zermartert) hebt mit jedem kleinen Lichtblick, mit jedem kleinen Erfolg imens das Selbstwertgefühl.
Nun enttäusche mich bitte nicht mit der Frage nach vorgefertigtem Allerlei!
Alles, was Du brauchst, sind folgende Funktionen und Anweisungen:
fopen()
file()
while() oder foreach() oder for()
fgets()
fputs()
fclose()
crypt()
Schlage sie notfalls im manual unter http://www.php.net/ nach! Noch was: Programmieren macht Spaß ;)
Gruß aus Berlin!
eddi