anmeldeformular funktioniert nicht (PHP/MySQL)

  • Ich hab ein Anmeldeformular geschrieben, indem der User seine Daten eintragen kann und die Daten anschliessend in der Tabelle "users" in einer Datenbank gespeichert werden. Das Problem: Es funktioniert irgendwie net. Die Verbindung mit der Datenbank kann ich aufbauen, aber dann kann ich's irgendwie nich eintragen...

    Der Code (die Datei heisst anmeldung.php)

    Die Tabelle in die der Datensatz eingefügt werden sollte (php myadmin):
    [Blockierte Grafik: http://frankenstein007.fr.funpic.de/bilder/phpmyadmin.jpg]

    Die SQL-Daten (natürlich ohne Passwort)
    [Blockierte Grafik: http://frankenstein007.fr.funpic.de/bilder/sqldaten.jpg]

    Falls jemand noch weitere Daten braucht, einfach melden. Mir ist auch recht, wenn jemand einen total anderen Code hat der funktioniert. Ich sitz da schon 3 tage an diesem Code und finde den Fehler nich, gegoogelt hab ich auch schon... Hoffe jemand findet den Fehler..
    Ach ja, als Fehlermeldung kommt übrigens die von mir angegebene ("Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt") Die Verbindung zur DB konnte aber aufgebaut werden, ich hab das ausgeben lassen mit echo, das hab ich hier jetzt aber weggelassen.

    mfg T.B.S.[/code]

  • Hi deine SQL-Query ist nicht ganz korrekt

    $sqlab = "INSERT INTO users";
    $sqlab .= "(Vorname, Nachname, Username,";
    $sqlab .= " Userpass, Usermail) values ";
    $sqlab .= "('" . $_POST['vor'] . "', ";
    $sqlab .= "'" . $_POST['nach'] . "', ";
    $sqlab .= $_POST['nick'] . ", ";
    $sqlab .= $_POST['pass'] . ", ";
    $sqlab .= "'" . $_POST['mail'] . "')";

    das müsste gehen

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Versuchs mal so:

    Code
    $sqlab = "INSERT INTO users";
    $sqlab .= "(Vorname, Nachname, Username,";
    $sqlab .= " Userpass, Usermail ) values ";
    $sqlab .= "('" . $_POST["vor"] . "', ";
    $sqlab .= "'" . $_POST["nach"] . "', ";
    $sqlab .= $_POST["nick"] . ", ";
    $sqlab .= $_POST["pass"] . ", ";
    $sqlab .= "'" . $_POST["mail"] . "')";


    Kleiner Tipp: benutze nur kleingeschriebene Wörter für die datenbank. Dann gibts keine Probleme wenn du mal kleine Benutzt und dann wieder große...

  • arg natpürlich konnte das nicht gehen :X

    Code
    $sqlab = "INSERT INTO users";
    $sqlab .= "(Vorname, Nachname, UserName,";
    $sqlab .= " UserPass, UserMail) values ";
    $sqlab .= "('" . $_POST["vor"] . "', ";
    $sqlab .= "'" . $_POST["nach"] . "', ";
    $sqlab .= $_POST["nick"] . ", ";
    $sqlab .= $_POST["pass"] . ", ";
    $sqlab .= "'" . $_POST["mail"] . "')";

    Versuch dem Tip mit dem Kleinschreiben , auch bei mir lag es daran das ich bei "UserName" einfach "Username" geschrieben hatte... aber nun müsste es gehen

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Ich hätte es anders gecodet:

    müsste klappen, probiers mal :D

  • langsam wird mir das ganze fast schon peinlich... Ihr bemüht euch so, aber ich muss euch leider enttäuschen... Keiner der drei Vorschläge funktioniert..

    @ Riester-Rente: Bei deinem Code hab ich noch das Passwort und den Tabellennamen eingefügt (für $tabellenname in Zeile 11)
    Ausserdem musst ich noch in Zeile 12 den Wert $_POST['passwort'] in $_POST['pass'] umwandeln (siehe Name von Textfeld)... Das war richtig soweit oder?
    Nun hatte ich also folgenden Code:

    folgende Fehlermeldung:
    Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in *Verzeichnis* on line 12.
    Falls jemand den Fehler findet bitte melden.

    @ K.Y.L.T. und Koma: Eure Scripts hab ich auch ausprobiert, ich hab in der MySQL-Tabelle nun alles klein geschrieben und auch die Werte entsprechend geändert. Der Code sieht jetzt so aus:

    Nachdem ich etwas in die Felder eingetippt habe und auf abschicken geklickt habe, folgende Ausgabe:
    "Verbindung hergestellt.
    Mit Datenbank verbunden.
    Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt"

    Falls das hier anscheinend nicht klappen würde, weiss einer wo ich sonst ein Anmeldescript herbekomme? Oder findet noch jemand nen Fehler?
    Nochmal ein herzliches Dankeschön an alle, die sich hier bemühen.

    mfg T.B.S.

    EDIT// Vielleicht nützt es was, wenn ihr mal schnell selber die Datenbank "users" anlegt. (Die Daten habt ihr ja). Mit PHP Myadmin ist das eine sache von 5 Minuten. Ich kann das nich so gut beurteilen, aber vielleicht ist es einfacher den Fehler zu finden wenn man den Code und die DB selber hat und daran herumbasteln kann.

  • hmm.. Wenn den Fehler anscheinend niemand findet, hat jemand ein anmeldescript, das er mir zur Verfügung stellen könnte. (Anpassen an die DB würd ich selbstverständlich selber).. Oder weiss jemand wo ich eins herbekomme?

    Danke im voraus.

    mfg T.B.S.

  • der mysql error wäre ganz praktisch

    häng mal hinter die abfrage or die(mysql_error());

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Ich kann nich viel daraus schliessen, aber könnt was bringen. Folgende ausgabe:

    Verbindung hergestellt.
    Mit Datenbank verbunden.
    Unknown column '*Eingabe_vom_Feld_nick*' in 'field list'

    Es hat einfach ausgegeben, den Nick den ich eingetippt habe in field list.... bin noch zu unerfahren um den Fehler zu finden, findet ihn jemand. Klar ist wohl dass es was mit dem Nick ist...

    Auf deutsch soviel wie "Unbekannte Spalte *Eingabe* im Feld list(e)....
    Ist das ungefähr richtig übersetzt?

  • lass den Bereich Nick doch mal komplett raus, bzw entferne den Codeteil der mit "Nick" zu tuen hat aus dem Code und schaue mal nach obs ohne geht, wenn ja einfach einen der anderen funktionierenden Feldercode Daten kopieren und abändern...und schauen ob das dann auch geht... wenn nicht kannst du dich auf den teil konzentrieren den du da abgeändert hast für den Nick...


    MfG

    PHPDummy

  • leg mal die datenbank neu an, und schreib alles klein !
    und in deinen abfragen dann auch, dann kommt man auch nicht durcheinander !!

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Hab alles was mit Nick zu tun hatte mal rausgeworfen und bin endlich auf die Lösung gekommen mithilfe der darauf folgenden Fehlermeldung. Danke an alle für ihre Hilfe. Falls es noch wen interessiert, der richtige Code ist der hier:


    Waren nur kleine Fehler, aber eben doch Fehler.

    mfg T.B.S.