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

  • [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


  • #2
    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.
    http://hallophp.de

    Kommentar


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

      Kommentar


      • #4
        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! 

        Kommentar


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

          Kommentar


          • #6
            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.

            Kommentar


            • #7
              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

              Kommentar


              • #8
                PHP-Code:
                if($user == "" or $passwort ""
                lol darum...
                "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

                Kommentar


                • #9
                  http://www.php.de/wiki-php/index.php...tatt_Vergleich
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar

                  Lädt...
                  X