Candid Dauth: $_GET-Variablen weiter senden in <form method="get">

Beitrag lesen

Hallo du da draußen,

So müsste es gehen.

Müsste zwar in seinem Fall so funktionieren, aber der Vollständigkeit halber: Was ist, wenn $_GET['bla']['bla2'] auch ein Array ist? Wenn nämlich in $_GET mehrdimensionale Arrays vorkommen, funktioniert deine Lösung nicht mehr.

function print_inputs($array, $prefix="")
{
  if(!is_array($array))
    return false;

foreach($array as $key=>$val)
  {
    if($prefix == "")
      $name = $key;
    else
      $name = $prefix."[".$key."]";
    if(is_array($val))
      print_inputs($val, $name);
    else
      echo "<input type="hidden" name="".htmlentities($key)."" value="".htmlentities($name)."" />\n";
  }
}
print_inputs($_GET);

Diese Funktion sollte auch mit mehrdimensionalen Arrays funktionieren.

Man könnte es natürlich auch einfacher machen, indem man einfach den QueryString selbst zerlegt:

$get = explode("&", $_SERVER['QUERY_STRING']);
foreach($get as $val)
{
  list($key,$val) = explode("=", $val, 2);
  echo "<input type="hidden" name="".htmlentities($key)."" value="".htmlentities($val)."" />\n";
}

Das führt wohl zum gleichen Ergebnis, ist aber irgendwie einfacher.

Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Candid Dauth (Dogfish)

--
Selten Dumme sind nicht selten, aber dumm.
http://dogfish.net.tc/