Malcolm Beck´s: $_GET vs. $_POST

Beitrag lesen

hi,

ist es möglich leere felder nicht mit zusenden, ich meine dass in der adresszeile die einträge nicht auftauchen.

Klar, eine etwas komplexere Variante wäre:

-- Formular per POST aufbauen
-- nach submit prüfen, welche Felder Leer sind, diese dann „unset()“ten
-- aus den restlichen Werten einen Query bauen: name=icke&strasse=dortdrüben&stadt=irgendwo
-- diesen Query dann einfach an ein header redirect übergeben und die Seite mit den gewünschten Parametern aufrufen

Vereinfacht:

$Query = ''; // initialsieren  
  
if (isset($_POST))  
{  
  foreach($_POST as $key => $val)  
  {  
    if (empty($val)) // wenn Variable Leer  
    {  
      unset($key);  // aus dem Array entfernen  
    }  
    else  
    {  
      $Query .= $key . '=' . $val . '&'; // escapen wird hier nicht berücksichtigt  
    }  
      $Query = rtrim($Query , '&');  // letztes „&“ entfernen  
  }  
  if (isset($_POST['submit']))  
  {  
    header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '?' . $Query);  
  }  
}

Ungetestet, sollte aber in die richtige richtung gehen.

mfg

--
echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
array(2) {
  ["SELFCODE"]=>
  string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
  ["Meaningful"]=>
  string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
}