Grünschnabel
Hallo, ich habe ein Problem mit meinem Kontaktformular.
Im Prinzip rufe ich die Daten aus dem Formular ab, und als Fehlermeldung bekomme ich zurück, dass die Variablen nicht definiert sind, bzw. leer. Ich habe die Methode schon von Post auf Get geändert und die Daten überprüft. Sprich was der Browser an Script übergibt.
Ich hab die Namen mehrmals überprüft, und ich finde den Fehler leider nicht. Vielleicht könnte mir mal jemand auf die Sprünge helfen?
Hier das PHP-Script:
und hier der HTML-Code:
Ich würd echt nicht nachfragen, wenn ich nicht müsste.
Ich hab sogar schon versucht mir die Feldnamen auszugeben, aber irgendwie hat das auch nicht funktioniert.
Ich bin dankbar für jede Hilfe. Danke schön!!!
Lieben Gruß
Michi
Im Prinzip rufe ich die Daten aus dem Formular ab, und als Fehlermeldung bekomme ich zurück, dass die Variablen nicht definiert sind, bzw. leer. Ich habe die Methode schon von Post auf Get geändert und die Daten überprüft. Sprich was der Browser an Script übergibt.
Ich hab die Namen mehrmals überprüft, und ich finde den Fehler leider nicht. Vielleicht könnte mir mal jemand auf die Sprünge helfen?
Hier das PHP-Script:
PHP:
<?php
# Zuerst die Abfrage, ob an der URL "?senden" hängt
if (isset($_GET['senden']))
{
foreach($_POST AS $key=>$value) ${$key}=trim($value);
# Dann werden die Daten auf Vollständigkeit geprüft:
if (($name!='') && ($email!='') && ($nachricht!=''))
{
# Dann werden Die Daten für die mail() Funktion in Variablen geschrieben
$an = "mailadress@domain.de";
$von = "Kontaktformular <$an>";
$betreff = "Nachricht von der Homepage";
$header = "From: $von\r\n";
$header .= "Subject: $betreff\r\n";
$header .= "Content-Type: text/html\r\n";
$header .= "MIME-Version: 1.0\r\n";
$msg = "Jemand hat dir eine Nachricht von der Homepage geschickt:
Name: $name
Email: $email
---- Nachricht: ----
$nachricht
--------------------";
# Falls es beim Senden der Email einen Fehler gibt, wird dies dem Besucher signalisiert
if (mail($an, $betreff, $msg, $header))
{
$rueckgabe = '<span style="color: #008800;">Vielen Dank für Ihre Nachricht. Wir werden uns in kürze bei Ihnen melden.</span><br />';
}
else
{
$rueckgabe = '<span style="color: #cc0000;">Beim Senden der Email ist ein Fehler aufgetreten.</span><br />';
}
}
else
{
$rueckgabe = '<span style="color: #cc0000;">Bitte füllen Sie alle Felder, welche mit * markiert sind, aus.';
}
}
else
{
$rueckgabe = '';
}
echo $rueckgabe;
?>
HTML:
<form action="<?php echo $_SERVER['PHP_SELF'];?>?senden" method="get" enctype="text/plain">
<table class="kontakt" width="200" border="1">
<tr>
<td>Name: *</td>
<td><input type="text" name="name" id="name"></td>
</tr>
<tr>
<td>Mail: *</td>
<td><input type="text" name="email" id="email"></td>
</tr>
<tr>
<td colspan="2">Nachricht: *</td>
</tr>
<tr>
<td colspan="2"><textarea name="nachricht" id="nachricht" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="senden" id="senden" value="senden"></td>
<td><input type="reset" name="loeschen" id="loeschen" value="Löschen"></td>
</tr>
</table>
Ich hab sogar schon versucht mir die Feldnamen auszugeben, aber irgendwie hat das auch nicht funktioniert.
PHP:
foreach($_POST as $key=>$value) echo 'key: "', $key, '" value: "', $value, '"';
Lieben Gruß
Michi