• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Kein Eintrag in die MySQL-Tabelle möglich (phpmyadmin)

Aaron3219

Senior HTML'ler
Hey Forum,
ich sitz nun schon ein bisschen dran und komme nicht drauf.
Ich hau euch mal eben den Code um die Ohren:

PHP:
<?php

$verbindung = mysqli_connect("localhost", "benutzername", "Passwort", "db-name")
        or die("Es ist ein Verbindungsfehler aufgetreten!");



$benutzername = $_POST['name'];
$passwort = $_POST['password'];

echo "$benutzername $passwort";

if ($benutzername == "" or $passwort == "") {
    echo "Du musst die Felder ausfüllen!";
} else {
    $eintrag = "INSERT INTO benutzer
        (benutzername, passwort)
        VALUES('$benutzername'.'$passwort')";
}

$eintragen = mysqli_query($verbindung, $eintrag)
        or die("Da hat was beim reinschreiben in die Tabelle nicht geklappt!");


mysqli_close($verbindung);

Ich kriege die Fehlermeldung: Da hat was beim reinschreiben in die Tabelle nicht geklappt!

Also ist hier was schief gelaufen:
PHP:
$eintragen = mysqli_query($verbindung, $eintrag)
        or die("Da hat was beim reinschreiben in die Tabelle nicht geklappt!");

Aber ich hab alles 1000 mal kontrolliert. Der Tabellenname stimm, die Spaltennamen auch.
 
Frage doch die DB selber, was falsch sein könnte:
PHP:
<?php
 
  $verbindung = mysqli_connect("localhost", "benutzername", "Passwort", "db-name");

  if (mysqli_connect_errno())
  {
     printf("Connect failed: %s\n", mysqli_connect_error());
     exit();
  }
 
  $benutzername = mysqli_real_escape_string($verbindung, $_POST['name']);
  $passwort     = mysqli_real_escape_string($verbindung, $_POST['password']);
 
  echo "$benutzername $passwort";
 
  if ($benutzername == "" or $passwort == "")
  {
     echo "Du musst die Felder ausfüllen!";
  }
  else
  {
      $eintrag = "INSERT INTO `benutzer`
                 (`benutzername`, `passwort`)
                  VALUES('$benutzername', password('$passwort'))";

      mysqli_query($verbindung, $eintrag)
        or die("Fehler: " . mysqli_error($verbindung));
  }
?>
Hinweise:
  1. Speichere niemals Daten ohne sie zu escapen!!
  2. Passwörter speichert man nicht in Klarschrift!!
  3. Dein eigentlicher Fehler liegt hier: '$benutzername'.'$passwort' Du hast dort einen Punkt statt eines Kommas
 
Das mit den Passwörtern ist mir klar.
Aber um sicher zu gehen. Wenn man sich registrieren würde, würde das Passwort als Hash abgespeichert werden. Jedes Mal wenn man sich anmeldet, wird das eingegebene Passwort erneut gehashed und mit der Datenbank abgeglichen oder?
Ich dachte man escaped alles wieder mit
PHP:
mysqli_close($verbindung);
reicht das nicht?


Danke übrigens für die Hilfe.
 
mysqli_real_escape_string != mysqli_close

mysqli_close schließt die DB-Verbindung.

Und die Sache mit dem Passwort hast du richtig erkannt.
 
Macht es zur höheren Sicherheit eigentlich Sinn, dass gehashte Passwort nochmal zu hashen?
Also eine Kombination aus sha512 und Salted Hash?
 
Zurück
Oben