PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit einem Email Formular


Buettgenbach
11.09.2006, 10:11:39
Hallo zusammen.

Habe mich etwas mit dem Content dieser Seite beschäftigt und bin auf die Mailfunktion in php gestoßen. Klasse dachte ich mir also, kann man das doch bestimmt super für die eigene Seite verwenden.

Gesagt getan und die Datei kontakt:send.php erstelt. Alles funktioniert prima dank der Anweisungen hier auf der Seite mit einer Ausnahme die ich nicht verstehe. Die Mail wird zwar wie vorgegeben versendet im Format etc. ABER trotz eingabe ohne Inhalt.. hab ich evtl. an diesen Befehlen was falsch gemacht?

Hier mal zwei Auszüge aus der Datei:

$timestamp = time();
$datum = date("d.m.Y", $timestamp);
$zeit = date("H:i", $timestamp);

$rueckruf_datum = $rueckruf_am_tag.".".$rueckruf_am_monat.".".$rueckruf_am_jahr;
$rueckruf_uhrzeit = $rueckruf_von." bis ".$rueckruf_bis." Uhr.";

$nachricht = htmlentities($nachricht);
$nachricht = nl2br($nachricht);

$empfaenger = array('INFO<ff@ggggg.com>');

$empfaengerCC = array('COPY CC<aa@bbbbb.com>');

$empfaengerBCC = array('BLINDCOPY BCC<xx@yyyyy.com>');

$absender = 'Internetseite<internetseite@worldwideweb.com>';

$reply = 'Administrator<admin@internetseite.com>';

$subject = 'Internetseite';

Oben zu sehen die Angabe für Rückruf Zeit/Datum etc.

$message = '<html>
<head>
<title>Mail der Seite</title>
</head>

<body bgcolor="#FFFFFF">
<table width="523" border="0" cellspacing="0" cellpadding="0" height="*%">
<tr>
<td><img src="http://www.ggg.com/kontakt/logo.gif" width="523" height="53"></td>
</tr>
<tr>
<td>
<table width="523" border="0" cellspacing="0" cellpadding="0" height="*%">
<tr align="left" valign="top">
<td width="393">
<table width="393" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25"></td>
</tr>
<tr>
<td><b><img src="http://www.ggg.com/kontakt/header.gif" width="227" height="25"></b></td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td>
<hr noshade>
</td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><b><font face="Arial, Helvetica, sans-serif" size="2">'.$name.'</font></b></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif" size="2">'.$strasse.'</font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif" size="2">'.$plz.' '.$ort.'</font></td>
</tr>

Hier zu sehen die Angabe für die Postleitzahl Ort usw. die alle in der späteren Email leider nicht erscheinen... evtl. weiß jemand von euch was ich da falsch gemacht haben könnte.

Vielen Danke schon mal im Voraus.

PS: Bei Bedarf poste ich auch gerne die Vollständige Datei. Nochmals vielen Dank.

MatMel
11.09.2006, 11:12:52
Poste am besten mal die Stelle an der $plz, $ort, $strasse und $name gefüllt werden.

Weil wenn ich dich richtig verstanden habe kommt ja der rest der Mail an. Dann müsste es daran liegen, dass die Variablen nicht richtig gefüllt sind.

Buettgenbach
11.09.2006, 11:19:22
Hallo MatMel.

Also hier in der eigentlichen KontaktSeite in HTML werden diese Sachen ausgefüllt.

Auszug aus der Datei:


.
.
.
.
.
<tr>
<td width="1"></td>
<td width="60" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text_bold">Name</font>
</td>
<td width="10" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="name" style="border:1 solid #000000;" tabindex="1" class="text">
</font></td>
<td width="60"><font face="Arial, Helvetica, sans-serif" size="2" class="text_bold">Telefon</font></td>
<td width="10"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="telefon" style="border:1 solid #000000;" tabindex="6" class="text">
</font></td>
</tr>
<tr>
<td width="1"></td>
<td width="60" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">Strasse</font></td>
<td width="10" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="1">
<input type="text" name="strasse" style="border:1 solid #000000;" tabindex="2" class="text">
</font></td>
<td width="60"><font face="Arial, Helvetica, sans-serif" size="2" class="text">Telefax</font></td>
<td width="10"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"> <font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="telefax" style="border:1 solid #000000;" tabindex="7" class="text">
</font></td>
</tr>
<tr>
<td width="1">&nbsp;</td>
<td width="60" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">PLZ</font></td>
<td width="10" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="plz" maxlength="5" style="border:1 solid #000000;" tabindex="3" class="text">
</font></td>
<td width="60"><font face="Arial, Helvetica, sans-serif" size="2" class="text_bold">eMail</font></td>
<td width="10"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"> <font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="email" style="border:1 solid #000000;" tabindex="8" class="text">
</font></td>
</tr>
<tr>
<td width="1">&nbsp;</td>
<td width="60" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">Ort</font></td>
<td width="10" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="ort" style="border:1 solid #000000;" tabindex="4" class="text">
</font></td>
<td width="60">&nbsp;</td>
<td width="10">&nbsp;</td>
<td width="155">&nbsp;</td>
</tr>
.
.
.


