SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=191&group=32&page=2
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Formulardaten und globale Servervariablen


Sofern in der Konfigurationsdatei php.ini die Option track_vars aktiviert ist, werden GET, POST und COOKIE-Variablen in den superglobalen Arrays $_GET, $_POST, $_COOKIE abgelegt. Dies erfolgt selbst dann, wenn bei der Konfigurationsoption gpc_

order der automatische Variablenimport vollständig deaktiviert wurde.

Im Gegensatz zur Verwendung der automatisch generierten Importvariablen hat das Auslesen von Formulardaten über globale Servervariablen den Vorteil einer besseren Kontrolle darüber, woher die Variablen stammen und welchen Einfluss sie auf den Programmablauf nehmen könnten.

Betrachten Sie folgendes Beispiel:

<html>
<head>
<title>Servervariablen und Formulare</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF ?>">
  <p>Vorname:
    <input type="text" name="vorname">
  </p>
  <p>Nachname:
    <input type="text" name="nachname">
  </p>
  <p>Ort:
    <input type="text" name="ort">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<?php

if (isset($_POST[Submit])) {
  reset($_POST);
  foreach($_POST as $key=>$element) {
    echo "$key: $element<br>";
  }
}

?>
</body>
</html>




Bild 4.3: Ausgabe – globale Servervariablen

Hinweis: Ein ähnliches Beispiel habe ich Ihnen bereits im Abschnitt 4.1.6 »Formulare über mehrere Seiten« vorgestellt.

Eine mögliche Variante, wie die Formulardaten an automatisch erzeugte Variablen übergeben werden können, zeigt das folgende Beispiel, welches auf demselben Formular basiert.{PSP}
<html>
<head>
<title>Servervariablen und Formulare</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF ?>">
  <p>Vorname:
    <input type="text" name="vorname">
  </p>
  <p>Nachname:
    <input type="text" name="nachname">
  </p>
  <p>Ort:
    <input type="text" name="ort">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<?php

if (isset($_POST[Submit])) {
  reset($_POST);
  foreach($_POST as $key=>$element) {
    ${"form_$key"} = $element;
  }
  echo "Vorname: $form_vorname<br>";
  echo "Nachname: $form_nachname<br>";
  echo "Ort: $form_ort<br>";
}
?>
</body>
</html>




Bild 4.4: Ausgabe – dynamisch erzeugte Variablen