PHP Formular nach Klicken des Submit Buttons nicht löschen

Fehlermeldung - (programmieren, HTML, Fehlermeldung)

7 Antworten

Naja, die Werte gibt es offensichtlich (noch) nicht.
Und ne Idee damit die Werte nicht aus dem Formular gelöscht werden:

<form action="" method="post" target="_blank">

PS: Das ist keine Fehlermeldung, sondern nur eine Notiz, also die niedrigste Stufe einer Meldung.

Hallo Phippe,

da wie von anderen schon erwähnt, die Variable $_POST vor dem Abschicken des Formulars noch gar nicht existiert, muss Du diese entweder vor der Benutzung erstellen oder vor jeder Verwendung ein @ zur Unterdrückung einer Fehlerausgabe davorsetzen.

Codebeispiel für Variante 1 (erstellen einer $_POST, sofern nicht vorhanden):

<?php
    if (!isset($_POST)){
        foreach (array('d1', 'h1', 'm1', 's1') as $item){
            $_POST["$item"] = '';
        }
    }
?>

Variante 2: (@ vor jeder Verwendung):

<input type="text" name="d1" style="text-align:right;" value="<?php echo @$_POST['d1']; ?>">
alle anderen Input-Felder entsprechend

Gruß Kira-Bianca

Als erster Schritt ist das doch schon mal geeignet.

Jetzt gehst Du iterativ weiter voran:

Du hast soeben vom PHP-Interpreter in aller Form und Schönheit erläutert bekommen, daß Deine Daten beim ERSTEN Aufruf des Formulars noch nicht gesetzt sind. Klar, oder? Wenn Du ein Geschäft frisch betrittst, erwartest Du ja AUCH nicht hellseherische Fähigkeiten vom Verkäufer, daß der unmittelbar beim ersten Betreten Dir Deinen zukünftig gefüllten Einkaufskorb MITSAMT dem zukünftigen Inhalt präsentiert!

Oder?!

Gehe also davon aus, daß Du dem Besucher ERSTMAL LEERE(!) Dateninhalte bietest.

Zu deutsch und zum mit-Tackern:

  • Sorge dafür, daß Deine Daten ERSTMAL(!) zu Leer-Strings initialisiert werden!
  • Sorge DANACH (!) dafür, daß eventuell (!) gesendete Nutzerdaten in Deine bereits initialisierten Datenelemente übernommen werden!

Damit kannst (und - dringend - solltest) Du alle Hinweis-Meldungen eingeschaltet lassen. Denn GERADE (!) für einen Anfänger sind diese Hinweise krass wichtig, ihm seine massiv auftretenden Flüchtigkeitsfehler um die Ohren zu hauen! Tu Dir das nicht an, daß Du diese gut gemeinte und gut funktionierende Hilfe unter dem eigenen Hintern absägst!

Vor dem ersten Senden sind die Variablen $_POST['s1'] noch nicht gesetzt. Daher kommt die Fehlermeldung. Schickst du das Formular 1x ab, geht es.

Die $_POST-Variablen existieren nicht, die du benutzt. Hast du im form-Element method auf post gesetzt?

<form action="" method="post">

Wenn nicht, landen deine Werte in $_GET


Phippe 
Fragesteller
 11.08.2013, 21:05

Ja habe ich

0
cat64k  11.08.2013, 21:18

was anderes würde mir da jetzt auch nicht einfallen.

0
Phippe 
Fragesteller
 11.08.2013, 21:25
@cat64k

Habs nun "hingekriegt", hab diesen Code davorgesetzt:

error_reporting(E_ERROR | E_WARNING | E_PARSE);
0
RobbingHood  11.08.2013, 23:00
@Phippe

Wow ._.

Damit löst du das Problem nicht, du unterdrückst nur die Meldung ^^

0
KiraBianca  12.08.2013, 09:02
@Phippe

Vom Setzen eines geänderten Error-Reports muss ich dringends abraten. Fehlermeldungen, gerade die Warnings, sind sehr wichtig, um mögliche Tippsel- oder Logikfehler zu erkennen. Erst, wenn ein Script wirklich fertig ist und soweit überblickbar garantiert fehlerfrei läuft, kann an der Fehlerausgabe etwas geändert werden. Und da empfiehlt sich, jegliche Fehlermeldung zu unterdrücken, also error_reporting(0);

0