Hash, bycrypt Kennwort wird nicht ausgelesen

omroettger

Benutzer
Beiträge
6
Hallo,
ich weiß nun nicht,ob ich hier richtig bin. Ich habe eine Webseite, die über eine Registrierungsdatei das Kennwort als hash auf meiner lokalen Datenbank (MySQL) speichert. Rufe ich nun das Kennwort über meinen Login auf meinem Webserver auf, werde ich weitergeleitet und der Vorgang wird normal abgeschlossen. Zusätzlich habe ich eine Dynamic DNS eingerichtet und über die funktioniert der Zugriff auch.
Versuche ich es aber über die Hosting Platform von Strato und greife auf meine MYSQL Datenbank(auf meinem Webserver) zu, wird das Kennwort nicht erkannt. Alle anderen Suchfunktionen aus meiner MySql Datenbank funktionieren. Somit glaube ich, dass irgendetwas bei der Verschlüsselung nicht richtig läuft.
Das Kennwortfeld in der DB ist varchar(255), uft-8_general_ci.
Registrierungsformular charset utf-8.
Die Benutzerrechte in MySQL sind angepasst. Wird das Kennwort in meiner DB nicht verschlüsselt, habe ich Zugang von beiden Seiten.
Der Port 3306 ist freigeschaltet und notwendige Firewall Einstellungen sind vorgenommen. Ich bin mit meinem Latein am Ende.
Code:
if($_POST["pw"] == $_POST["pw2"]){
        //User anlegen
            $stmt = $mysql->prepare("INSERT INTO accounts (firstname, lastname, street, zip, town, country, telephone,permission, USERNAME, EMAIL, PASSWORD)
            VALUES (:firstname, :lastname, :street, :zip, :town, :country, :telephone, :permission, :user, :email, :pw)");
            $stmt->bindParam(":firstname", $_POST["firstname"]);
            $stmt->bindParam(":lastname", $_POST["lastname"]);
            $stmt->bindParam(":street", $_POST["street"]);
            $stmt->bindParam(":zip", $_POST["zip"]);
            $stmt->bindParam(":town", $_POST["town"]);
            $stmt->bindParam(":country", $_POST["country"]);
            $stmt->bindParam(":telephone", $_POST["telephone"]);
            $stmt->bindParam(":permission", $_POST["permission"]);
            $stmt->bindParam(":user", $_POST["username"]);
            $stmt->bindParam(":email", $_POST["email"]);
            $hash = password_hash($_POST["pw"], PASSWORD_BCRYPT);
            $stmt->bindParam(":pw", $hash);
            $stmt->execute();
            echo "Dein Account wurde angelegt. Es kann bis zu 12 Stunden dauern, bis es aktiviert ist.";
          } else {
            echo "Die Passwörter stimmen nicht überein";
          }
        } else {
          echo "Email bereits vergeben";
        }
      } else {
        echo "Der Username ist bereits vergeben";
      }


Vielleicht hat ja eine Idee, woran es liegen könnte. Bin über jede Hilfe sehr dankbar.
 
Werbung:
Ja, das weiß ich, dass hier ein crosspost vorliegt. Ich wusste aber nicht, dass die Foren zusammen arbeiten. Auf Administrator habe ich leider keine passende Antwort bekommen, aus diesem Grund habe ich mir ein mehr zielorientiertes Forum gesucht. Und da sollte ich hier ja wohl richtig sein.
 
Auf Administrator habe ich leider keine passende Antwort bekommen, aus diesem Grund habe ich mir ein mehr zielorientiertes Forum gesucht.

Mag sein, nur gefunden hast Du wohl wieder ein falsches. Das sieht eher nach einem PHP-Problem aus. Zum Beispiel fehlt in PHP das Fehlerhandling, nach dem
``$stmt->execute();``. Du gehst blind davon aus, daß das Insert klappt. Nur ist das hier dann Offtopic - so wie auch im anderen Forum. Vermutlich auch daher keine Antworten.

Hint: prüfe alle eingesetzten Versionen, sowohl MySQL als auch PHP.
 
Werbung:
Nur noch zur Klärung des Problems.
Diese Fehlermeldung poppte vor 5 Minuten auf.
SQL Error: SQLSTATE[28000] [1045] Access denied for user 'db_event'@'fo-p00-ob.rzone.de' (using password: YES)
Ich habe festgestellt, dass es ein Konto bei Strato ist. Somit habe ich meinen Ansprechpartner gefunden. Vielen Dank an alle.
Und es war doch ein MySQL Problem!
 
Zurück
Oben