mal wieder ein E-Mail-Problem

zorromaus

Mitglied
folgendes Problem habe ich:

kontaktformular:
HTML:
<form name="pruef" action="senden_re.php" method="post" onSubmit="return chkform()">
<table border="0" cellspacing="0" cellpadding="0" width="404">
	<tr>
		<td width="15"></td>
		<td width="390" bgcolor="#FFFFFF">
		<table border="0" cellspacing="0" cellpadding="5">
                <tr> 
                  <td height="8" colspan="2"></td>
                </tr>
                <tr> 
                  <td width="195" rowspan="2" align="right" valign="top"> <textarea name="frg" wrap="PHYSICAL" class="txtarea"></textarea> 
                    <br> </td>
                  <td width="195" height="53" valign="bottom"><font face="Verdana,Helvetica" size="1" color="#666666">Ihre 
                    Nachricht</font> </td>
                </tr>
                <tr>
                  <td align="right" valign="bottom"><b><font color="#FF0000" size="-2">*</font></b><font face="Verdana,Helvetica" size="1" color="#666666">Pflichtangaben</font></td>
                </tr>
                <tr> 
                  <td height="8" colspan="2"></td>
                </tr>
              </table>
		</td>
	</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="0" width="404">
	<tr>
		<td width="15"></td>
		<td width="390" bgcolor="#FFFFFF">
		<table width="390" border="0" cellpadding="5" cellspacing="0">
                <tr> 
                  <td colspan="3" height="8"></td>
                </tr>
                <tr> 
                  <td width="190" align="right" valign="top"> <input name="name" type="text" class="txtfeld" size="30"> 
                  </td>
                  <td width="191" colspan="2" valign="top"><b><font color="#FF0000" size="-2">*</font></b><font face="Verdana,Helvetica" size="1" color="#666666">Name, 
                    Vorname </font></td>
                </tr>
                <tr> 
                  <td colspan="3" height="8"></td>
                </tr>
                <tr> 
                  <td width="190" align="right" valign="top"> <input name="str" type="text" class="txtfeld" size="30"> 
                  </td>
                  <td width="191" colspan="2" valign="top"><b></b><font face="Verdana,Helvetica" size="1" color="#666666">Stra&szlig;e, 
                    Hausnummer </font></td>
                </tr>
                <tr> 
                  <td colspan="3" height="8"></td>
                </tr>
                <tr> 
                  <td width="190" align="right" valign="top"> <input name="plz" type="text" size="4" class="txtfeld" maxlength="5"> 
                    <input name="ort" type="text" class="txtfeld" size="20"> </td>
                  <td width="191" colspan="2" valign="middle"><font face="Verdana,Helvetica" size="1" color="#666666">PLZ, 
                    Ort</font></td>
                </tr>
                <tr> 
                  <td colspan="3" height="8"></td>
                </tr>
                <tr> 
                  <td width="190" align="right" valign="top"> <input name="tel" type="text" class="txtfeld" size="30"> 
                  </td>
                  <td width="95" valign="middle"><b><font color="#FF0000" size="-2">*</font></b><font face="Verdana,Helvetica" size="1" color="#666666">Telefon 
                    </font></td>
                  <td width="96" valign="middle"><font face="Verdana,Helvetica" size="1" color="#666666"> 
                    <input type="submit" name="submit" value="Senden" class="submit">
                    </font></td>
                </tr>
                <tr> 
                  <td colspan="3" height="8"></td>
                </tr>
                <tr> 
                  <td width="190" align="right" valign="top"> <input name="mehl" type="text" class="txtfeld" size="30"> 
                  </td>
                  <td width="95" valign="middle"><b><font color="#FF0000" size="-2">*</font></b><font face="Verdana,Helvetica" size="1" color="#666666">eMail 
                    </font></td>
                  <td width="96" valign="middle"><font face="Verdana,Helvetica" size="1" color="#666666">
                    <input type="reset" name="reset" value="Zur&uuml;ck&nbsp;" class="submit">
                    </font></td>
                </tr>
                <tr> 
                  <td colspan="3" height="8"></td>
                </tr>
              </table>
		</td>
	</tr>
