Formularauswertung mit PHP
Ein sinnvoller Einsatz von PHP ist die Auswertung von Formularen.
<form class="form-horizontal" action="f.html" method="post">
<div class="form-group">
<label for="inputName" class="col-xm-3 control-label">Name</label>
<div class="col-xm-9">
<input type="text" class="form-control" id="inputName" name="name" placeholder="Name" value="">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-xm-3 control-label">E-Mail-Adresse</label>
<div class="col-xm-9">
<input type="email" class="form-control" id="inputEmail" name="email" placeholder="E-Mail-Adresse" value="">
</div>
</div>
<div class="form-group">
<div class="col-xm-offset-3 col-xm-9">
<div class="checkbox">
<label><input type="checkbox" id="checkExpert" name="expert" value="1"> Experte</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-xm-offset-3 col-xm-9">
<button type="submit" class="btn btn-default" name="abgesendet" value="1">Absenden</button>
</div>
</div>
</form>
# <form … method="post"> → Daten stehen im Array $_POST
$name_html = $email_html = $experte = '';
if (isset($_POST['abgesendet']) && $_POST['abgesendet'] == '1') {
# Hierher kommen wir, wenn das Formular abgesendet wurde:
# Testausschrift mit allen Formulardaten
echo '<pre>' . print_r($_POST, true) . '</pre>';
# 1. Fehlerbehandlung, z. B.
$errors = '';
if (!isset($_POST['name']) || $_POST['name'] == '') {
$errors .= 'Fehler: Kein Name angegeben!';
}
if ($errors) {
echo '<p class="tucbox-tip-danger">' . htmlspecialchars($errors) . '</p>';
} else {
# 2. Datenverarbeitung – hier ausgeben
$name_html = htmlspecialchars($_POST['name']);
$email_html = htmlspecialchars($_POST['email']);
if (isset($_POST['expert']) && $_POST['expert'] == '1') {
$experte_html = 'Ja';
$experte = ' checked';
} else {
$experte_html = 'Nein';
}
echo "<p>Übermittelte Formulardaten: Name = $name_html, E-Mail = $email_html, Experte = $experte_html</p>";
# Daten verarbeiten, z. B. in Datenbank oder in Datei schreiben …
# oder hier: Alle Formulardaten per E-Mail senden:
$inhalt = '';
foreach ($_POST as $name => $wert) { # alle gesendeten Formulardaten
if ($wert != '') { # wenn wert vorhanden, in inhalt speichern
$inhalt .= sprintf("%20s : %s\n", $name, $wert);
}
}
if ($inhalt != '') { # wenn inhalt, dann Mail senden
require_once('php/mail.inc');
$an = 'fri@hrz.tu-chemnitz.de'; # Empfänger-Mail-Adresse
$mailtext = 'Formulareingaben aus ' . $_SERVER['SCRIPT_URI'] . "\n\n" . $inhalt;
$ok = tuc_mail($an, $an, 'Fomulareingabe', $mailtext);
if ($ok === TRUE) {
echo "E-Mail wurde versendet.";
} else {
echo "Fehler beim Versenden: " . htmlspecialchars($ok);
}
}
}
}
Siehe auch: