PHP htaccess wiedereinmal

culan

Grünschnabel
Hallo Leutz,
ich habe keine Idee wo ich ansetzen soll, das selbst zu schreiben.

Problem:
- htaccessschutz ( ist zwingent erforderlich wegen Fotos )
- User soll das Passwort sich selbst vergeben können.
- es soll auch gruppenzugriffe realiesiert werden ( mit .htgroup kein Thema) <= ist gelöst
- den User anlegen mache ich. ( oder script ) <= ist gelöst
- der zugriff funktioniert auch.

ich habe keine Idee wie ich den User erlauben soll nur sein Passwort zu ändern und nicht das von allen... ( besser gesagt ich habe nicht einmal eine idee wo ich anfangen soll das script zu schreiben . Kompletten Blackout.)

Hat nicht irgendjemand eine Idee wo ich so ein script finde? den alles das was ich gefunden habe ist eins für den admin.

Danke
culan
 
Du musst beim Update den Usernamen mit dem vergleichen der bearbeitet soll (also wo das Passwort geaendert werden soll) vergleichen. Wenn ==, dann okay, else boese. ;)
Ich mach das zwar mit 'ner Datenbank und der UserID statt dem Namen, sollte aber keinen grossen Unterschied machen.
 
Die Passwörter stehen verschlüsselt in der .htpasswd.
Wenn sich ein User einloggt hat, dann könntest Du ein Formular zur Verfügung stellen, wo er das Passwort ändern kann.
Dort durchsuchst Du die .htpasswd nach dem Nutzername, mit dem sich eingeloggt wurde. Und dann musst Du nur noch das verschlüsselte Passwort, das hinter dem Nutzernamen steht, durch das neue (verschlüsselte) Passwort ersetzen.
Die Einträge (wie Du sicher weißt) haben das Format "redlama:9Ago4EnsD8w". Und das die Passwörter mit crypt() verschlüsselt sind, weißt Du ja sicher auch.
Der Nutzername steckt in der $_SERVER['PHP_AUTH_USER'].
Damit solltest Du jetzt alle Daten haben, die Du brauchst, oder?

Und falls Du die Zugangsdaten aus einer Datenbank holst, dann brauchst Du ja nur ein Update zu machen, wo der Nutzername dem Loginnamen entspricht.

redlama
 
ja aber all inkl gibt seit kurzen das Moul mod_auth_mysql nicht mehr für die Privaten tarife mehr raus :-(

aber danke... den ich mache es normalerweise auch über die Datenbank...

ich arbeite immer ungerne mit dateien... und deswegen heißt es jetzt für mich wieder bücher und Tutorials wälzen bis ich die Befehle von lesen und suchen in dateien finde *help*
und das dann auch wieder funktioniert... besonders wenn eine datenbank bereitsteht.

gibt es anfürsich eine begrenzung an usern in einer htaccess ? den ich rechne mit 5000-10000 Usern die dann da drinnen stehen müssen irgendwanneinmal.
 
Ich glaub eine Begrenzung wird es da nicht geben denke ich, jedoch wird bei so einem Datenbestand eine Datenbank wohl aus Performance- und Wartungsgruenden sinnvoller sein.
 
bloß die Frage ist halt, wenn ich es nicht mit einer htaccess mache, wie sichere ich die bilder ?

Kurze Hilfe Bitte
wie sieht es aus, das ich nur dendie Daten vom User behalte?
Code:
  define("PASSWDFILE", ".htpasswd");
  
  $fp = fopen(PASSWDFILE, "r");
  
  	while ($zeile = fgets($fp, 4096)) {/* htpasswd einlesen */
 		ereg ("(.*)(:)(.*)", $zeile, $pas);	/* Zeile in User, ":", Pass zerlegen */
  		$pssuser = $pas[1];
  		$psspass = $pas[3];
  
  		$users[] = array('user' => $pssuser, 'pass' => $psspass);
  
  } //endwhile
  fclose ($fp);
 
Wie meinst Du das mit "wie sieht es aus, das ich nur dendie Daten vom User behalte"?
Willst Du die anderen Daten löschen oder meinst Du, wie Du jetzt an die Daten des Users heran kommst?

redlama
 
Jup wie ich die daten weiter verarbeiten kann.... mit suchen... den ich finde ( oder ich bin Blind ) keine funktion wo ich nur die eine Zeile auslesen kann. wo der eingleoggte User mit dem ersten wert ( $pssuser) übereinstimmt.
den die anderen Zeilen brauche ich ja in dem fall zur zeit nicht.
 
Du kannst ruhig alles auslesen.
MIt count($users) solltest Du nach der while-Schleife die Anzahl der Elemente in dem Array herausbekommen.
Dann kannst Du doch in einer for-Schleife das Array auslesen. Und mit einer if-Anweisung schaust Du in der for-Schleife, ob $users['user'] dem eingeloggten User entspricht. Wenn ja, dann änderst Du $users['pass'] einfach in das neue Passwort um und speicherst dann alle Daten des Arrays wieder in die .htpasswd zurück.

redlama
 
Zurück