PHP Seltsames Form Verhalten: $_POST ist weg

gaunt

Lt. Commander
Registriert
Aug. 2007
Beiträge
2.016
Hi
ich hab lokal auf nem WAMP eine PHP Anwendung geschrieben. Ein Template Formular wird verwendet um neue Datensätze anzulegen oder zu editieren und im bei der Eingabe Serverseitig geprüfte Fehleingabe anzuzeigen.
Also immer ein und das selbe Formular mit der action="#" (oder Testweise auch ein kompletter Pfad) und der method="post" um einfach wieder im selben Script zu landen.

Das seltsame: Lokal funktioniert alles, aber wenn ich das Teil auf dem späteren wirk LAMP laufen lasse gibt es die POST Variable nicht?!? Es fehlt also nicht etwa ein Wert, sondern $_POST ist nichtmal gesetzt.
Es verhält sich so als hätte man einen Link geklickt und nicht ein Form submittet.

Hat einer ne Idee wonach ich mal schauen sollte?
 
Kannst du mal den Code (in Auszügen) anhängen? Evtl. hast du vergessen deinen Input-Felder Namen zu geben?

Als in etwa so:
Code:
<input type="text" id="lastname" name="lastname" placeholder="Nachname">
 
Wenn derselbe Code sich in verschiedenen Umgebungen unterschiedlich verhält, liegt der Verdacht nahe, dass die Umgebung schuld ist. Will sagen: Ich würde mal die php.ini-Dateien vergleichen und schauen, ob dir was auffällt.
 
Evtl. hast du vergessen deinen Input-Felder Namen zu geben?
Natürlich haben die Namen. Lokal funktioniert ja auch alles...

Ich würde mal die php.ini-Dateien vergleichen
Ich hab auf den Server keinen direkten Zugriff.

Im Prinzip müsste es auch funktionieren. Mache ich sowas hier:
<?php
var_dump($_POST);
?>
<form action="#" method="post">
<input type="text" name="test">
<input type="submit" value="senden">
</form>
Ist POST nach dem Absenden auch auf dem LAMP da. Im Prinzip macht das große Script auch nix anderes. Nur das eben einiges an Code mehr da ist. Der sollte aber soweit passen, da die Formverarbeitung lokal ja funktioniert. Und auch wenn ich im großen den vardump als erste ausgeführte Zeile mache ist das Mistding einfach nicht da.
 
versuch mal das als action
PHP:
<form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
 
$_SERVER['PHP_SELF'];
Geht nicht. Das ist ein kleines selbstgeschriebenes MVC Framework.
Gestartet wird immer die Index php egal welche URL angegeben wird, sodass phpself unweigerlich auch auf die Index zeigen würde.

EDIT:
Aber nur so neben bei: Probiert hatte ichs trotzdem schonmal. Mit dem Vardump in der Index. Leider mit gleichem Erfolg...
 
Nein. Ich bin definitiv im Limit.
 
gaunt schrieb:
Natürlich haben die Namen. Lokal funktioniert ja auch alles...
Haben die Felder Namen und IDs? Da gibt es oft kleine, aber feine Unterschiede.

Abgesehen davon wäre der Code des "großen" Formulars und der Stelle, wo du $_POST auswertest, äußerst hilfreich.
 
geht $_REQUEST auch nicht?
gibt es evtl. einen redirect (welcher die POST daten verfallen läßt)?
 
wo du $_POST auswertest, äußerst hilfreich.
Naja, en vardump ist ein vardump. Egal wie groß der Rest vom Script ist;-) Zumal ja nix da ist was ich Auswerten könnte...
Haben die Felder Namen und IDs? Da gibt es oft kleine, aber feine Unterschiede.
Nur Namen. Die ID's werden im POST eh nicht übertragen.

Aber der Schuldige ist vermutlich gefunden:cool_alt:
Sein Name ist Varnish und er versteck sich feige hinter nem LB :evillol: Also quasi ein Art MitM :p
Der schmeisst wohl in der gegebenen Config unter bestimmten Bedingungen die POST weg und lässt sie unter anderen Bedingungen durch. Da müssen die Server Jungs mal schauen. Von so nem Schweinskram lass ich die Finger...

Und wer ersetzt mir jetzt die durchgelaufenen Schuhsohlen?

EDIT:
gibt es evtl. einen redirect (welcher die POST daten verfallen läßt)?
Wird schon wärmer;-) Wie gerade geschrieben wars wohl der Varnish:-)
 
Zurück
Oben