[PHP] Problem mit $_POST & $_REQUEST

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

ich habe folgendes Formular:
PHP:
$gui->page[]="Host auswählen:";
$gui->page[]="<form action='?step=step3' method='POST'>";
$gui->page[]="<select name='hostname' size='1'>";
     foreach ($data as $erg_host){
           $gui->page[]="<option>".$erg_host["host_name"]."</option>";}
$gui->page[]="</select><BR>";
$gui->page[]="<input type='hidden' name='reportart' value='".$getobject."'><BR>";
$gui->page[]="<input type='submit' value='Weiter'>";

nun Versuche die POST-Variable abzufragen:
PHP:
if(!empty($_POST["hostname"]) && empty($_REQUEST["hostname"])){$host=$_POST["hostname"];}
elseif(empty($_POST["hostname"]) && !empty($_REQUEST["hostname"])){$host=$_REQUEST["hostname"];}
elseif(empty($_POST["hostname"]) && empty($_REQUEST["hostname"])){$host=NULL;}

Wenn ich nun aber ein echo auf $host mache erscheint folgende Fehlermeldung:
Notice: Undefined variable: host in /script.php on line 95

Warum, wo ist mein Fehler? Wieso finde ich den einfach nicht?


MFG
Papenburger
 
Also Request enthält auch alle Postvariablen also wenn $_POST['hostname'] existiert gibt es immer auch $_REQUEST['hostname']. Die Bedingung das beide gesetzt sind erfüllt bei dir aber keine der Bedingungen.
 
PHP:
if(!empty($_POST["hostname"]) && empty($_REQUEST["hostname"]))
Heißt: Wenn $_POST["hostname"] nicht leer ist... und $_REQUEST["hostname"] leer ist, was so in der gruppierungen niemals der Fall sein wird und andersrum auch nicht.

 
Also Request enthält auch alle Postvariablen also wenn $_POST['hostname'] existiert gibt es immer auch $_REQUEST['hostname'].
Ergänzung: "immer" muss das nicht sein, da es von der Konfiguration abhängig is.
Im Normalfall kann man aber davon ausgehen.