Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] crypt() wird nicht erkannt

Einklappen

Neue Werbung 2019

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

  • befubo
    hat ein Thema erstellt [Erledigt] crypt() wird nicht erkannt.

    [Erledigt] crypt() wird nicht erkannt

    Hi zusammen
    Ich habe mich etwas mit dem Verzeichnisschutz auseinander gesetzt und folgendes Script geschrieben:

    PHP-Code:
    <form action="#" method="POST">
    Dein Username:<br><input type="text" size="17" name="user"><br><br>
    Dein Passwort:<br><input type="password" size="17" name="pw"><br><br>
    <input type="submit" value="registrieren">


    <?php
    if(isset($_POST["user"]))
    {
    $passwort $_POST["pw"];
    $user $_POST["user"];

        if(
    $user == "" or $passwort "")
        {
            echo 
    "Mindestens eine Angabe fehlt!";
        }
        else
        {

                
    $f fopen('intern/.htpasswd',"a+");
                
    $hash crypt('$passwort');
                
    $user .= ":";
                
    $user .= "$hash";

                
    fwrite($f,$user."\r\n");
                
    fclose($f);

                echo 
    "Ihr Account wurde soeben generiert!";

        }
    }
    ?>
    in meiner .htpasswd steht danach z.B. folgendes:

    Code:
    befubo:$1$cuIJbEpB$CE4WFlFyL1kFX4JuOl/Lm.
    Doch wenn ich auf das geschützte Verzeichnis zugreifen will, stimmt das Passwort nicht. Ich habs dan auf folgende Arten versucht zu verschlüsseln:

    Code:
    $hash = crypt('$passwort', 'rl');
    Code:
    $hash = crypt('$passwort', '_J9..rasm');
    und
    Code:
    $hash = crypt('$passwort', '$1$rasmusle$');
    Es werden immer Einträge geschrieben in der .htpasswd und zwar immer schön
    in der richtigen Anordnung, aber auch so stimmt das Passwort nie...

    Hat jmd ne Idee, warum des net funzt?
    thx
    lg
    befubo

  • nikosch
    antwortet
    http://www.php.de/wiki-php/index.php...tatt_Vergleich

    Einen Kommentar schreiben:


  • Destruction
    antwortet
    PHP-Code:
    if($user == "" or $passwort ""
    lol darum...

    Einen Kommentar schreiben:


  • befubo
    antwortet
    EDIT::

    Problem hat sich (endlich) erledigt. K.a. warum, aber er wollte nochmals die Variabelndeklaration haben:

    PHP-Code:
    <?php
    if(isset($_POST["user"]))
    {
    $passwort $_POST['pw']; 
    $user $_POST["user"];
    echo 
    "<br><br>$user:$passwort<br><br>";

        if(
    $user == "" or $passwort "")
        {
            echo 
    "Mindestens eine Angabe fehlt!";
        }
        else
        {

                ------>
    $passwort $_POST['pw'];<-------


                
    $f fopen('intern/.htpasswd',"a+");
                
    $hash crypt($passwort);
                
    $user .= ":";
                
    $user .= "$hash";

                
    fwrite($f,$user."\r\n");
                
    fclose($f);

                echo 
    "Ihr Account wurde soeben generiert!";

        }
    }
    ?>
    Danke für die Mühe

    Einen Kommentar schreiben:


  • CPCoder
    antwortet
    Schonmal geprüft ob nicht irgendwelche unerwünschten Leerzeichen beim Passwort übergeben werden?

    Evtl. mal
    PHP-Code:
    $passwort trim($_POST['pw']); 
    testen und ggf. auch mal den Inhalt von $_POST['pw'] vor dem Verschlüsseln ausgeben lassen.

    Einen Kommentar schreiben:


  • befubo
    antwortet
    Na ja, hast wohl sicher recht, aber auf jedenfall funktioniert es weder mit noch ohne ' '...

    Einen Kommentar schreiben:


  • CPCoder
    antwortet
    Zitat von befubo Beitrag anzeigen
    thx für antwort:
    Die Hochkommas machen keinen Unterschied. Es wird genau gleich in die .htpasswd eingetragen, habs schon versucht...
    Glaub ich nicht!

    PHP-Code:
    $hash crypt('$password'); // Hier wird "$password" als String verarbeitet und von diesem Begriff ein Hash gebildet. 
    ergibt auf jeden Fall ein anderes Ergebnis als:

    PHP-Code:
    $hash crypt($password); // Hier wird der Inhalt der Variable "$password" verarbeitet und daraus der Hash gebildet! 

    Einen Kommentar schreiben:


  • befubo
    antwortet
    thx für antwort:
    Die Hochkommas machen keinen Unterschied. Es wird genau gleich in die .htpasswd eingetragen, habs schon versucht...

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Vielleicht musst du das "Salz" ganz weglassen!?

    [edit]

    Ah, sorry, hast du ja!

    Aber was soll das hier sein?
    Code:
    $hash = crypt('$passwort');
    Lass die Hochkommas weg.

    Einen Kommentar schreiben:

Lädt...
X