echo $begrüßung;
Ich picke mir mal nur den PHP/MySQL-Teil heraus.
foreach ($_POST as $key => $value)
{
$keys.= $key . ",";
$values.= "'$value',";
}
$keys = substr($keys,0,-1);
$values = substr($values,0,-1);$sql = "INSERT INTO Beispieltabelle($keys) VALUES ($values)";
mysql_query($sql) or die (mysql_error());
echo "eingetragen!";
Auch wenn es sich nur um ein privates Projekt handeln sollte, ist eine für die Befehlsschnittstelle der verwendeten Datenbank geeignete Maskierung der Eingabedaten erforderlich. Wenn du auf die Magic Quotes baust, dann mag dieses Feature die größten Gefahren entschärfen, ist aber im Prinzip nicht ausreichend. Ausschalten oder deren Auswirkungen rückgängig machen und für MySQL mysql_real_escape_string() verwenden ist die bessere Wahl.
Desweiteren kann man ja als Client POST-Daten beliebig fälschen, und z.B. neue hinzufügen. Eine Überprüfung auf die erlaubten Felder wäre sinnvoll.
// Feldnamen und Default-Werte, falls die $_POST keine Daten für das Feld liefert
$data = array('feld1' => 'foo', 'feld2' => 'bar', 'feld3' => 'baz');
foreach ($data as $key => $dummy)
if (isset($_POST[$key]))
$data[$key] = $_POST[$key];
Somit werden nur für die Felder, die $_POST-Daten übernommen, die auch in $data vordefiniert waren.
Um alle Werte im Array $data mit mysql_real_escape_string() zu behandeln, eignet sich array_map().
$values = array_map('mysql_real_escape_string', $data);
Nun sind Daten entschärft, und da wir die Feldnamen selbst bereitgestellt haben, sind diese auch "clean". Um beide Teile für den Befehlsstring aufzubereiten, kann das Array implodiert werden. Das spart die foreach-Schleife und das Entfernen des überflüssigen Trennzeichens. Die Feldnamen werden mittels array_keys() aus dem $data-Array extrahiert.
$keys = implode(',', array_keys($data));
$values = "'" . implode("','", $values) . "'";
$sql = "INSERT INTO Beispieltabelle ($keys) VALUES ($values)";
echo "$verabschiedung $name";