</table>
 </form>

php-Script
PHP:
<?php

//hier mail beginn###########################################
$an = "blubb@blubb.de";

//----------eMail senden-----------------
$headers = "From: $mehl \n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Type-Encodeing: 8bit\n";

$betreff1 = "eMail aus dem Kontaktformular";

// eMail an ....
$anzeige="
<html>
<head>
  <title>Anfrage</title>
</head>
<body>
<font face=\"ARIAL,VERDANA,HELVETICA\">
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td colspan=\"3\"><b><h3>Anfrage von der Website:</b></h3><br>
    </td>
  </tr>
</table>
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  
  <tr>
    <td width=150 valign=\"top\"><b>Name:</b><br><br></td>
    <td valign=\"top\">".$name."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\"><b>Stra&szlig;e:</b><br><br></td>
    <td valign=\"top\">".$str."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\"><b>PLZ:</b><br><br></td>
    <td valign=\"top\">".$plz."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\"><b>Ort:</b><br><br></td>
    <td valign=\"top\">".$ort."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\"><b>Telefon:</b><br><br></td>
    <td valign=\"top\">".$tel."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\"><b>eMail:</b><br><br></td>
    <td valign=\"top\">".$mehl."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\"><b>Bemerkungen:</b><br><br></td>
    <td valign=\"top\">".$frg."</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign=\"top\" colspan=3><br><br>Zur Sicherheit sind alle Anfrage auf <a href=\"http://abc....de\">http://abc.....de</a>gespeichert.</td>
    
  </tr>
  
</table></td></tr></table></font>
</body>
</html>";

  mail($an,$betreff1,$anzeige,$headers);


//email ende#################################

//db eintrag#############################
if (isset($_POST['frg']))
   $frg = $_POST['frg'];
  else
   $frg = "Unbekannt";
   
if (isset($_POST['bez']))
   $frg = $_POST['bez'];
  else
   $bez = "Unbekannt";

if (isset($_POST['name']))
    $name = $_POST['name'];
  else
    $name = "Unbekannt";

if (isset($_POST['str']))
    $str = $_POST['str'];
  else
    $str = "Unbekannt";

if (isset($_POST['plz']))
    $plz = $_POST['plz'];
  else
    $plz = "Unbekannt";

if (isset($_POST['ort']))
    $ort = $_POST['ort'];
  else
    $ort = "Unbekannt";

if (isset($_POST['tel']))
    $tel = $_POST['tel'];
  else
    $tel = "Unbekannt";

if (isset($_POST['mehl']))
    $mehl = $_POST['mehl'];
  else
    $mehl = "Unbekannt";




/* IP bestimmen */
$ip = getenv("REMOTE_ADDR");
/* IP auflösen und Host bestimmen */
//$host = gethostbyaddr($ip);
//echo "$host";

/* datum der eintragung bestimmen */
$heute     = getdate();
$tag_monat = $heute['mday'];
$monat     = $heute['mon'];
$jahr      = $heute['year'];
$datum = "$tag_monat.$monat.$jahr";


include("connectdb_inc.php");


$query = "INSERT INTO anfrage (ip, datum, frg, name, str, plz, ort, tel, mehl) VALUES ";
$query .= "('$ip','$datum','$frg','$name','$str','$plz','$ort','$tel','$mehl')";
mysql_query($query);
echo mysql_error();
?>
<table border="0" cellspacing="0" cellpadding="5">
....			
</table>

<?
mysql_close();
?>

//db eintrag ende###############

Die eMail wird zwar ganz normal verschickt und kommt auch im HTML-Format an aber es stehen keine Inhalte drin, als wenn ein leeres Formular losgeschickt wird. Wo liegt der Fehler?
 
