Undefined index in $_POST

  • Wie der Thread Titel schon sagt, ich habe ein Problem mit dem $_POST.

    Mein Code:


    Hier der HTML Teil:

    Mit isset habe ich es auch schon versucht....
    Debug Meldungen die Variablen sind immer leer!
    Bitte um Hilfe.

    MfG

  • Ich liebe es, wenn Fehlermeldungen und Quellcodes nicht komplett gepostet werden, denn dann muss man sich auch nicht die Mühe machen, nach einem Fehler zu suchen.

  • FehlerMeldung

    Notice: Undefined index: prebuy in C:\xampp\htdocs\test\save.php on line 94

    Notice: Undefined index: waffek1 in C:\xampp\htdocs\test\save.php on line 95

    Notice: Undefined index: waffek1 in C:\xampp\htdocs\test\save.php on line 96

    Notice: Undefined index: waffek2 in C:\xampp\htdocs\test\save.php on line 97

    Notice: Undefined index: waffek3 in C:\xampp\htdocs\test\save.php on line 98

    Notice: Undefined index: waffek4 in C:\xampp\htdocs\test\save.php on line 99

    Notice: Undefined index: waffe4 in C:\xampp\htdocs\test\save.php on line 100

    Notice: Undefined index: waffe3 in C:\xampp\htdocs\test\save.php on line 101

    Notice: Undefined index: waffe2 in C:\xampp\htdocs\test\save.php on line 102

    Notice: Undefined index: waffe1 in C:\xampp\htdocs\test\save.php on line 103

    Notice: Undefined index: maxrecon in C:\xampp\htdocs\test\save.php on line 104

    Notice: Undefined index: maxmedic in C:\xampp\htdocs\test\save.php on line 105

    Notice: Undefined index: maxengi in C:\xampp\htdocs\test\save.php on line 106

    Notice: Undefined index: maxassi in C:\xampp\htdocs\test\save.php on line 107

    Notice: Undefined index: minlevel in C:\xampp\htdocs\test\save.php on line 108

    Notice: Undefined variable: sgkicker in C:\xampp\htdocs\test\save.php on line 136

    Notice: Undefined variable: waffe1 in C:\xampp\htdocs\test\save.php on line 136
    Fehler: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' prebuy=, minlevel=, maxrecon=, maxassi=, maxengi=, maxmedic=, waffe1k=, waffe2k' at line 1


    Quellcode:

  • Auweia, wo soll ich da anfangen. Da sind massenhaft Macken drin!

    Aber ich beschränke mich jetzt nur mal auf deine Frage:

    So wie es aussieht, rennt das Script in diese if-Abfrage:

    PHP
    if($c == 'editserver')


    Das scheint wohl auch zu passieren, wenn das Script nicht vom Formular aufgerufen wird.

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Und noch ein Tipp: wenn du etwas mehr Sorgfalt beim Einrücken der Zeilen walten lassen würdest, wäre das Script auch besser lesbar

  • Wie gesagt, ich finde den Fehler einfach nicht....

    Die Schritte sind schön und gut aber helfen mir nicht weiter.
    Deswegen schreibe ich auch in ein Forum, um Hilfe für ein für mich selbst nicht lösbares Problem zu erhalten.


    Und mein eigenes Script hier ist korrekt Eingerückt.

    MfG

  • Die Schritte sind schön und gut aber helfen mir nicht weiter.


    Doch, tun sie. Gebe alle relevanten Variablen aus, nur so wirst du das Problem finden. Da ich das Script nicht einfach kopieren und testen kann, musst du wohl jede Menge echo's einbauen, um den Fehler zu finden.

  • Du verwendest ein uraltes Script zudem wurden dort Dinge von anderen Seiten eingefügt. Ich weiss ja nicht ob ihr das dürft.
    Aber selbst das kopierte funktioniert schon auf der Originalseite nicht mehr da zu alt.

    Siehe www.marlight-music.de

    Daher kann man nur raten neu schreiben.

    Die MySql API ist veraltet, man sollte mysqli verwenden.

  • Ich möchte das script behalten


    Du kannst das Script nicht behalten es ist uralt.
    Wenn demnächst auf die nächst höhere Version von PHP gewechselt wird gehen deine ganzen Datenbankabfragen nicht mehr. So wie jetzt mit den anderen Fehlern.

    Zitat


    , ich möchte nur wissen, wie ich das Problem fixe.

    Ok Anleitung von php 4 auf 5 folgen
    http://www.php.net/manual/en/migration5.php

    und dann weiter bis auf die aktuelle Version von 5.5

    Danach änderst du noch alles von HTML3 auf HTML 4.01 oder gleich auf HTML5.
    Der http://validator.w3.org/ ist dir dabei behilflich.

  • Danke, aber wenn ich dieses Script nicht benutzen kann, dann brauch ich ein neues mit genau den gleichen Funktionen, doch ich finde kein "Anfänger" freundliches.

    Wenn ihr mir da behilflich sein könntet wäre es sehr nett.

    MfG

  • Jetzt hab ich ein anderes Login Script genommen und editiert doch wieder das gleiche Problem?!

    Ich steig da nicht mehr durch...

    Fehlermeldungen:

    Notice: Undefined variable: sgkicker in C:\xampp\htdocs\test2\admin\save.php on line 351

    Notice: Undefined variable: prebuys in C:\xampp\htdocs\test2\admin\save.php on line 351

    Notice: Undefined variable: minlevel in C:\xampp\htdocs\test2\admin\save.php on line 351

    Notice: Undefined variable: maxrecon in C:\xampp\htdocs\test2\admin\save.php on line 351

    Notice: Undefined variable: maxassi in C:\xampp\htdocs\test2\admin\save.php on line 351

    Notice: Undefined variable: maxengi in C:\xampp\htdocs\test2\admin\save.php on line 351

    Notice: Undefined variable: maxmedic in C:\xampp\htdocs\test2\admin\save.php on line 351

    PHP Code

    edit.php

    Save.php

    Das da bei der save.php Sachen auskommentiert wurden und bei edit.php hinzugefügt weis ich, da habe ich rumprobiert.

    Ich bin den Schritten gefolgt doch komme nicht weiter --> Im Forum fragen.

    Bitte um schnelle Hilfe

    MfG

    Einmal editiert, zuletzt von Mosby (8. August 2013 um 15:40)

  • Woher soll das Script die Variablen $sgkicker, $prebuys, $minlevel, $maxrecon, $maxassi, $maxengi und $maxmedic kennen? Ich empfehle dir dringends, die Grundlagen zu lernen. Im Moment eierst du da in einem Script rum, und das ohne die nötigen Kenntnisse, das kann nicht gehen.

  • Lerne die Grundlagen!!!
    Diese Werte sollen doch wohl aus dem Formular kommen, oder???

  • Ja sollen Sie.

    Und ich habe Grundwissen sonst würde das Tool das die Server Administriert ja auch nicht funktionieren oder?
    Oder die Server Anzeige.

    Ich habe nur bei diesem Formular den Fehler.

    Und ich finde Ihn nicht. Habe Debug Nachrichten gemacht gibt auch nichts ab, deswegen frage ich ja in einem Forum.

    Danke.

    MfG

  • Und ich habe Grundwissen


    Nein, hast du nicht, denn das Verarbeiten von Formulardaten gehört zu den Grundlagen!

    Deine Werte stehen im $_POST-Array