Ungültige Anfrage

  • Hey,
    wollte ne Registrierung machen mit php. Allerdings kommt immer folgender Fehler:

    Code
    Ungültige Anfrage Unknown column 'Email' in 'field list'


    PHP
    $sql = 'INSERT INTO accounts (Name, Passwort, Email) VALUES("'.$_POST['name'].'", "'.$_POST['passwort'].'", "'.$_POST['email'].'")';
            echo $sql;
            $result = mysql_query($sql);
            if (!$result) {
                echo 'Ungültige Anfrage' . mysql_error();
                exit;
            }


    Was tun?

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

  • Hab es getestet, du darfst anscheinend diese Anführungszeichen (ka, wie man die nennt) nicht vergessen:

    Backticks heißen die.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Bei den Werten darfst Du auch keine Backticks verwenden, sondern Anführungszeichen oder Hochkommata.


    Mit escapen ist die Funktion mysql_real_escape_string() gemeint.
    Wenn Du Nutzereingaben ohne Weiteres an die Datenbank übergibst, könne Nutzer, die dort bestimmten Code injizieren (MySQL Injections, kannst Dich da ja mal einlesen) die Tabellen löschen, modifizieren, neue Tabellen erstellen, neue Einträge erstellen, löschen etc.


    Beispiel:



    SQL
    'INSERT INTO `accounts`(`Name`, `Passwort`, `Email`) VALUES ("'.mysql_real_escape_string($_POST['name']).'",
  • Danke dir. Ich weiß schon, was ne Injection ist, dachte aber man kann das nur anders lösen und nicht so einfach.
    Hab mal Anführungszeichen gesetzt. Jetzt kommt er wieder mit:
    Ungültige AnfrageUnknown column 'Email' in 'field list'


    PHP
    $sql = 'INSERT INTO `accounts`(`Name`, `Passwort`, `Email`) VALUES ("'.$_POST['name'].'", "'.$_POST['passwort'].'", "'.$_POST['email'].'")';

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

    2 Mal editiert, zuletzt von ElDiabolo ()