Hallo zusammen!
Ich brauche ein PHP Skript um Formulardaten zu versenden. Wichtig: Die Option Dateien (Grafiken) zu versenden soll offen bleiben. Das Versenden der Grafik funktioniert auch, nur beim Absenden ohne Anhang kommt eine Fehlermeldung und die Weiterleitung zur nächsten Seite erfolgt nicht mehr.
Könnt ihr mein Skript komplettieren sodass es funktioniert? (Sodass eine Fehlermeldung ausbleibt?)
Hier der HTML Teil:
<table width="387" height="343" border="0" align="center" cellpadding="1" cellspacing="2">
<form action="send.php" enctype="multipart/form-data" method="post">
<tr>
<td><a name="formular" id="formular"></a>name:</td>
<td>
<div align="left">
<input name="Name" type="text" class="textarea" size="20">
</div></td>
</tr>
<tr>
<td>email:</td>
<td>
<div align="left">
<input name="Email" type="text" class="textarea" size="20">
</div></td>
</tr>
<tr>
<td>bild:</td>
<td>
<div align="left">
<select name="Betreff" size="1">
<option selected="selected">foto</option>
<option>zeichnung</option>
<option>collage</option>
</select>
</div></td>
</tr>
<tr>
<td height="96">nachricht:</td>
<td>
<div align="left">
<textarea name="Nachricht" cols="25" rows="5" class="textareabig">wo/wie ist das bild entsantden?! kurze anekdote zum bild?...</textarea>
</div></td>
</tr>
<tr>
<td height="40" valign="top">anhang:</td>
<td valign="top">
<div align="left">
<input name="Anhang" type="file" size="20">
</div></td>
</tr>
<tr>
<td align="center" colspan="2"><div align="right">
<input name="Send" type="submit" class="button" value="senden">
<input name="Reset" type="reset" class="button" value="reset">
</div></td>
</tr>
</form>
</table>
Hier das PHP Skript:
<?php
$Empfaenger = "[email protected]";
$urlDankeSeite = 'http://www.beispiel.de/danke.html';
$Mailbetreff = "bildupload fangallery: ";
$Mailbetreff .= $_REQUEST['Betreff'];
$Trenner = md5(uniqid(time()));
$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "nachricht: \n\n";
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($Empfaenger, $Mailbetreff, "", $Header);
header("Location: $urlDankeSeite");
exit;
?>
Folgende Meldung erscheint im Browser:
Warning: fopen() [function.fopen]: Filename cannot be empty in /...URL.php on line 41
Warning: fread(): supplied argument is not a valid stream resource in /...URL.php on line 41
Warning: Cannot modify header information - headers already sent by (output started at /...URL.php:41) in /...URL.php on line 47
LG Chris
P.S. Wem die Ausschnitte oben zu 'ungewöhnlich' erscheinen sollten, kann mir auch helfen den einfachen Formmailer von http://aktuell.de.selfhtml.org/artikel/php/form-mail/ so umzubauen, dass über ihn auch Grafiken versendbar sind. Mit dem Formmailer habe ich nämlich vorher gute Erfahrungen gemacht.
Ich brauche ein PHP Skript um Formulardaten zu versenden. Wichtig: Die Option Dateien (Grafiken) zu versenden soll offen bleiben. Das Versenden der Grafik funktioniert auch, nur beim Absenden ohne Anhang kommt eine Fehlermeldung und die Weiterleitung zur nächsten Seite erfolgt nicht mehr.
Könnt ihr mein Skript komplettieren sodass es funktioniert? (Sodass eine Fehlermeldung ausbleibt?)
Hier der HTML Teil:
<table width="387" height="343" border="0" align="center" cellpadding="1" cellspacing="2">
<form action="send.php" enctype="multipart/form-data" method="post">
<tr>
<td><a name="formular" id="formular"></a>name:</td>
<td>
<div align="left">
<input name="Name" type="text" class="textarea" size="20">
</div></td>
</tr>
<tr>
<td>email:</td>
<td>
<div align="left">
<input name="Email" type="text" class="textarea" size="20">
</div></td>
</tr>
<tr>
<td>bild:</td>
<td>
<div align="left">
<select name="Betreff" size="1">
<option selected="selected">foto</option>
<option>zeichnung</option>
<option>collage</option>
</select>
</div></td>
</tr>
<tr>
<td height="96">nachricht:</td>
<td>
<div align="left">
<textarea name="Nachricht" cols="25" rows="5" class="textareabig">wo/wie ist das bild entsantden?! kurze anekdote zum bild?...</textarea>
</div></td>
</tr>
<tr>
<td height="40" valign="top">anhang:</td>
<td valign="top">
<div align="left">
<input name="Anhang" type="file" size="20">
</div></td>
</tr>
<tr>
<td align="center" colspan="2"><div align="right">
<input name="Send" type="submit" class="button" value="senden">
<input name="Reset" type="reset" class="button" value="reset">
</div></td>
</tr>
</form>
</table>
Hier das PHP Skript:
<?php
$Empfaenger = "[email protected]";
$urlDankeSeite = 'http://www.beispiel.de/danke.html';
$Mailbetreff = "bildupload fangallery: ";
$Mailbetreff .= $_REQUEST['Betreff'];
$Trenner = md5(uniqid(time()));
$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "nachricht: \n\n";
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($Empfaenger, $Mailbetreff, "", $Header);
header("Location: $urlDankeSeite");
exit;
?>
Folgende Meldung erscheint im Browser:
Warning: fopen() [function.fopen]: Filename cannot be empty in /...URL.php on line 41
Warning: fread(): supplied argument is not a valid stream resource in /...URL.php on line 41
Warning: Cannot modify header information - headers already sent by (output started at /...URL.php:41) in /...URL.php on line 47
LG Chris
P.S. Wem die Ausschnitte oben zu 'ungewöhnlich' erscheinen sollten, kann mir auch helfen den einfachen Formmailer von http://aktuell.de.selfhtml.org/artikel/php/form-mail/ so umzubauen, dass über ihn auch Grafiken versendbar sind. Mit dem Formmailer habe ich nämlich vorher gute Erfahrungen gemacht.
Zuletzt bearbeitet: