eddi: Bilder schützen

Beitrag lesen

Re:

Der User soll sein eigenes Passwort ändern können. Dieses steht in der .htpasswd in der Form username:passwort und muss dort geändert werden, damit das alte Passwort nicht mehr geht, sondern das neue. Dass heißt die Zeile mit dem Benutzernamen und Passwort muss gegen eine andere ausgetauscht werden. Um das mit PHP zu machen muss die Zeile doch bekannt sein oder??

Ganz richtig erkannt :)

Wie Du bereits korrekt bemerkt hast, ist die Form einer .htpasswd-Zeile "username:passwort". Also vergleichst Du in jeder Zeile nur den Usernamen mit $_ENV['REMOTE_USER']:

$f='.htpasswd';  
$c=0;  
$dat=[link:http://de3.php.net/manual/de/function.fopen.php@title=fopen]($f,'r+');  
[link:http://de3.php.net/manual/de/control-structures.while.php@title=while](![link:http://de3.php.net/manual/de/function.feof.php@title=feof]($dat)){  
        $l=[link:http://de3.php.net/manual/de/function.strlen.php@title=strlen]($t=[link:http://de3.php.net/manual/de/function.fgets.php@title=fgets]($dat));  
        [link:http://de3.php.net/manual/de/language.control-structures.php#control-structures.if@title=if]([link:http://de3.php.net/manual/de/function.strpos.php@title=strpos]($t,$_ENV['REMOTE_USER'])===0){  
                [link:http://de3.php.net/manual/de/function.fseek.php@title=fseek]($dat,$c,SEEK_SET);  
                [link:http://de3.php.net/manual/de/function.fwrite.php@title=fwrite]($dat,$_ENV['REMOTE_USER'].':'.$neuesPasswort."\n");  
                [link:http://de3.php.net/manual/de/control-structures.break.php@title=brea]k;  
        }  
        $c+=$l;  
}  
[link:http://de3.php.net/manual/de/function.fclose.php@title=fclose]($dat);

Dabei macht sie dieses kleine Scriptbeispiel zunutze, daß die der Hash des Passworts immer gleichlang ist.

Gruß aus Berlin!
eddi