URL: https://www.overclockers.at/coding-stuff/ist_http_get_vars_ein_global-variable_130352/page_1 - zur Vollversion wechseln!
hi...
glaub titel sagt alles: ist $HTTP_GET_VARS ein global variable, wie zb $_SERVER??
weil in einem script kommt folgendes vor:
Code: PHP$HTTP_POST_VARS = $_POST; $HTTP_GET_VARS = $_GET; $HTTP_SERVER_VARS = $_SERVER; $HTTP_COOKIE_VARS = $_COOKIE; $HTTP_ENV_VARS = $_ENV; $HTTP_POST_FILES = $_FILES;
$HTTP_POST_VARS ist ebenfalls ein superglobal aber für ältere phpversionen. deshalb ist der code oben ziemlich unlogisch.. weil wenn dann würde man es andersrum machen, um kompatibilität zu wahren.
aus dem manual:
Zitat$_POST:
Variables provided to the script via HTTP POST. Analogous to the old $HTTP_POST_VARS array (which is still available, but deprecated).
vielleicht hat er sein script einfach von der alten version auf die neue angepasst? ich würd' vielleicht auch ned mit ultra edit drüber fahren ;-)
so, ich weiß nicht, inwiefern ich das verstanden habe: superglobals müssten doch überall erreichbar sein, oder?
ich hab das jetzt nämlich _ganz_ primitiv getest:
datei "1.php":
Code: PHP<form action="2.php" method="POST"> <input type="text" name="name" value="thomas"> <input type="submit" name="submit" value="Senden"> </form>
Code: PHP<?php echo "<pre>"; print_r($_POST); echo "</pre>"; $HTTP_POST_VARS = $_POST; echo "<br />"; ?> <br /> <a href="3.php">Weiter...</a>
Code: PHP<?php echo "<pre>"; print_r($_POST); echo "</pre>"; echo "<pre>"; print_r($HTTP_POST_VARS); echo "</pre>"; ?>
Code: PHPArray { } Array { }
die $_POST variable gilt dann nur im jeweiligen script aufruf an den gepostet wurde.
wenn du dann im 3ten aufruf auch damit arbeiten willst musst du es nochmal POSTen oder per GET übergeben
erweiternd zu vossi's post:
das "überall" bezieht sich auf funktionen (bzw. methoden) wo du bei "normalen" globals erst eine globale variable verwenden kannst, wenn diese mit dem keyword "global" definiert wurde. bei superglobals ist das nicht notwendig, sie sind immer und überall im script verwendbar.
ja, vossi, ist mir schon klar (ok, wie man das jetzt konkret am besten macht, dass man mit $_POST "weitergibt", wüsste ich jetzt nicht), es war ja hier nur der test, obs mit $HTTP_POST_VARS geht...
btw: sry, wegen des crap-progstils (vor allem 2.php )
Anscheinend ist dir das nicht klar. Wie soll 3.php noch POSTData ausgeben, wenn kein Bezug zu einem Formular besteht?! Du weist in 2.php ja nur $HTTP_POST_VARS den Wert von $_POST zu, der, wohlgemerkt, bereits automatisch zugewiesen wurde.Zitat von tomstigja, vossi, ist mir schon klar (ok, wie man das jetzt konkret am besten macht, dass man mit $_POST "weitergibt", wüsste ich jetzt nicht), es war ja hier nur der test, obs mit $HTTP_POST_VARS geht...
btw: sry, wegen des crap-progstils (vor allem 2.php)
wie schon gesagt wurde $HTTP_POST bzw $HTTP_GET ist für alte php versionen die $_GET und $_POST noch nicht kannten. alles superglobal.
ja, dio, ist mir schon klar...
ursprünglich war ja meine frage, ob $HTTP_GET_VARS so wie $_SERVER[] ist - anscheinend nein, wie mein script "bewiesen" hat...
btw: irgendwie ähnelt deine antwort ziemlich der von vossi...
also $HTTP_GET_VARS ist sozusagen das alte $_GET?? (in irgendeiner php4 version hat man ja überhaupt nicht zb $_GET['name'] verwenden müssen, sondern nur $name... )
such' mal im forum nach "auto globals" - ich denke nicht dass ich jetzt zum 300sten mal nen Vortrag darüber schreiben will... nur so viel: das gibts noch immer, ist aber per setting an/ausschaltbar und seit 4.2.x standardmässig (dh. im recommended-ini) OFF, wobei es vorher per default ON warZitat von tomstig(in irgendeiner php4 version hat man ja überhaupt nicht zb $_GET['name'] verwenden müssen, sondern nur $name...)
kk, thx, brauchst mir keinen vortrag drüber halten, hab eh viel lieber $_GET[], $_POST oder auch $_REQUEST....
wer mit register_globals=ON arbeitet frisst auch kleine kinder
Liest sich eben nicht soZitat von tomstigja, dio, ist mir schon klar...
Und was hat dein Skript bewiesen?Zitat von tomstigursprünglich war ja meine frage, ob $HTTP_GET_VARS so wie $_SERVER[] ist - anscheinend nein, wie mein script "bewiesen" hat...
Na das muss wohl daran liegen, dass sie richtig ist.Zitat von tomstigbtw: irgendwie ähnelt deine antwort ziemlich der von vossi...
Liest du eigentlich die Links, die gepostet werden?!Zitat von tomstigalso $HTTP_GET_VARS ist sozusagen das alte $_GET??
Stichwort register_globalsZitat von tomstigin irgendeiner php4 version hat man ja überhaupt nicht zb $_GET['name'] verwenden müssen, sondern nur $name...)
oder ich glaub der geht halt auch auf ältere systeme ein (hat auch ziemliche viele andeutungen drin)...
ok, ich glaub es wär jetzt alles geklärt...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025