Probleme mit Formbasierende Anmeldung und .htaccess

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Formbasierende Anmeldung und .htaccess

    Hi,

    ich plage mich schon seit geraumer Zeit mit einem PHP Skript herum, welches einen User beim Apache Server Authentifiziert.
    Folgender ablauf ist geplant :
    Der User gibt seine Anmeldedaten in einem Formular ein (Name,PSW).
    Nach dem Anmelde-Button, prüft das Script die .htpasswd File ob der User berechtigt ist in das geschützte Verz. zu wechseln (Das funzt 100%'ig).
    Ist der Benutzer berechtigt, leitet das Script den User weiter! Und hier ist mein Problem, scheinbar Authentifiziert das Skript den User nicht, sondern prüft nur die Anmeldedaten ?!?!
    Den beim aufruf des geschützten Verzeichnissen, werde ich wieder nach dem Passwort gefragt (es ist richtigt!!).

    Das Skript :
    <?
    $auth = false; // Assume user is not authenticated
    $text = 'NICHT ANGEMELDET';
    if ($B1) {
    if (isset( $PHP_AUTH_USER ) && isset($PHP_AUTH_PW)) {

    // Read the entire file into the variable $file_contents

    $filename = '/www/htdocs/xxxxx/xxxx/xxxx/.htpasswd';
    $fp = fopen( $filename, 'r' );
    $file_contents = fread( $fp, filesize( $filename ) );
    fclose( $fp );

    // Place the individual lines from the file contents into an array.

    $lines = explode ( "\n", $file_contents );

    // Split each of the lines into a username and a password pair
    // and attempt to match them to $PHP_AUTH_USER and $PHP_AUTH_PW.

    foreach ( $lines as $line ) {

    list( $username, $password ) = explode( ':', $line );

    if ( $username == "$PHP_AUTH_USER" ) {

    // Get the salt from $password. It is always the first
    // two characters of a DES-encrypted string.

    $salt = substr( $password , 0 , 2 );

    // Encrypt $PHP_AUTH_PW based on $salt

    $enc_pw = crypt( $PHP_AUTH_PW, $salt );

    if ( $password == "$enc_pw" ) {

    // A match is found, meaning the user is authenticated.
    // Stop the search.

    $auth = true;
    break;

    }

    }
    }

    }

    if ( ! $auth ) {
    $text = 'NICHT ANGEMELDET';
    printf("<META HTTP-EQUIV=\"REFRESH\" CONTENT = \"0; URL=http://www.xxx-xxx.de/index.php\";>");
    exit;

    } else {

    printf("<META HTTP-EQUIV=\"REFRESH\" CONTENT = \"0; URL=http://www.xxx-xxx.de/secure/index.html\";>");

    } }

    ?>

  • #2
    tja,

    du solltest bei der weiterleitung vor die adresse noch die daten schreiben, die du abfragst. in der form:

    http://benutzernameasswort@url

    Kommentar

    Lädt...
    X