3.9k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von petra65 Experte (1.8k Punkte)
Hallo, guten Morgen,

ich möchte auf einer HP ein Kontaktformular einbauen, diese HP läuft über Web.de, und lt. diesem wird php4 und php5 unterstützt - es sollte also funktionieren.

Doch leider erhalte ich die Fehlermeldung Error404.

Der Code sieht folgendermassen aus:
<?php
### Konfiguration Feedback-Formular###
$strEmpfaenger = 'termin@....de';
$strSubject = 'Feedback über www.....de';
$strReturnhtml = 'http://www....de/kontakt_2.html';
$strDelimiter = ":\t";
### Ende Konfiguration ###

if($_POST) {
$strMailtext = "";
while(list($strName,$value) = each($_POST)) {
if(is_array($value)) {
foreach($value as $value_array) {
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else {
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc()) {
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>....</title>
</head>
<body>
...
...
<h2>Kontaktformular</h2>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<table id="tableLi" style="margin-left:50px;">
<tr>
<td>Name:</td>
<td><input type="text" name="Absender" /></td>
</tr>
<tr>
<td>Telefon:</td>
<td><input type="text" name="Telefon" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="E-Mail" /></td>
</tr>
<tr>
<td colspan="2" align="left" valign="middle">
<b>Grund des Terminwunsches</b><br>
<input name="box1[]" type="checkbox">&nbsp; Box 1 *<br>
<input name="box2[]" type="checkbox">&nbsp; Box 2 *<br>
<input name="box3[]" type="checkbox">&nbsp; Box 3 *<br>
<input name="Sonstiges[]" type="checkbox">&nbsp; Sonstiges (bitte unten näher erläutern)
</td>
</tr>
<tr>
<td colspan="2">Bemerkungen:</td>
</tr>
<tr>
<td colspan="2">
<textarea name="Bemerkungen" rows="10" cols="50">Bemerkungen</textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</td>
</tr>
<tr>
<td colspan="2" style="font-size:11px">
Text
</td>
</tr>
</table>
</form>
...

Beim erstellen der Datei habe ich mich an SelfHtml orientiert (aktuell.de.selfhtml.org/artikel/php/form-mail/)

Noch ein Problem ist, dass die Seite optisch nicht korrekt dargestellt wird, liegt das daran, dass das php ganz am Anfang steht ??
Aber lt. SelfHtml muss es so sein:
Vor dem Aufruf der Funktion header() darf das Script nichts ausgegeben haben ..., weil ansonsten ein Fehler erzeugt wird. Das bedeutet auch, dass vor dem PHP-Code kein HTML-Code sowie keine Leerzeichen und Leerzeilen stehen dürfen. <?php muss also direkt am Dateianfang stehen.

Kann mir jemand sagen warum es nicht funktioniert ???

Vielen Dank und viele Grüße
Petra

11 Antworten

0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo,

so - habe nun den Code aus Antw. 10 angepasst, und es funktioniert alles wunderbar ;-)))

Vielen vielen Dank für die Hilfe.


Viele Grüße - Petra
...