Daten werden nicht übermittelt

  • Hallo und einen wunderschönen guten Abend,

    ich sitze hier seit Stunden am tüfteln und komme einfach nicht weiter.

    Ich habe ein Script in PHP geschrieben mit welchem Daten in eine Datenbank eingetragen werden sollen. Es handelt sich dabei um Teilnehmerkarten für mehrere tausend Benutzer und diese Daten alle selber in eine Datenbank einzupflegen wäre einfach der Wahnsinn und weiterhin soll ja jeder Karteninhaber selber entscheiden können ob er sich registriert oder nicht. Die Datenbank habe ich unter phpMyAdmin angelegt, also handelt es sich um eine MySQL Datenbank. Es sind alle Felder vorhanden und auch klar definiert. In dem Script, welches ich euch natürlich einfügen werde, funktioniert es soweit das man den usernamen bzw. die Kartennummer und die Passwörter eingeben muss. Nachdem ich jedoch die Felder Vorname und Nachname eingefügt habe, bekomme ich immer wieder die Meldung: bitte füllen Sie alle Felder korrekt aus. Hat jemand eine Idee woran das liegen könnte ??? Wäre über jede Hilfe dankbar.


    Der php Code:


    der dazugehörige HTML Code:



    Ich danke jetzt schon einmal für eure Hilfe und vielleicht findet einer von euch den Fehler.

    Einmal editiert, zuletzt von synaptic (13. Oktober 2011 um 22:40) aus folgendem Grund: codetags für bessere lesbarkeit ergänzt

  • Hier ist ein aktuelles PHP Script nachdem ich dachte das ich den Fehler entdeckt habe. Leider war das fehlen von Vorname und Nachname in Zeile 25 auch nicht der Fehler.

    Hier das aktuelle Script:


    <?php
    $verbindung = mysql_connect("localhost", "root" , "")
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

    mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden");

    $username = $_POST['username'];
    $passwort = $_POST['passwort'];
    $passwort2 = $_POST['passwort2'];
    $vorname = $_POST['vorname'];
    $nachname = $_POST['nachname'];

    if($passwort != $passwort2 OR $username == "" OR $passwort == "" OR $vorname == "" OR $nachname == "")
    {
    echo "Eingabefehler. Bitte alle Felder korrekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
    exit;
    }
    $passwort = md5($passwort);

    $result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'");
    $menge = mysql_num_rows($result);

    if($menge == 0)
    {
    $eintrag = "INSERT INTO login (username, passwort, vorname, nachname) VALUES ('$username', '$passwort', `vorname`, `nachname`)";
    $eintragen = mysql_query($eintrag);

    if($eintragen == true)
    {
    echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
    }
    else
    {
    echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
    }


    }

    else
    {
    echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
    }
    ?>

    Noch einmal danke für eure Hilfe.

  • also was mir direkt ins gesicht springt, ist dass du nirgendwo mysql-fehler anzeigst, die ja ggf durchaus auftreten könnten.

    dann lass dir doch mal das $_POST-array anzeigen (var_dump oder print_r), um zu prüfen, ob auch wirklich alles ankommt :)
    (hinweis: groß- und kleinschreibung beachten)

  • Alle Daten wie der Username bzw. die Kartennummer kommen in der Datenbank an, aber als ich dann weiter geschrieben habe, ist halt bei den Feldern Vorname und Nachname der Fehler aufgetreten das immer wieder angezeigt wird das nicht alle Felder korrekt ausgefüllt sind. Die weiter Entwicklung im Thema Fehler ausschließen werde ich machen wenn das Script in seinen Grundfunktionen erst einmal funktioniert.

  • also für mich ist es ein gravierender unterschied ob ich ein textfeld "nachname" nenne oder "Nachname"

    und demnach auch ob ich das feld nach abschicken mit $_POST['nachname'] oder $_POST['Nachname'] überprüfe.
    Linuxsysteme sind case-sensitive von daher frag ich mich auch erstmal, wieso daten in der db ankommen...

  • In der Datenbank ist alles kleingeschrieben, sowie auch im Script. Das einzige was halt großgeschrieben ist, sind die Namen der Button im HTML Text. Aber die haben ja keine Auswirkungen auf das Senden der Daten an die Datenbank. In dem Script steht alles genau so wie es auch in der Datenbank steht, also an der Groß und Kleinschreibung kann es nicht liegen.

  • ok offensichtlich dringe ich so nicht zu dir durch...

    HTML
    <input size="24" maxlength="50" name="Nachname" style="font-weight: 700"><b><br><br>

    kannst du nicht duch $_POST['nachname'] abfragen

    alternativ gehe doch mal daher uns zerpflücke deine if-abfrage!
    nimm für jeden fall ne eigene anweisung und mach nen eigenen error den du dir anzeigen lässt, so wirst du direkt rausfinden wo der hase im pfeffer sitzt.

    mach dir mal ne php-datei
    und da stopfste DAS hier rein:

    und dann schau mal was dir ausgegeben wird...
    ich hoffe du verstehst dann was ich dir mitteilen will...

  • Ich habe das eine N im HTML Script von Groß auf Kleinschreibung geändert, jedoch besteht immer noch das selbe Problem. Frage mich gerade wie ich das einige hundertmal überlesen konnte. Habe mir desweiteren eine php Datei mit dem von dir geposteten Script angelegt und erhalte darauf folgende Meldung:

    Array
    (
    [username] => 13579
    [passwort] => huhu
    [passwort2] => huhu
    [vorname] => friedrich
    [Nachname] => keineahnung
    )

    keineahnung


    hilft mir aber auch nicht wirklich weiter, da ich so immer noch nicht weiß wo der Fehler liegt. Ich danke dir bis hierher trotzdem schon einmal für deine Mühe.

  • mein script zeigte dir zum einen die case-sensitivity, die du ja zig mal überlesen hast und sonst nix.. ok die vDebug kannste evt noch gebrauchen, wer weiß..

    nun.. hast du denn auch scho deine if-abfrage mal aufgedöselt?
    wie willst du denn rausfinden wo der fehler liegt, wenn du alle möglichen fehler in einer abfrage aufzufangen versuchst und dann einen allgemeinen text als fehlermeldung ausgibst??

  • Ist hier wieder unser allseits beliebter "Programmierer" am Werke?

    Zitat

    [Nachname] => keineahnung

    Für mich steht da immer noch ein großes N

  • Ist hier wieder unser allseits beliebter "Programmierer" am Werke?


    Für mich steht da immer noch ein großes N

    ja das war ja auch mein script, was die ausgabe erzeugte ;)

    und zu wind-Os vs. Linux: hatte ich bisher noch nich getestet^^ aber seit gestern weiß ich, dass es bei win auch is wie bei lin

  • Danke für eure Hilfe, *ironie*
    habe den Fehler nun selber gefunden. Es war zwar die richtige Datenbank angegeben, aber der falsche Tabellenname.

  • also wenn du die falsche tabelle wählst und du den fehler mit der eingabe bekommst, schmeiss dein script in die tonne (obgleich ich nicht nachvollziehen kann, wieso die meldung überhaupt kommt!)

    diese problematik hättest du direkt erkannt, wenn du, wie ich bereits erwähnte sql-errors ausgeben lassen würdest!

    deine ironie kannst du dir stecken, wenn du lern und beratungsresistent bist.
    den falschen tabellennamen, kann hier niemand riechen geschweige denn erahnen oder gar beim nachstellen erkennen!!