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:

Code: Alles auswählen

<input type="hidden" name="mode" value="send" \>
)

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

Code: Alles auswählen

$HTT_POST_VARS
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?? :D

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?