Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten werden nicht in Datenbank geschrieben

Einklappen

Neue Werbung 2019

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

  • Daten werden nicht in Datenbank geschrieben

    Ich habe folgenden Code:
    PHP-Code:
    <?php
    require_once ('sqlconfiguration.php');
    $db_link mysqli_connect (
                         
    MYSQL_HOST,
                         
    MYSQL_BENUTZER,
                         
    MYSQL_KENNWORT,
                         
    MYSQL_DATENBANK
                        
    );
    $name $_POST['name'];
    $firstname $_POST['firstname'];
    $adress $_POST['adress'];
    $location $_POST['location'];
    $zipcode intval($_POST['zipcode']);
    $birthdate date("Y-m-d"strtotime($_POST['birthdate']));
    $mail $_POST['mail'];
    $pw md5($_POST['password']);
    $sql "
      INSERT INTO `userdata`
      (
      `Name`, `Vorname`, `Adresse`, `Ort`, 'Postleitzahl', 'Geburtsdatum', 'Emailadresse', 'Passwort'
      )
      VALUES
      (
      '
    $name', '$firstname', '$adress', '$location', $zipcode$birthdate, '$mail', '$pw'
      );
    "
    ;
    $db_erg mysqli_query($db_link$sql);
    ?>
    Die Angaben in sqlconfiguration.php sind auf jeden Fall korrekt.
    Die Values müssten soweit auch stimmen, aber was ich auch tue, die Tabelle bleibt leer.
    Fehlermeldungen oder so krieg ich keine.
    Was mache ich falsch?

    Edit: In der Db hat 'Postleitzahl' den Datentyp INTEGER(10) und 'Geburtsdatum' den Datentyp DATE. Aller anderen sind VARCHAR (unterschiedliche Längen).

  • #2
    Fehlermeldungen oder so krieg ich keine.
    Du fragst die DB ja auch nicht, ob es Fehler gab ...

    In der Db hat 'Postleitzahl' den Datentyp INTEGER(10)
    Deutsche PLZ können auch mit 0 anfangen! und andere Länder haben sogar Buchstaben drin (z.B. UK).

    Kommentar


    • #3
      Vorweg: Du hast eine SQL-Injection Lücke! Nutze "Prepared Statements".


      Fehlerausgabe einschalten! https://php-de.github.io/jumpto/sql/...ehler-ausgeben


      PHP-Code:
        `Name`, `Vorname`, `Adresse`, `Ort`, 'Postleitzahl''Geburtsdatum''Emailadresse''Passwort' 
      Sieht man gleich - du mischt 'Quotes' und `Backticks` . Das ist aber etwas unterschiedliches https://php-de.github.io/jumpto/sql/...tige-backticks
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        @hausi: sowas doofes ... ja daran lasg!
        Habs nun aber mit PDo-Statements gelöst. Damit soll SQL-Injection ja unmöglich sein.

        Kommentar


        • #5
          Damit soll SQL-Injection ja unmöglich sein
          Wenn du es richtig gemacht hast, dann ja.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Der Vollständigkeit wegen:
            @Dormilich: doofe Ossis *kopfeinzieh* ... momentan ist das eh nur für Testzwecke; im Ernstfall würde ich da wohl eher varchar nehmen.

            Kommentar

            Lädt...
            X