Post/Get-Problem
Julian Finn
- php
Hallo,
ich habe hier ein sehr seltsames Problem:
folgendes Formular (in kontakt.php3) implementiert
<form name="kontakt" action="kontakt.php3?senden=yes" method="post" enctype="text/plain">
sollte eigentlich seine Daten übergeben und damit etwas anstellen.
per Get funktioniert das alles acuh schön, per Post sind die Formulardaten aber nicht auffindbar (zumindest nicht als variablen, so wie es eigentlich sein sollte...)
meine theorien:
1. in Php3 (ist noch afu dem Server installiert auf dem ich gerade arbeite ) gab es die möglichkeit noch nicht, die per post übermittelten Variablen direkt als $variablenname anzusteuern
2. dadurch daß über die URL schon eine variable übergeben wird, frißt das skript die per post übergebenen variablen auf
stimmt eine davon? oder kann es an was anderem liegen?
ziemlich ratlos zur Zeit:
Julian
Hi,
meine theorien:
- in Php3 (ist noch afu dem Server installiert auf dem ich gerade arbeite ) gab es die möglichkeit noch nicht, die per post übermittelten Variablen direkt als $variablenname anzusteuern
Nein, PHP3 unterstützt diese Option ebenfalls.
- dadurch daß über die URL schon eine variable übergeben wird, frißt das skript die per post übergebenen variablen auf
Das glaube ich schon eher!
Probier es doch einfach mit einem Hiddenfield
<input type="hidden" name="senden" value="yes">
Das sollte dann klappen... hoffe ich ;-)
Ciao
Christian
Hi, noch ein Nachtrag: also ich hab jetzt mal die action = kontakt.php3 gesetzt.
get funktioniert, mit post werden keine Variablen übertragen.
seeehr strange, das ganze. weiß jemand ob so ein fehler bekannt ist und wann der auftritt? (zumal ich das jetzt auch mal lokal gemacht hab (mußt dazu n teil des skriptes rauskommentieren, deshalb hab i ch das vorher nicht versucht) und lokal is eigntlich php4 eingerichtet...
Grüße,
Julian
Hallo,
ich habe hier ein sehr seltsames Problem:
folgendes Formular (in kontakt.php3) implementiert
<form name="kontakt" action="kontakt.php3?senden=yes" method="post" enctype="text/plain">
sollte eigentlich seine Daten übergeben und damit etwas anstellen.
per Get funktioniert das alles acuh schön, per Post sind die Formulardaten aber nicht auffindbar (zumindest nicht als variablen, so wie es eigentlich sein sollte...)
meine theorien:
- in Php3 (ist noch afu dem Server installiert auf dem ich gerade arbeite ) gab es die möglichkeit noch nicht, die per post übermittelten Variablen direkt als $variablenname anzusteuern
- dadurch daß über die URL schon eine variable übergeben wird, frißt das skript die per post übergebenen variablen auf
stimmt eine davon? oder kann es an was anderem liegen?
ziemlich ratlos zur Zeit:
Julian
Hi,
get funktioniert, mit post werden keine Variablen übertragen.
bin auf folgendes gestoßen:
http://www.php.net/manual/de/language.variables.external.php
Ist das PHP-"track_vars"-Feature eingeschaltet (entweder durch track_vars-Konfigurations- Einstellung oder per <?php_track_vars?> -Anweisung), können die durch die POST- oder GET-Methode übertragenen Variablen in den globalen assoziativen Arrays $HTTP_POST_VARS und $HTTP_GET_VARS wieder gefunden werden.
Christian
folgendes Formular (in kontakt.php3) implementiert
<form name="kontakt" action="kontakt.php3?senden=yes" method="post" enctype="text/plain">
sollte eigentlich seine Daten übergeben und damit etwas anstellen.
per Get funktioniert das alles acuh schön, per Post sind die Formulardaten aber nicht auffindbar (zumindest nicht als variablen, so wie es eigentlich sein sollte...)
kontakt.php3?var=inhalt == GET
das formular als ganzes ist aber als post deklariert... du kannst aber nicht gleichzeitig posten und geten.. klar ?
Lösung:
spar dir das senden=yes
du hast doch sicher einen submit button oder ?
<input type="submit" name="senden" value="Absenden">
in php:
if(isset($senden)){}
nachteil:
wenn es ein einzeiliges formular ist MUSST du den submit button angeben, -> Lösung: <input type="hidden" name="senden" value="yes">
Letzteres ist meist die sauberere lösung.
lg
Ludwig
Hi,
kontakt.php3?var=inhalt == GET
das formular als ganzes ist aber als post deklariert... du kannst aber nicht gleichzeitig posten und geten.. klar ?
da muss ich dir widersprechen - ich hatte damit eigentlich noch nie probleme. Durch die Entwicklung unter PHP3 und des Unwillens, Cookies einzusetzen, übergebe ich beim obigen Projekt jeweils die SessionID entweder per Link oder im Falle eines Formulars in der Form <form method="post" action="script.php?sid=<? echo $sid; ?>"> und das hat funktioniert bei mir eigentlich immer (SessionID als GET, die Daten aus dem Formular als POST) - auch wenns nicht die übersichtlichste Lösung ist.
liebe gruesse aus oesterreich
Martin, der wohl bei der nächsten Überarbeitung seiner Seiten nicht mehr so schreibfaul sein sollte :-)