Tom: $_GET vs. $_POST

Beitrag lesen

Hello,

[...] Das gilt natürlich auch für Textfelder.

Nein.

hey, hey! Nicht einfach verkürzt zitiren und den Sinn verdrehen!

Nochmal in extra-lang:
Das gilt auch für Textfelder, dass es unpraktische ist, wenn man nicht weiß, ob das Feld nun zurückgesetzt werden soll, oder ob es einfach "vergessen" wurde, zu übertragen, z.B. weil man im Formular einen Fehler/eine Änderung im Namen geamcht hat, aber das Backend nicht angepasst hat.

Du kannst aber im Backend leicht abfragen, ob das Element benutzt wurde:

Was verstehst du hier unter "benutzt"?

if (isset($_POST['element']) and strlen($_POST['element'] > 0)
     {
         ## Feld wurde benutzt
     }

Der Kommentar sollte richtigerweise heißen: Feld enthält mindestens 1 Zeichen.
Die Prüfung auf strlen()>0 ist m.E. überflüssig. Auch mit einem Leerstring als Parameter ist isset() erfüllt, der Zugriff auf den entsprechenden $_POST- $_GET-Eintrag also ohne Fehler/Notice möglich und erlaubt.

??? Den Satz verstehe ich nicht. Es ging doch gerade darum, festzustellen, welche Felder übertragen wurden und welche davon auch benutzt wurden. Wenn man nun unterschiedliche Formulare als Quelle hat und immer dasselbe Ziel, dann hat diese Abrage durchaus einen Sinn.

if (isset($_POST['element']) and strlen($_POST['element'] > 0)
        Element wurde übertragen            Elemetrn wurde benutzt

Das einzige, was hier wohl obsolete ist, die das trim($_POST['element']) vor dem strlen(), da dies von HTTP und PHP selber erledigt wird. Darum habe ich es hier weggelassen.

Üblicherweise prüft man das isset($_POST['element']) auch schon zu einem früheren Zeitpunkt, also dort, wo man den vorgeschriebenen Satzaufbau mit dem übermittelten des Formulares vergleicht.

Wenn das Form dann eine abweichende Anzahl Datenelemente liefert oder Kontrollelemente dabei sind, die gar nicht erwartet wurden, ist es gefaked. Übertagungsfehler kann man in dieser Schicht wohl schon ausschließen. Die würden schon auf IP-Schicht zum Fehler führen (oder doch erst in der TCP-Schicht?).

Liebe Grüße aus dem Cyberspace

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de