2.1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo und Moin
Ich verzweifle langsam an einem Kontaktformular.
Habe hin und herprobiert und es klappt einfach nicht. Habe auch schon mehrere
Codes aus dem Internet ausprobiert, aber keines FUnktioniert. Anscheinend mache
ich irgendwas falsch.

Nach dem Absenden kommt immer eine Fehlermeldung, und ich finde des Grund
nicht (Bin HTML Neuling)

Vielleicht kann mal einer drüberschauen:
Das Kontaktformular:

<html>
<head>
<title>Einfaches Kontaktformular mit HTML und PHP</title>
</head>
<body>
<form action="kontaktformularverarbeitung.php" method="post">
Name: <input name="name" size="40"/><br />
E-Mail: <input name="email" size="40"/><br />
Betreff: <select name="betreff"size="1">
<option>Hilfe</option>
<option>Kritik</option>
<option>Linktausch</option>
<option>Werbung</option>
<option>Sonstiges</option>
</select><br />
Nachricht: <br />
<textarea name="text" cols="50" rows="10"></textarea>
<br />
<input name="submit" type="submit" value="absenden"/>
</form>
</body>
</html>


UND DIE PHP DATEI ZUR VERARBEITUNG
<html>
<head>
<title>Einfaches Kontaktformular mit HTML und PHP</title>
</head>
<body>
<?php
$Empfaenger = "bateuscher@aol.com";
if($_REQUEST['submit']){
if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
|| empty($_REQUEST['text']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">
zur&uuml;ck</a> und f&uuml;llen Sie alle Felder aus";
}
else{
$Mailnachricht="Sie haben eine Anfrage über ihr
Kontaktformular erhalten:\n\n";
while(list($Formularfeld, $Wert)=each($_REQUEST))
{
if($Formularfeld!="submit")
{
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST['Betreff'];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: "
.$_REQUEST['email']);
echo "Sie haben folgende E-Mail an den den Administrator versant:
\n".$Mailnachricht; }
}
else
{
echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese
<a href=\"kontaktformular.php\">Seite</a>.";
}
?>
</body>
</html>


ALS FEHLERMELDUNG KOMMT IN TEXTFORM
zurück und füllen Sie alle Felder aus"; } else{ $Mailnachricht="Sie haben eine
Anfrage über ihr Kontaktformular erhalten:\n\n"; while(list($Formularfeld,
$Wert)=each($_REQUEST)) { if($Formularfeld!="submit") { $Mailnachricht .=
$Formularfeld.": ".$Wert."\n"; } } $Mailnachricht .= "\nDatum/Zeit: "; $Mailnachricht .=
date("d.m.Y H:i:s"); $Mailbetreff = "Kontakt: "; $Mailbetreff .= $_REQUEST['Betreff'];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: " .$_REQUEST['email']);
echo "Sie haben folgende E-Mail an den den Administrator versant:
\n".$Mailnachricht; } } else { echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese
Seite."; } ?>


wäre echt super, wenn mir da jemand auf die Sprünge helfen würde.
LG ausm hohen Norden

8 Antworten

0 Punkte
Beantwortet von
nutze den SelfHTML - Formmailer, der funktioniert zuverlässig.

Die Formualarüberprüfung kannst du auch dem Browser überlassen durch entsprechende HTML5-Attribute, die die meisten Browser indessen verstehen: Demonstration HTML5 (bis "Kontakt" scrollen)
0 Punkte
Beantwortet von
hm, klappt irgendwie auch nicht. wie gesagt, in sachen programmieren
bin ich echt ein Anfänger
0 Punkte
Beantwortet von
"klappt irgendwie auch nicht" ist keine Fehlerbeschreibung! Was hast du getan, was ist passiert, was sollte deiner Meinung nach passieren?
0 Punkte
Beantwortet von
Sorry, mit nicht klappen heißt: man kann bei jedem Formular, dass ich
bereits ausprobiert habe (auch das von selfhtml) die Felder ausfüllen,
aber wenn man auf abschicken klickt, dann werden die Felder wieder
weiß und nix passiert (also keine Fehlermeldung, keine
Dankesmeldung....)

