Seite 1 von 2
$HTTP_POST_VARS und $HTTP_GET_VARS
Verfasst: 20.12.2003 16:23
von MrMind
Moin Leutz,
also ich habe gesehen, das das phpBB-Forum mit den Supervariablen $HTTP_POST_VARS bzw. $HTTP_GET_VARS arbeitet, wenn ich nun ein Formular mache und dieses mit den obrigen genannten Variablen auswerten möchte klappt es nicht, da diese Inhalte LEER sind.
Werte ich es nun mit $_POST bzw. $_GET aus, dann geht alles einwandfrei.
Benutze die PHP Version 4.3.3.
PS: das phpBB-Board läuft auf meinem Server.
Hoffe mir kann jemand erklären, warum mein Script net läuft, aber das Board schon.
Mfg
MrMind
Verfasst: 20.12.2003 17:03
von PhilippK
Poste doch mal bitte den Code. Eigentlich sollten die Variablen existieren...
Gruß, Philipp
Verfasst: 20.12.2003 17:05
von Pyramide
Was wird ausgegeben, wenn du print_r($HTTP...) ausführst?
Verfasst: 20.12.2003 17:23
von MrMind
Den Code habe ich momentan auf meinen Laptop.
Ist eigentlich auch net so wichtig, ich kann es anhand einens simplen Beispiel zeigen:
Code: Alles auswählen
<?php
if($HTT_POST_VARS['mode'] == "send")
{
//Auswertung
}
else
{
//Formularanzeige
}
?>
Wenn ich nun das Formular ausfülle (habe im Formular den mode wiefolgt eingebaut:
)
komme ich immer wieder in die Else-Anweisung, er erkennt nicht die mode Variable,
ersetze ich das $HTTP_POST_VARS durch $_POST funktioniert es.
Mfg
MrMind
PS: das mit print_r test ich gleich mal
Verfasst: 20.12.2003 17:31
von PhilippK
ist jetzt wohl nur 'nen Tippfehler?
Ansonsten gibt's definitiv unter PHP 4.x.y keine Möglichkeit, die alten Variablen auszuschalten. Das geht erst ab PHP 5.0.0 (siehe
http://de3.php.net/manual/en/language.v ... efined.php )
Gruß, Philipp
Verfasst: 20.12.2003 17:38
von MrMind
Jap, war ein Tippfehler. Sorry.
Naja ich habe es grad nochmal versucht.
Hier der Quelltext:
Code: Alles auswählen
<?php
require("./global.php"); //brauch ich lediglich um meine Templates auszulesen
if($HTTP_POST_VARS['mode'] == "send")
{
$title = $HTTP_POST_VARS['title'];
eval("echo \"".gettemp("post_vars_send")."\";");
}
else
eval("echo \"".gettemp("post_vars")."\";");
?>
Wenn ich nun, das $HTTP_POST_VARS['mode'] in $_POST['mode'] ändere geht es und auch $title wird mir angezeigt, aber wie oben geschrieben get es mit $HTTP_POST_VARS['mode'] nicht, ich komm immer wieder in die Else-Schleife.
print_r zeigt mir folgendes: Array([mode] => [title] => Test)
Wenn ich Test als Title eingebe.
PS: weiß ich auch, das sie bei 4.X automatisch angeschalten ist, steht ja auch in der php.ini, aber warum er es als if net annimmt, verstehe ich nicht.
Mfg
MrMind
Verfasst: 20.12.2003 20:51
von Shadowman
probier es doch mal ohne die ' also mit $HTTP_POST_VARS[mode]
ich arbeite nur damit und es funktioniert immer
Verfasst: 21.12.2003 00:32
von PhilippK
Shadowman hat geschrieben:probier es doch mal ohne die ' also mit $HTTP_POST_VARS[mode]
ich arbeite nur damit und es funktioniert immer
In dem Fall müsste - korrekter Syntax vorausgesetzt - mode eine Konstante sein - was es aber nicht ist...
Gruß, Philipp
Verfasst: 21.12.2003 10:02
von Shadowman
hm? das versteh ich nicht, ich habe nun schon auf 3 webseiten diese methode verwendet, bei post und bei get, und eshat immer funktioniert. is das nun zufall??

Verfasst: 21.12.2003 10:25
von King Crusty
ich nehme normal immer $_POST Variante, weil es überall problemlos klappt. Welches System benutzt du? Einen fertigen W/Lamp oder was eigenes?
Wenn du beide Bedingungen oder-verknüpfst in der if abfrage gehts oder?