$ _POST ist nach der Formularübergabe leer [geschlossen]

8

Ich habe diese Testseite auf meinem Server eingerichtet. Bitte sagen Sie mir, warum das Array $_POST selbst beim Senden des Formulars nichts enthält. Ich habe das in drei verschiedenen Browsern versucht und nichts passiert.

%Vor%

Ich schreibe PHP seit Jahren und das ist noch nie passiert. Was ist falsch an diesem Code?

    
Mike Stanford 12.05.2009, 18:38
quelle

7 Antworten

51

Ihre Eingabeelemente haben keine Namensattribute. Sollte sein:

%Vor%

Wenn ein Eingabeelement kein Namensattribut hat, wird es nicht als Teil der POST-Daten gesendet.

    
Ayman Hourieh 12.05.2009, 18:40
quelle
9

Nun, Sie haben keine Aktion für das Formular-Tag? Es sollte der Skriptname sein:

%Vor%

... und Sie geben auch nicht die Namen für jede Formulareingabe an - der Browser sendet die ID nicht als Elementnamen.

    
BrynJ 12.05.2009 18:40
quelle
4
%Vor%     
MichaelICE 12.05.2009 18:41
quelle
2

Es gibt kein name-Attribut für die Eingabeelemente.

    
cgp 12.05.2009 18:41
quelle
1

Ich schlage vor, dass Sie etwas wie die folgenden Funktionen schreiben, die auf den Zend_View-Helfern basieren.

%Vor%

Dann wirst du nie wieder etwas vergessen / vermissen.

%Vor%

Tipp:

  • Wenn id nicht in attribs definiert ist, ist id identisch mit name, außer für labels, für die id im for="$ id" -Attribut verwendet wird und formHidden sollte auch keine Standard-ID haben.
  • formCheckbox schreibt eine FormHidden mit demselben Namen vor sich selbst mit dem negativen Wert, so erhalten Sie einen Rückgabewert, wenn das Kontrollkästchen ebenfalls nicht aktiviert ist.
  • formCheckbox options ist ein Array mit den Werten für checked oder unchecked.
  • Verwenden Sie einen Filter mit FILTER_VALIDATE_BOOLEAN, um den Rückgabewert von einem Kontrollkästchen zu lesen, um zu überprüfen, ob es markiert wurde oder nicht.
OIS 12.05.2009 21:09
quelle
0

Alle Ihre Eingabeelemente benötigen ein Namensattribut.

    
Jon Ursenbach 12.05.2009 20:45
quelle
0

Sie haben die Namensattribute vergessen, damit Ihr Skript funktioniert. Sie können auch das "for" -Tag in Ihre Beschriftungen einfügen, damit es mit den Namensattributen Ihrer Eingabe übereinstimmt. Dies ist keine Voraussetzung, kann aber bei der CSS-Formatierung Ihres Formulars helfen:

%Vor%

Hilft dabei, alles anzupassen und Ihren Code rationeller und lesbarer zu machen, wenn Sie 6 Monate später darauf zurückkommen müssen. Das Aktionsattribut, wenn Sie nicht eins ausfüllen möchten, würde ich dies als Ihre Aktion einschließen:

%Vor%

Dadurch wird sichergestellt, dass Ihre Seite den Anforderungen des Formulars entspricht und das Skript ausgeführt werden kann. Scheint wie ein einfacher Überblick. Hoffe, das hilft.

    
stogdilla 13.05.2009 04:09
quelle

Tags und Links