Probleme mit Dateneintrag von PHP in MySQL Datenbank

Benjamin1987

Grünschnabel
Hallo zusammen,
ich arbeite gerade an einem Formular zum Eintragen von Daten über eine Webseite in eine MySQL Datenbank.
Hier einmal der code vom Formular:
HTML:
<form action="intern.php?id=newuseradd" method="post">
  <p>
    <label for="textfield">Benutzername:</label>
    <input type="text" name="textfield" id="user">
  </p>
  <p>
    <label for="password">Password:</label>
    <input type="password" name="password" id="kennwort">
  </p>
  <p>
    <label for="select">Gruppe:</label>
    <select name="select" id="gruppe" value="">
    <option>Admin</option>
    <option>User</option>
    <option>Gast</option>
    </select>
  </p>
  <p>
    <label for="email">Email:</label>
    <input type="email" name="email" id="email">
  </p>
  <p>
    <input type="submit" name="submit" id="submit" value="Benutzer anlegen">
  </p>
</form>

Soweit so gut, es sieht nicht hübsch aus, aber die Funktionalität geht mir momentan vor. Hier wird alles eingegeben und dann an die Datei übergeben:

PHP:
{
$sql = "INSERT INTO ".
    "benutzerdaten (nickname, kennwort, gruppe, email) ".
  "VALUES ('".$value["user"]."', '".
                       md5 ($value["kennwort"])."', '".
                       $value["gruppe"]."', '".
                       $value["email"]."')";
mysql_query ($sql);
  if (mysql_affected_rows ($connectionid) > 0)
  {
    echo "Benutzer erfolgreich angelegt.<br>\n";
  }
  else
  {
   echo "Fehler beim Anlegen des Benutzer.<br>\n";
  }
}

So, wenn ich jetzt die Daten eingebe und auf Senden gehe, übergibt er die Daten an die PHP Datei, wandelt aber nur das Kennwort in MD5 um und trägt auch nur das Kennwort in die Datenbank.

Ich finde den Fehler nicht, Syntax Fehler werden keine ausgegeben, wer kann vielleicht Helfen.

Vielen dank im vorraus
 
Hi

Fehler 1: Die mysql_* - Funktionen. Seit inzwischen 9 Jahren gibts was Besseres, und auch
wenn sich die alte Sache lang gehalten hat, ist die endgültige Entfernung angekündigt.
Code, der so geschrieben ist, wird spätestens dann garantiert nicht mehr funktionieren.
Verwende MySQLi oder PDO.

Fehler 2: MD5. Ist seit vielen, vielen Jahren unsicher. Wegen einem anderen Thema hab ich
heute nachgeschaut, dass jemand, der einen MD5-Hash knacken will, auch mit einem "normalen"
Gerät leicht 13 Milliarden Hashes pro Sekunde berechnen kann
Alternative: http://php.net/manual/de/function.password-hash.php

Fehler 3: Kein Escapen der Variablen bzw. keine Prepared Statements
Das könnte zB. ein Grund für das Nichtfunktionieren sein und ist nebenbei auch ein Sicherheitsproblem.

Und dann zeig uns bitte, wo $value herkommt.

Weiteres: Falls im Code weiter oben kein isset vorkommt ist da auch Nachholbedarf.
Und das ferige Formular wird auf die Art ein Paradies für Spammer. Captchas...
 
Zurück