Variablen per POST übergeben
Heizer
- php
0 Benedikt Hermann0 Heizer0 Henryk Plötz0 Heizer
Hallo liebes Forum
Ich versuche immer, die URL-Zeile möglichst übersichtlich zu halten, übergebe Variablen also meist per POST, und nicht per GET. Wenn ich aber per header(location: ...); weiterleite, kann ich die Variablen ja nur an die URL anhängen.
Meine Frage ist nun:
Gibt es eine Möglichkeit, mit PHP (oder einer anderen Technik) Variablen selbst per POST zu übertragen, z.B. mit header()?
danke
Heizer
Meine Frage ist nun:
Gibt es eine Möglichkeit, mit PHP (oder einer anderen Technik) Variablen selbst per POST zu übertragen, z.B. mit header()?
Hallo,
Du könntest es mittels eines Formulares mit Hidden Fields welches über ein Javascript automatischa abgeschickt wird übergeben...
bspl.:
<form action="datei2.htm" method="post">
<input type="hidden" value="wert1" name="name1">
</form>
<?php
if (x < y= {
echo '<script language="javascript">
document.form[0].submit();</script>';
}
?>
Meine Frage ist nun:
Gibt es eine Möglichkeit, mit PHP (oder einer anderen Technik) Variablen selbst per POST zu übertragen, z.B. mit header()?
Hallo,
Du könntest es mittels eines Formulares mit Hidden Fields welches über ein Javascript automatischa abgeschickt wird übergeben...
Tja, da ist halt dann das Problem, daß ich davon abhängig bin, ob der Browser Javascript zuläßt, was eigentlich entgegen meiner Prinzipien ist.
POST Variablen werden doch im Header versandt, oder bin ich da falsch informiert? Eigentlich müßte es also möglich sein, per header() solche Variablen zu übergeben.
Danke
Heizer
Moin,
Tja, da ist halt dann das Problem, daß ich davon abhängig bin, ob der Browser Javascript zuläßt, was eigentlich entgegen meiner Prinzipien ist.
Genau
POST Variablen werden doch im Header versandt, oder bin ich da falsch informiert?
Ja (zu "falsch informiert")
Eigentlich müßte es also möglich sein, per header() solche Variablen zu übergeben.
Nein
Bei HTTP sendet der Browser an den Server eine Anfrage. Die enthält eine Requestzeile (z.b. GET /blabla.php?ha=hi HTTP/1.1 oder POST /huhu.php HTTP/1.1) und eine Menge Header die unter anderem den User-Agent, den Namen des Servers von dem die Informationen abgefragt werden, eventuelle Cookies und all so was enthalten. Danach kann dann optional noch ein Body kommen. Bei GET werden alle zu übergebenden Paramter hinter den URL angehängt, bei POST sind sie im Body enthalten.
Der Server sendet dann eine Antwort den Browser zurück. Die enthält eine Responsezeile (z.b. HTTP/1.1 200 OK oder HTTP/1.1 404 Not found) sowie eine ganze Reihe von Headern. Da drin steht unter anderem die Version des Webservers, der Mime-Typ des gelieferten Bodys, eventuell zu setzende Cookies und all sowas. Unter anderem sind da auch die Header bei die du mit header() sendest. Danach kommt im Body die angefragte Datei.
Fazit: Ohne irgendwas am Client zu tricksen kannst du ihn nicht dazu bringen Variablen per POST zu schicken.
Alternativ möchtest du vielleicht die nötigen Sachen in einer Session speichern? Du merkst dir einfach das was du sonst hättest per POST schicken wollen in eine Sessionvariable oder ein Array das in der Session registriert ist und weist den Daten dort einen (kurzen) Identifier zu, etwa eine durchlaufende Variable. Deine Links brauchen dann nur noch die Session-ID und die die jeweilige Nummer enthalten. Das aufgerufene Skript kann sich dann die Daten wieder aus der Session herausholen.
--
Henryk Plötz
Grüße aus Berlin
Hi Henryk, gruß nach Berlin
Vielen Dank, so funktioniert das also. Gut, dann muß ich mir was anderes überlegen, ich denke, daß ich zu deinem Vorschlag greifen werde.
Heizer
Grüße aus München