$_GET[''] oder $_POST['']
Bacher Oliver
- php
Es gibt eine Variable das ich unabhängig, post oder get abfragen kann?
Kann ich mir ehrlich nicht so vorstellen.
GET hängt die Formulardaten an die URL an, die die Seite anfordert.
POST bettet die Formulardaten in die HTTP-Anforderung ein.
DAs ist ja nicht dasselbe ;-)
Moin,
Kann ich mir ehrlich nicht so vorstellen.
Dann wurde Deine Vorstellung erweitert :-)
GET hängt die Formulardaten an die URL an, die die Seite anfordert.
POST bettet die Formulardaten in die HTTP-Anforderung ein.DAs ist ja nicht dasselbe ;-)
Deswegen kann aber eine Methode trotzdem prüfen, ob Daten an die URL angehängt wurden, oder ob Daten per STDIN hereingekommen sind, und dann das Ergebnis (es kann ja nur eines von beiden sein) auf eine allgemeine Weise zurückliefern.
Das CGI-Modul von Perl macht das genauso, da muss man sich auch nicht darum kümmern, ob POST oder GET, das vereinfacht Vieles.
Gruß,
-Efchen
Hallo Efchen,
Das CGI-Modul von Perl macht das genauso, da muss man sich auch nicht darum kümmern, ob POST oder GET, das vereinfacht Vieles.
da bin ich mir ja nicht so sicher. Ich bin froh, daß ich in PHP die Arrays $_GET, $_POST, $_COOKIE und $_SESSION getrennt abfragen kann.
Gruß, Andreas
Moin,
Das CGI-Modul von Perl macht das genauso, da muss man sich auch nicht darum kümmern, ob POST oder GET, das vereinfacht Vieles.
da bin ich mir ja nicht so sicher. Ich bin froh, daß ich in PHP die Arrays $_GET, $_POST, $_COOKIE und $_SESSION getrennt abfragen kann.
Wessen bist Du Dir nicht sicher?
Dass Perl das so macht? Ganz sicher. Weil ich es so benutzt habe.
Dass das was vereinfacht? Ich empfinde so. Zumindest bei GET und POST. Ich hatte bisher keine Anwendung, wo ich da unbedingt unterscheiden muss. $_COOKIE und $_SESSION kenne ich noch nicht, bin erst vor wenigen Monaten auf PHP umgestiegen, obwohl ich weiß, was Cookies sind und was Sessions sind.
Schönes Wochenende,
-Efchen
Hello,
Dass das was vereinfacht? Ich empfinde so. Zumindest bei GET und POST. Ich hatte bisher keine Anwendung, wo ich da unbedingt unterscheiden muss. $_COOKIE und $_SESSION kenne ich noch nicht, bin erst vor wenigen Monaten auf PHP umgestiegen, obwohl ich weiß, was Cookies sind und was Sessions sind.
Ja, es dauert schon ein paar Jahre und ggf. auch einiges Lehrgeld (Leergeld? denn das Portmonnaie ist dann hinterher leer *gg), bis man die Notwendigkeiten verstanden hat. Die PHP-Entwickler haben sich schon 'was dabei gedacht, als sie die Paramter-Streams auseinandersortiert haben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Ja, es dauert schon ein paar Jahre und ggf. auch einiges Lehrgeld (Leergeld? denn das Portmonnaie ist dann hinterher leer *gg), bis man die Notwendigkeiten verstanden hat. Die PHP-Entwickler haben sich schon 'was dabei gedacht, als sie die Paramter-Streams auseinandersortiert haben.
Dann würde ich mir wünschen, dass Du nicht von oben auf mich herab siehst und mich als Anfänger belächelst, sondern mir sagst, WAS sie sich dabei gedacht haben. Möglichst kurz bitte, nicht weil ich es möglicherweise nicht *verstehe*, sondern weil ich wahrscheinlich trotzdem weiter $_REQUEST benutzen werde, weil es das angenehmste für mich ist. Aber ich höre mir gern Deine Gründe an.
Gruß,
-Efchen
Hello,
Ja, es dauert schon ein paar Jahre und ggf. auch einiges Lehrgeld (Leergeld? denn das Portmonnaie ist dann hinterher leer *gg), bis man die Notwendigkeiten verstanden hat. Die PHP-Entwickler haben sich schon 'was dabei gedacht, als sie die Paramter-Streams auseinandersortiert haben.
Dann würde ich mir wünschen, dass Du nicht von oben auf mich herab siehst und mich als Anfänger belächelst, sondern mir sagst, WAS sie sich dabei gedacht haben. Möglichst kurz bitte, nicht weil ich es möglicherweise nicht *verstehe*, sondern weil ich wahrscheinlich trotzdem weiter $_REQUEST benutzen werde, weil es das angenehmste für mich ist. Aber ich höre mir gern Deine Gründe an.
Sorry, so tief kann ich nicht sinken.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Sorry, so tief kann ich nicht sinken.
Entschuldige, was soll das jetzt?
Du meckerst an mir rum, dass ich nicht $_REQUEST empfehlen soll, weil es einen guten Grund gibt, dass $_GET und $_POST getrennt sind.
Ich habe Dich danach gefragt, was der gute Grund ist, und bekomme so eine Antwort von Dir?
Womit habe ich das verdient!?
Oder bist Du immer so unfreundlich gegenüber Anfängern?
Gruß,
-Efchen
Hi Efchen,
Sorry, so tief kann ich nicht sinken.
Womit habe ich das verdient!?
Eine Runde Mitleid *g* -> Mit gar nichts.
Oder bist Du immer so unfreundlich gegenüber Anfängern?
Nö, eigentlich ist er das nicht - vielleicht schlecht gelaunt.
Aus dem Grund will ich dir mal erklären, was man mit $_POST UND $_GET machen kann, was NUR mit $_REQUEST nicht gut möglich ist:
Du hast bei der Verwendung von einzelnen Variablen mehr Verwendungsmöglichkeiten. So kannst du z.B. mittels $_POST auf Daten zugreifen, welche du von einem Formular gekriegt hast - während du gleichzeitig mit $_GET bestimmte Befehlsparameter empfängst, welche dem Script sagen was es machen muss.
Dies mag dann interessant sein, wenn ein Script mehrere Aufgaben gleichzeitig erfüllen soll. Du kannst nicht _nur_ $_GET nehmen, weil du z.B. keine Textarea mittels GET übermitteln kannst (weil URL's in der Länge begrenzt sind). Nur mit POST zu arbeiten mag auch nicht gut sein, da es so nicht möglich ist z.B. direkt in einen Bereich des Scriptes zu verlinken ( ...?show=anything ).
Anderes Beispiel: Wir arbeiten mit Cookies. Hier stellt es ein Problem dar, wenn du z.B. eine Variable, die du per POST oder GET erhälst mit einer anderen Varialbe (gleichen Names) im Cookie vergleichen willst. Beispielsweise ein Datum: Im Cookies ist irgendein Datum gespeichert, woanders hast du ein anderes Datum. Du willst beide vergleichen und du willst beiden Variablen den gleichen Namen vergeben -> Bei $_REQUEST ein Problem.
Und jetzt mal noch ganz generell: Wenn das Script mehrere Variablen aus verschiedenen Quellen (GET/POST/REQUEST) kriegt, die mehr oder weniger zufällig den gleichen Namen haben, so ist intern (weiß nicht genau wo, php.ini?) festgelegt, welche Variablen den höchsten Rang haben, z.B. POST.
Leztlich hast du dann unter $_REQUEST['variablenname'] den Wert aus $_POST, währen die beiden Werte aus $_GET und $_REQUEST verloren gegangen sind.
Sicherlich gibt es auch noch viele andere Gründe, aber ich wollte dir hier nur mal so grundlegendes erwähnen.
Jezt alles klar?
MfG, Dennis.
Moin,
Nur mit POST zu arbeiten mag auch nicht gut sein, da es so nicht möglich ist z.B. direkt in einen Bereich des Scriptes zu verlinken ( ...?show=anything ).
Dazu mache ich dann ein <input type="hidden" name="show" value="anything"> und alles geht wunderbar.
Anderes Beispiel: Wir arbeiten mit Cookies. [...]
-> Bei $_REQUEST ein Problem.
Ja, sehe ich ein. Wobei ich Cookies bisher nie in dem Zusammenhang von get und post gesehen habe (habe bisher Cookies nur mit JavaScript und Perl gemacht).
Jezt alles klar?
Ja. Einleuchtend. Danke.
Dieser Fall ist mir halt noch nie aufgetreten, ich benutze immer nur entweder get oder post und Cookies wurden immer völlig losgelöst von Formularen behandelt, deswegen war mir nicht bewusst, dass die alle zusammen im $_REQUEST landen.
Gruß,
-Efchen
Hi Efchen,
Nur mit POST zu arbeiten mag auch nicht gut sein, da es so nicht möglich ist z.B. direkt in einen Bereich des Scriptes zu verlinken ( ...?show=anything ).
Dazu mache ich dann ein <input type="hidden" name="show" value="anything"> und alles geht wunderbar.
Es ist dann nicht unbedingt alles wunderbar! Nämlich dann, wenn ein Script mehrere Aufgaben erfüllen soll. In so einem Fall halte ich es für praktisch, wenn man über die URL direkt in einen Bereich kommen kann.
Stelle dir vor, du hast eine Homepage:
Die Daten, die jemand ins gästebuch einträgt, kannst du natürlich nicht mit GET verschicken, also musst du sie mit POST verschicken an index.php?page=gbook, dann werden sie von deinem Script weiterverarbeitet - nur so als Beispiel.
Du könntest jetzt hier natürlich statt page=gbook in der URL ein hidden Feld anlegen, dein Script müsste dann eben auf $_POST abfragen (mit $_REQUEST sollte man einfach sein lassen). Wäre technisch alles ok, aber dann hätte keiner mehr die Möglichkeit, _direkt_ zu deinem Gästebuch per Eingabe der URL zu kommen!! Er müsste immer erst irgendwo klicken, wodruch dann POST Daten versendet werden, welche das GB anzeigen, klar soweit?
Anderes Beispiel: Wir arbeiten mit Cookies. [...]
-> Bei $_REQUEST ein Problem.
Ja, sehe ich ein. Wobei ich Cookies bisher nie in dem Zusammenhang von get und post gesehen habe (habe bisher Cookies nur mit JavaScript und Perl gemacht).
Man kann auch mit PHP Cookies nutzen. Allerdings werden diese Art von Cookies AFAIK beim Schließen des Browser Fensters gelöscht.
Jezt alles klar?
Ja. Einleuchtend. Danke.
Dieser Fall ist mir halt noch nie aufgetreten, ich benutze immer nur entweder get oder post und Cookies wurden immer völlig losgelöst von Formularen behandelt, deswegen war mir nicht bewusst, dass die alle zusammen im $_REQUEST landen.
Aber gerade die gleichzeitige Verwendung von POST und GET lässt dich einige Sachen recht einfach machen. So kannst du z.B. einfach mehrere Aktionen (welche du bis jezt wahrscheinlich auf mehrere Dateien verteilt hast) in _eine_ Datei packen - es wäre somit kein Problem ein _komplettes_ Gästebuch in _eine_ Datei zu packen, die alles macht. (Ein auslagern von Funkionen wäre aber trotzdem sinnvoll).
MfG, Dennis.
Moin,
- index.php ruft die Startseite auf
- index.php?page=links ruft die linkseite auf
- index.php?page=gbook ruft die Gästebuchseite auf
Die Daten, die jemand ins gästebuch einträgt, kannst du natürlich nicht mit GET verschicken, also musst du sie mit POST verschicken an index.php?page=gbook, dann werden sie von deinem Script weiterverarbeitet - nur so als Beispiel.
Einverstanden. Verstehe ich. Danke für den Tipp :-)
Gruß,
-Efchen
Hi Efchen,
Einverstanden. Verstehe ich. Danke für den Tipp :-)
Na prima, dann bist du jetzt ja vielleicht auf dem Niveau, mit dem Tom diskutiert ;-P
MfG, Dennis.
Hello,
Moin,
Sorry, so tief kann ich nicht sinken.
Entschuldige, was soll das jetzt?
Du meckerst an mir rum, dass ich nicht $_REQUEST empfehlen soll, weil es einen guten Grund gibt, dass $_GET und $_POST getrennt sind.Ich habe Dich danach gefragt, was der gute Grund ist, und bekomme so eine Antwort von Dir?
Womit habe ich das verdient!?
Mit Deiner arroganten Art. [pref:t=84902&m=500231]
Das ist nur ein Beispiel von vielen, aber es ist mir zu müßig, die jetzt rauszusuchen.
Ich habe nur mal versucht, mich genauso zu verhalten.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Womit habe ich das verdient!?
Mit Deiner arroganten Art. [pref:t=84902&m=500231]
Das ist nur ein Beispiel von vielen, aber es ist mir zu müßig, die jetzt rauszusuchen.
Jetzt hör aber mal! Meine "arrogante" Art, war nur eine Kopie Deiner eigenen arroganten Art!
Um es mit Deinen Worten zu sagen: "Ich habe nur mal versucht, mich genauso zu verhalten."
Lies Dir doch mal selbst durch, was Du schon vorher geschrieben hast.
"Ja, es dauert schon ein paar Jahre bis man die Notwendigkeiten verstanden hat." - Als wäre ich zu blöd für PHP!
"Die PHP-Entwickler haben sich schon 'was dabei gedacht, als sie die Paramter-Streams auseinandersortiert haben." - Aber kein Wort der Erklärung!
Sowas nenne ich erst recht arrogant! Mit dem eigenen Wissen rumprotzen aber auch drauf achten, dass man bloß nichts von seinem Wissen preis gibt. Du könntest ja Deine hohe Stellung verlieren!
So ist das rüber gekommen, und ich habe auch nicht bewusst arrogant geantwortet, ich war lediglich über Deinen Ton verärgert und habe von Dir wissen wollen, was an dem was ich gesagt habe, so schlimm ist.
Aber die Frage hat mit Dennis ja mittlerweile beantwortet. Du musst Dich also nicht bemühen.
Aber bevor Du jemanden als arrogant bezeichnest, fass Dir einfach mal ab und zu an die eigene Nase.
Ich wünsche Dir einen schönen Tag,
-Efchen
Hi,
ja: $_REQUEST (intern autom. zusammengeführt aus $_GET, $_POST u. $_COOKIE, bei gleichen Vars kann die Priorität festgelegt werden).
MfG
Danny
Hi,
Es gibt eine Variable das ich unabhängig, post oder get abfragen kann?
ja: $_REQUEST [...]
Du erinnerst mich irgendwie an den Internet Explorer - versuchst bei fehlerhaftem Code die Intention des Autors zu erraten ;) *scnr*
Gruss
shin
Moin,
ja: $_REQUEST [...]
Du erinnerst mich irgendwie an den Internet Explorer - versuchst bei fehlerhaftem Code die Intention des Autors zu erraten ;) *scnr*
Du meinst, Du nennst das fehlerhaften Code, wenn man $_REQUEST benutzt?
Fehlerhaft kann das ja nicht sein, dann würde PHP ja nen Fehler ausgeben. Und ob es "ethisch" richtig ist oder nicht? Es kann doch ohnehin nur GET oder POST möglich sein, und immer nur eines von beiden. Warum sollte man also nicht REQUEST benutzen? Das macht doch dann auch nichts anderes, als Du auch machen müsstest, wenn Du nicht weißt, oder nicht bestimmen will, ob die Daten per GET oder POST reinkommen?
Ich verstehe Deine Bedenken nicht.
In Perl ist das im CGI-Modul so Usus, da fragt auch niemand nach GET oder POST.
Gruß,
-Efchen
Hello,
ja: $_REQUEST [...]
Du meinst, Du nennst das fehlerhaften Code, wenn man $_REQUEST benutzt?
Fehlerhaft kann das ja nicht sein, dann würde PHP ja nen Fehler ausgeben. Und ob es "ethisch" richtig ist oder nicht? Es kann doch ohnehin nur GET oder POST möglich sein, und immer nur eines von beiden. Warum sollte man also nicht REQUEST benutzen? Das macht doch dann auch nichts anderes, als Du auch machen müsstest, wenn Du nicht weißt, oder nicht bestimmen will, ob die Daten per GET oder POST reinkommen?
Es können sehr wohl GET-Paramter übertragen werden, auch wenn der Request als POST läuft. Und Cookie-Paramter können auch noch vorliegen...
http://de3.php.net/variables.predefined
$_REQUEST
Variablen, die dem Skript über die GET-, POST- und COOKIE-Eingabemechanismen geliefert werden und von daher nicht vertrauenswürdig sind. Die Präsenz und die Reihenfolge der Aufnahme der Variablen in dieses Array ist entsprechend der Konfigurationsanweisung variables_order definiert. Dieses Array hat in PHP vor Version 4.1.0 keine direkte Entsprechung. Siehe auch import_request_variables().
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
verstehe ich nicht. Erklärs mir bitte.
Oder antwortest Du mir nur wieder, dass das unter Deinem Niveau sei?
Gruß,
-Efchen
Hi Efchen,
verstehe ich nicht. Erklärs mir bitte.
Du kannst zum Beispiel ein Formular wie folgt erstellen:
<form action="meinscript.php?name=wert&variable=zuweisung" method="POST">
<input type="text" name="vorname" value="Test" size="10">
<input type="submit" name="abschicken" value="Los Geht's!">
</form>
In dem Fall erhält dein PHP Script folgende Variablen:
Nochmal zusätzlich könnten jetzt natürlich auch noch Variablen auch $_COOKIE vorhanden sein.
Und wenn jetzt mal irgendwo mehrere Varialben mit dem gleichen Namen sind, also wenn die Variable $irgendwas z.B. in $_POST, in $_GET UND in $_COOKIE vorhanden ist, gibt es bei $_REQUEST Probleme.
MfG, Dennis.
Moin,
Du kannst zum Beispiel ein Formular wie folgt erstellen:
<form action="meinscript.php?name=wert&variable=zuweisung" method="POST">
Dass so etwas möglich ist, wusste ich nicht. Wenn ich derart ein Perl-Script aufrufe (mit Modul CGI), dann habe ich nur Zugriff auf die Variablen, die aus den Eingabefeldern kommen, die in der action sind weg.
Da ich sowas aber auch nicht nutze, gibt es für mich immer noch keinen Grund, auf $_REQUEST zu verzichten. Wenn ich sowas wie oben machen wollte, hätte ich zwei hidden Felder gemacht, dann bestünde das Problem weiterhin nicht. Und mit $_REQUEST habe ich die Möglichkeit, jederzeit das Formular von GET auf POST umzustellen (obwohl ich idR nur POST benutze).
Deine Begründung leuchtet mir dennoch ein.
Danke. Wenigstens einer, der sich nicht zu fein war, das zu erklären.
Gruß,
-Efchen
Hello,
Es gibt eine Variable das ich unabhängig, post oder get abfragen kann?
Könntest Du die Frage bitte nochmals anders formulieren?
Ich habe sie nicht verstanden.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Ich habe die Antwort schon bekommen
$_REQUEST['name'];
Vielen Dank