Eigenbau Formmailer???
PHP-Neuling
- php
0 Christoph Schnauß0 Stolzi0 christoph0 guido bayer
Hi,
als ersten muss ich euch gleich sagen, dass ich noch ein totaler PHP-Neuling bin daher auch der Nickname.
Nun zu meine Problem:
Ich habe mir, mit literarischen Hilfe, einen (einfachen) Formmailer gebastelt. Dieser Formmailer besteht aus 2 Dateien:
Der Formmailer soll nur die gemachten Eingaben versenden, wenn alle Eingabefelder ausgefüllt sind.
Nachdem der User alle Eingabefelder ausgefüllt und das Formular, durch betätigen des "Abschicken"-Buttons versendet hat bekommt er noch eine kleine Bestätigung zu sehen, die folgendermaßen aussieht:
Vielen Danke,
für Ihre Nachricht.
Das Problem dabei ist, dass bei mir (dem Empfänger der Formulardaten) nichts ankommt.
Könntet ihr mir bitte helfen und posten , wo der Fehler liegen könnte. Ich bin am verzweifeln
Vielen Dank
QUELLTEXT DER SEND.HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<form name="form" action="send.php" method="post">
<fieldset>
<legend>Kontakt</legend>
<table border="1" style="float:center" align="center" cellpadding="0" cellspacing="0" width="100%">
<thead>
</thead>
<tfoot>
</tfoot>
<tbody>
<tr>
<td style="width:25%" align="right">
Name:
</td>
<td>
<input name="name" type="text" value="" size="30" maxlength="100">
</td>
</tr>
<tr>
</tr>
<tr>
<td align="right">
E-Mail-Adresse:
</td>
<td nowrap>
<input name="mail" type="text" value="" size="30" maxlength="100">
</td>
</tr>
<tr>
<td align="right">
Nachricht:
</td>
<td>
<textarea name="nachricht" cols="30" rows="20" wrap="physical"></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="Submit" value="Abschicken"> <input type="Reset" value="Eingabe(n) löschen">
</td>
</tr>
</tbody>
</table>
</fieldset>
</form>
</body>
</html>
QUELLTEXT DER SEND.PHP
<?
/*Empfänger der Daten, E-Mail-Adresse wurde nur hier ausgext*/
$webmaster = "xxx@xxxxx.xx";
/*Absender der Daten*/
$absender = "";
/*Aussehen der E-Mail für den Webmaster*/
/*Betreff*/ $betreffwebmaster = "Dies ist der Betreff";
/*Textkörper*/ $textkoerperwebmaster = "$name ($mail) hat Dir die folgende Nachricht zu kommen lassen:
$nachricht";
/*Errormeldung bei falsch eingegebener E-Mail-Adresse. Mit HTML-Tags arbeiten.*/
$mailfalsch = "<p>Fehler</p><p>Leider ist die E-Mail-Adresse falsch</p><p>Bitte kontrolliere noch einmal die Eingabe und sende das Formular erneut ab.";
/*Errormeldung bei nicht alle ausgefüllten Pflicht-Feldern*/
$felderleer = "<p>Fehler</p><p>Die Nachricht konnte nicht versandt werden, da nicht alle Felder ausgefüllt wurden</p>";
/*Text nach Versand der E-Mail*/
$abgesandt = "<p>Vielen Danke,</p><p>für Ihre Nachricht.</p>";
/*Pflichtfelder!*/
if ($name == "" || $mail =="" || $nachricht =="")
/ *#################################################*/
{
/*nein*/
echo "$felderleer";
}
else
{
/*ja*/
/*Ist die E-Mail-Adresse richtig eingegeben?*/
if (ereg("[1]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+([a-zA-Z]{2,3})$", $mail))
{
/*E-Mail-Adresse ist richtig*/
mail("$webmaster","$betreffwebmaster","$koerperwebmaster\n","FROM: $absender\n");
echo "$abgesandt";
}
else
{
/*nein*/
echo "$mailfalsch";
}
}
?>
_a-zA-Z0-9- ↩︎
morgens,
als ersten muss ich euch gleich sagen, dass ich noch ein totaler PHP-Neuling bin daher auch der Nickname.
Naja, seufz, leider kommen viel zu viele auf die Idee, sich dann eben "Neuling" oder "newbie" zu nennen. Ein Nick sollte, wenn man denn schon nicht den eigenen Namen preisgeben möchte, irgendwas Individuelles haben, wegen der Wiedererkennbarkeit.
Das Problem dabei ist, dass bei mir (dem Empfänger der Formulardaten) nichts ankommt.
Kann auch nicht, wie du gleich sehen wirst. Es kommt nicht nur nichts an, es wird gar nichts erst abgeschickt.
QUELLTEXT DER SEND.HTML
[ ... ]
<form name="form" action="send.php" method="post">
Das Ganze in ein Formular zu packen, ist natürlich richtig
<fieldset>
<legend>Kontakt</legend>
Wozu brauchst du aber dann noch dieses "fieldset" und "legend"?
<table border="1" style="float:center" align="center" cellpadding="0" cellspacing="0" width="100%">
Nette Tabelle, sie erklärt bloß nicht, wozu "float:center" erforderlich ist
<thead>
</thead>
<tfoot>
</tfoot>
Was sollen diese komischen tags für jeweils einen leeren Tabellenkopf und einen leeren Tabellenfuß? Wenn du da nichts hineinzuschreiben hast, laß das weg
<td style="width:25%" align="right">
Wenn schon "style", dann bitte auch für die Positionierung, obwohl das wahrscheinlich nicht zwingend hier nötig ist.
<tr>
</tr>
Was'n das?
QUELLTEXT DER SEND.PHP
<?
Ja, da haben wir doch das Problem. Du nennst deine Datei zwar ordentlich "send.php", aber es steht gar kein PHP drin. Richtig wäre als erste Zeile:
<?php
Wenn du das korrigiert hast und es trotzdem nicht korrekt funktioniert, melde dich einfach wieder.
Grüße aus Berlin
Christoph S.
Hallo,
warum tust dir denn als Neuling so was schwieriges an?
Gibt ja nette fertige Dinge wie ichs zB anbiete:
http://stolzi.westo.at/mailer.htm
Der kann alles was brauchst und noch viel mehr ;-) Aber musst selber wissen.
Grüsse
Stolzi
hallo,
ich könnte nur einen guten kostenlosen Formmailer im Internet empfehlen unter free.maxhost.de.
Der macht alles, was man so braucht.
Tach
Christoph
hi,
fange doch einfach mit weniger code an, der dafuer funktioniert...
im formular erstmal ganz einfache input/textfield-felder.
in diesem beispiel gibt es
1. $email_from_name
2. $email_from_mail
3. $subject und
4. $message
der code in "send.php" hat einen etwas erweiterten header, was die akzeptanz der mail verbessern sollte - ein einfaches From: wird manchmal vom mailclient als spam gewertet.
<?
//header generieren
$header = "From:";
$header .= $email_from_name;
$header .= "<";
$header .= $email_from_mail;
$header .= ">";
//optionale kopie an irgenwen?
//$header .= "\nCc: oess@infolio.de";
$header .= "\nReply-To:";
$header .= $email_from_mail;
$header .= "\nReceipt-To:";
$header .= $email_from_mail;
$header .= "X-Mailer: PHP/";
$header .= phpversion();
$header .= "\n";
$header .= "X-Sender-IP: ";
$header .= $REMOTE_ADDR;
mail("meine.email@bla.de",$subject,$message,$header);
?>
<html>
(...)
...und nun das uebliche "vielen dank" + link, wo's weiter gehen soll...