selber htacess

Ich schütze einen Ordner mit htaccess, und möchte nun, dass man das PW mittels PHP ändern kann.
So dachte ich mir das:
-öffne -htpwd check
-hol das PW aus dem Formular und verschlüssle es check
-scheiße, wie soll ich das eigentlich verschlüsseln?
-> crypt versteh ich nicht, da kommt jedesmal was anderes raus.
-> md5 is nett, aber checkt der dann dass ich md5 und nicht crypt verwende?

Kann ich das verschlüsseln wie ich will? Weil hab geselen man kann verschlüsseln wie man will oder auch gar nicht, aber woher weiß dann htacces was abgeht?
 
Am einfachsten dürfte es sein, wenn du das Programm htpasswd über system() aufrufst um ein Passwort zu setzen oder zu ändern, sofern es auf dem Webserver installiert ist. Per Default benutzt htaccess auf Windows-, Netware- und TFP-Servern MD5-Verschlüsselung, auf allen anderen Systemen wird über crypt() verschlüsselt (DES).

Syntax: 'htpasswd <passwd-Datei> <benutzername> <passwort>'.

Aufruf über PHP: system("htpasswd passwd-Datei benutzername passwort");

Ansonsten solltest du den Admin des Servers fragen welche Verschlüsselung genutzt wird.
 
ich habs üerb system() jetzt probiert aber er hat's schlicht ignoriert.
Ich habs gemacht während ich in dem geschützen Verzeichnis war,liegt`s daran?

Noch zur Variante oben
ich kann irgendwie auf meinem Space keine dateien/verzeichnisse anlegen?! Also via php.
Pder hab ich etwas vergessen? fopen, mkdir etc funzen nicht so richtig, ich habs in mehreren verzeichnissen probiert.
Per hand kann ich aber sehrwohl dateien anlegen, und ich denke diverse scipts wie GB oder FOren die ich installiert habe haben auch shon Dateien angelegt!

???
 
Werte einfach mal die Rückgaben der Funktionen aus um herauszufinden warum sie nicht funktionieren. Dazu sind Rückgabewerte ja da. Wenn system() nicht funktioniert, hilft manchmal exec() weiter.
 
Apropos Rückgabe von Funktionen

normal würde ich php eastereggs in .htaccess so deaktivieren:

RewriteCond %{QUERY_STRING} ^%3F=PHPE9568F36-D428-11d2-A769-00AA001ACF42 [OR]
RewriteCond %{QUERY_STRING} ^%3F=PHPE9568F34-D428-11d2-A769-00AA001ACF42 [OR]
RewriteCond %{QUERY_STRING} ^%3F=PHPE9568F35-D428-11d2-A769-00AA001ACF42 [OR]
RewriteCond %{QUERY_STRING} ^%3F=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 [OR]
RewriteRule ^(.*)$ - [R=404,L]

klappt aber nicht, woran könnte das liegen?
 
Ich schütze einen Ordner mit htaccess, und möchte nun, dass man das PW mittels PHP ändern kann.
[...]
-> crypt versteh ich nicht, da kommt jedesmal was anderes raus.

Wenn das nicht so wäre, dann wäre das ein Problem. Mal ganz grob, ohne error handling, etc.

PHP:
<?php

function change_pass( $user, $pass, $path )
{
        
    $passwd = crypt( $pass );         
    $htpasswd = $user . ':' . $passwd . "\n";  
    
    $lines = file( $path . ".htpasswd" );
    
    foreach( $lines as $line ) {
    
     if( preg_match( "/" . $user . "/",$line ) ) {
       $content .= $htpasswd;
     } else {
       $content .= $line;
     }
     
    }    
   
   file_put_contents( $path . '/.htpasswd', $content );
    
}

$user = 'mime';
$pass = 'passwort';
$auth = 'Geschützt...';
$path = '/var/www/localhost/htdocs/httest/';

change_pass( $user, $pass, $path );

?>
HTH

Micha
 
Zurück
Oben