Hoffe das ist so korrekt das die Text bzw. Eingabefelder den Selben Namen tragen müssen wie die zu übertragenden Daten.. hier ja z.B. '.$ort.' in der php-Datei = input type="text" name="ort" in der HTML Datei.

Grüße

PS:
<input type="submit" name="button_senden" value="Senden" style="background:#FFFFFF; border:1 solid #000000;" tabindex="16">
<input type="reset" name="button_loeschen" value="L&ouml;schen" style="background:#FFFFFF; border:1 solid #000000;" tabindex="17">
<input type="button" name="button_drucken" value="Drucken" onClick="MM_callJS('print()')" style="background:#FFFFFF; border:1 solid #000000;"

xlb
11.09.2006, 12:45:13
Hallo ...

z.B. '.$ort.' in der php-Datei
Wahrscheinlich liegt genau da der "Fehler".

Hast du in deinem Formular als "method" z.B. POST festgelegt und sind bei der von dir verwendeten Konfiguration die "register_globals" deaktiviert (was sie sein sollten), dann hast du auf die Formular-Variablen Zugriff per $_POST['NAME_DER_VARIABLEN'].

Buettgenbach
11.09.2006, 14:12:33
Hallo und Danke für den Tip.

Verstehe ich das richtig das z.B. statt für PLZ/Ort:

<td><font face=3D"Arial, Helvetica, sans-serif" size=3D"2">'.$plz.' '.$ort.'</font></td>

müsste dann da...

<td><font face="Arial, Helvetica, sans-serif" size="2">'$_POST[plz];' '$_POST[ort];'</font></td>

stehen um auf die Variablen in der HTML Datei...


<td width="1">&nbsp;</td>
<td width="60" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">PLZ</font></td>
<td width="10" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="plz" maxlength="5" style="border:1 solid #000000;" tabindex="3" class="text">
</font></td>
<td width="1">&nbsp;</td>
<td width="60" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">Ort</font></td>
<td width="10" align="left"><font face="Arial, Helvetica, sans-serif" size="2" class="text">:</font></td>
<td width="155"><font face="Arial, Helvetica, sans-serif" size="2">
<input type="text" name="ort" style="border:1 solid #000000;" tabindex="4" class="text">
</font></td>

..zugreifen zu können ist das soweit korrekt - verzeihung wenn ich den ein oder anderen mit solch fragen nerve aber ich lerne das ganze leider noch von daher bitte ich um etwas Verständnis, danke.

xlb
11.09.2006, 14:35:13
mit solch fragen nerve aber ich lerne das ganze leider noch
Ne, Ne, .. keine Sorge ! Hier "nerven" ganz andere, glaub'ich. Wir haben alle mal bei Null begonnen.

Ist "fast" richtig. So z.B. wär's dann korrekt :

echo '<td><font face="Arial, Helvetica, sans-serif" size="2">'.$_POST['plz'].' '. $_POST['ort'].'</font></td>';

Mal was zum lesen : Warum funktionieren meine Formulare nicht? (http://php-faq.de/q/q-formular-register-globals.html)

Buettgenbach
11.09.2006, 15:57:23
Vielen Dank für die Info xlb.

echo '<td><font face="Arial, Helvetica, sans-serif" size="2">'.$_POST['plz'].' '. $_POST['ort'].'</font></td>';
hat leider so nciht ganz funktioniert.. habe immer eine Error erhalten.

aber ohne
echo '[...]';
sprich:
<td><font face="Arial, Helvetica, sans-serif" size="2">'.$_POST['plz'].' '. $_POST['ort'].'</font></td>

funktionierts Prima.

Vielen Dank nochmal. Hat mir wirklich sehr weitergeholfen. :)

Grüße

xlb
11.09.2006, 16:05:46
Jo - das du einen Fehler erhältst, wenn du den von mir geposteten Code genauso in deinen Code "einbaust" ist schon klar. War auch nur als Beispiel gedacht. Wenn du das "echo"-Gedöns "für sich alleine" schreiben würdest, gäb's auch keinen Fehler ... ;)

Buettgenbach
11.09.2006, 16:08:42
Hehe, ok ich denke man sieht das ich noch ne Menge lernen muss, aber es funktioniert jetzt einwandfrei und der Link ist auch sehr hilfreich - les da schon die ganze Zeit sehr interessiert.

Also vielen Dank nochmal. :)

Grüße