Irgendwo scheine ich etwas nicht richtig zu machen; i*grübeL
0 Punkte
Beantwortet von
Link zu deiner testseite?
0 Punkte
Beantwortet von
ach ja: bist du sicher, dass dein Server PHP überhaupt anbietet und du die Seiten auch als PHP gekennzeichnet hast? Deine recht vage Fehlerbeschreibung lässt vermuten, dass die PHP-Seite vielleicht einfach als reines HTML ausgeliefert wird, so dass der PHP-Interpreter nichts tut.
0 Punkte
Beantwortet von
Der LInk ist: http://www.projektglück.de/kontakt.html

PHP wird von Server unterstützt, Ebenso hab ich die Dateien als PHP
gekennzeichnet (also als PHP Format abgespeichert.)

Ich sende nochmal die Codes (habe nun ein anderes Formular
genommen, kein formmailer, da dort noch weniger funktioniert. Oh
man, und ich muss das heute abgeben :(
Aber danke schonmal für die gestrige Hilfe!

Formular:
<?php
@include("kontaktSend.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
<title></title>
<style type="text/css">
body {
background-image: url();
background-repeat: repeat-x;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
text-align: center;
background-color: #fff;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.content_1b {
margin: auto;
width: 888px;
text-align: left;
color: #666666;
font-size: 21px;
background-color: #f2fbe6;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-right-style: inset;
border-bottom-style: inset;
border-left-style: outset;
border-right-color: #3b3b3b;
border-bottom-color: #3b3b3b;
border-left-color: #3b3b3b;
padding-top: 15px;
padding-right: 40px;
padding-bottom: 15px;
padding-left: 40px;
border-top-width: 1px;
border-top-style: outset;
border-top-color: #3b3b3b;
}

input, textarea {
width:500px;
}

textarea {
height:300px;
}

#formSubmit {
width:100px;
}

.ok {
color: green;
font-weight: bold;
}

.error {
color:red;
font-weight: bold;
}

</style>
</head>

<body>
<div align="center" class="content_1b">
<form id="form1" name="form1" method="post"
action="kontaktSend.php">
<p>Schreiben Sie uns! Wir freuen uns auf Ihre
Nachricht.<br />
Bitte alle mit * gekennzeichneten Felder ausfüllen.
Danke!</p>

<label for="formName">Name*</label><br />
<input type="text" name="name" id="formName" />
<br /><br />

<label for="formMail">e-Mail*</label><br />
<input type="text" name="email" id="formMail" />
<br /><br />

<label for="formPhone">Telefon</label><br />
<input type="text" name="phone" id="formPhone" />
<br /><br />

<label for="formMessage">Nachricht*</label><br />
<textarea name="message" id="formMessage">
</textarea>
<br /><br />

<input type="submit" name="submit" id="formSubmit"
value="Absenden" />
</form>

</div>
</body>
</html>





Verarbeitung:

<?php

$reciever = "bateuscher@aol.com";
$subject = "Kontaktformular";

if(isset($_POST['submit']))
{
if(!empty($_POST['name']))
{
if(!empty($_POST['email']))
{
if(!empty($_POST['message']))
{
$name =
strip_tags(utf8_decode($_POST['name']));
$email = strip_tags($_POST['email']);
$phone = strip_tags(utf8_decode($_POST['phone']));
$message =
nl2br(strip_tags(utf8_decode($_POST['message'])));

$header = "From: ".$name." <".$email.">\n";
$header .= "Reply-To: ".$email."\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP:
".$_SERVER['REMOTE_ADDR']."\n";
$header .= "Content-Type: text/html; charset=iso-8859-
1\n";

$body = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html>
<head>
<style>
body {
font-family: Helvetica, Arial, Verdana, sans-
serif;
;
font-size:14px;
color:black;

padding:10px;
background-color:white;
}
th {
text-align:right;
background-color:#dddddd;
border-bottom:1px solid white;
border-right:1px solid white;
padding:5px;
}
td {
text-align:left;
background-color:#bbbbbb;
border-bottom:1px solid white;
border-right:1px solid white;
padding:5px;
}
a {
color:black;
}
a:hover {
color:#906d02;
}
</style>
</head>

<body>
<table border="0" cellpadding="5"
cellspacing="0">
<colgroup>
<col width="150">
<col width="400">
</colgroup>
<tr>
<th colspan="2" style="text-
align:left;">'.$subject.'</th>
</tr>
<tr>
<th>Name:</th>
<td>'.$name.'</td> <b
0 Punkte
Beantwortet von
hat gefunzt. problem gelöst
...