Zuletzt bearbeitet:
Hi,

register_globals wird "off" sein - beim Zusammenbauen der Mail sagst Du einfach:
PHP:
echo "... <td valign=\"top\">".$name."</td> ...";
, später beim dB-Eintrag allerdings
PHP:
if (isset($_POST['name']))
    $name = $_POST['name'];
Mach es oben genauso. ;)

Gruß
.
 
Tobias Menzel hat gesagt.:
Hi,

register_globals wird "off" sein - beim Zusammenbauen der Mail sagst Du einfach:
PHP:
echo "... <td valign=\"top\">".$name."</td> ...";
, später beim dB-Eintrag allerdings
PHP:
if (isset($_POST['name']))
    $name = $_POST['name'];
Mach es oben genauso. ;)

Gruß
.

...und das würde dann das Problem lösen?
 
Das Header-Feld heißt „Content-Transfer-Encoding“ und nicht „Content-Type-Encoding“. Vielleicht liegt’s ja daran.
 
Jetzt ist doch noch ne Frage aufgetaucht:
es geht immer noch um ein formular wie oben nur mit dem zusatz:
PHP:
<input name="bez" <?echo"value='".$daten['bez']."'";?> type="text" size="25" class="txtfeld">
und dann abschicken wie folgt:
PHP:
<?
$headers = "From: $mehl \n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encodeing: 8bit\n";

$betreff1 = "eMail aus dem Kontaktformular";

// eMail an .....
$anzeige="<font face=\"ARIAL,VERDANA,HELVETICA\">
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td colspan=\"3\"><b><h3>Anfrage von der Website:</b></h3><br>
    </td>
  </tr>
</table>
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
 <tr>
    <td valign='top'><b>Produktnummer:</b><br><br></td>
    <td valign='top'>".$bez."</td>
    <td>&nbsp;</td>
  </tr>
....
</table>";

mail($an,$betreff1,$anzeige,$headers);
?>

Auch hier habe ich mit "if isset.." den Inhalt abgefragt (sowohl im Kontaktformular als auch im PHP-Script) aber das funktioniert nicht. Warum? Es wird alles korrkt weggeschickt nur dieses eine bleibt leer. obwohl im formularfeld was angezeigt wird.

gruß Z
 
Zuletzt bearbeitet:
Das echo-Sprachkonstrukt ist in dem Fall auch die falsch Wahl. Probier stattdessen mal Folgendes:
PHP:
$bez = '<input name="bez" value="'.htmlspecialchars($daten['bez']).'" type="text" size="25" class="txtfeld">';
 
Nee mag er nicht! Er zeigt nicht mal mehr das Inputfeld an.
=> echo brauch ich doch um es anzuzeigen. Habe es dann mal so probiert:
PHP:
<?
echo  '<input name="bez" value="'.htmlspecialchars($daten['bez']).'" type="text" size="25" class="txtfeld">';
?>
dann zeigt er zwar wieder das Inputfeld an, auch mit dem Value-Inhalt, aber leider mit dem selben falschen Ergebnis. der Inhalt wird nicht mitgeschickt.
 
Zuletzt bearbeitet:
Weil dein HTML Quellcode einfach gesagt extrem unsauber ist.
Für eine HTML Mail gilt das gleiche wie für eine HTML Seite.

Überarbeite mal den HTML-Quellcode und du wirst sehen, das auch deine Mail sauber abgearbeitet wird.
 
saila hat gesagt.:
Weil dein HTML Quellcode einfach gesagt extrem unsauber ist.
Für eine HTML Mail gilt das gleiche wie für eine HTML Seite.

Überarbeite mal den HTML-Quellcode und du wirst sehen, das auch deine Mail sauber abgearbeitet wird.

Sorry dann sag doch mal ein Beispiel! wo ist der HTML-Code unsauber?
 

Neue Beiträge

Zurück