Hi zusammen,
ich bin ein ziemlicher PHP noob, habe damals mit einem Kumpel ein PHP Script geschrieben für den E-Mail Versand. Wobei er mir vorgesagt hat, was ich schreiben muss und das grundlegendste erklärt hat. Da habe ich sogar noch ein paar Feinheiten verändert etc. und das lief auch wunderbar.
Mein Problem ist jetzt, dass noch die Möglichkeit hinzukommen soll, einen Dateianhang hochzuladen, am liebsten hätte ich da eine Begrenzung der Größe von 5MB und der Typen auf PDF, JPG, PNG, GIF, TIFF, BMP und TXT.
Das Formular konnte ich schon bauen, allerdings kommt keine eMail an. Ich habe bis jetzt nur Teile aus dem Internet dazukopiert und angepasst, aber so richtig "durchsehen" tue ich da nicht
Vielleicht guckt ihr nur einmal rüber und könnt einen simplen Fehler erkennen?
Hier der PHP Teil:
Vielen Dank schonmal!
mfg
ich bin ein ziemlicher PHP noob, habe damals mit einem Kumpel ein PHP Script geschrieben für den E-Mail Versand. Wobei er mir vorgesagt hat, was ich schreiben muss und das grundlegendste erklärt hat. Da habe ich sogar noch ein paar Feinheiten verändert etc. und das lief auch wunderbar.
Mein Problem ist jetzt, dass noch die Möglichkeit hinzukommen soll, einen Dateianhang hochzuladen, am liebsten hätte ich da eine Begrenzung der Größe von 5MB und der Typen auf PDF, JPG, PNG, GIF, TIFF, BMP und TXT.
Das Formular konnte ich schon bauen, allerdings kommt keine eMail an. Ich habe bis jetzt nur Teile aus dem Internet dazukopiert und angepasst, aber so richtig "durchsehen" tue ich da nicht
Vielleicht guckt ihr nur einmal rüber und könnt einen simplen Fehler erkennen?
Hier der PHP Teil:
Code:
<?php $mailnachricht="Über Ihre Homepage wurde eine Anfrage versendet\r\n\n"; // wenn das Formular übermittelt wurde if(isset($_POST['absenden'])){ while(list($feld,$wert)=each($_POST)){ // übermittelte Inhalte "entschärfen" $wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert); $$feld=$wert; // die übermittelten Variablen werden zum "Text der Email" zusammengefasst if($feld!="absenden") $mailnachricht.=ucfirst($feld).": $wert\r\n"; } $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s"); // Überprüfen ob alle Pflichtfelder gefüllt sind empty($nachname) ? $err[] = "<p class='mailfehler'>Bitte geben Sie Ihren Nachnamen an.</p>" : false; empty($email) ? $err[] = "<p class='mailfehler'>Bitte geben Sie Ihre eMail-Adresse an.</p>" : false; empty($nachricht) ? $err[] = "<p class='mailfehler'>Bitte geben Sie eine Nachricht ein.</p>" : false; empty($telefon) ? $err[] = "<p class='mailfehler'>Bitte geben Sie Ihre Telefonnummer an.</p>" : false; empty($strasse) ? $err[] = "<p class='mailfehler'>Bitte geben Sie Ihre Straße und Hausnummer an.</p>" : false; empty($plz) ? $err[] = "<p class='mailfehler'>Bitte geben Sie Ihre Postleitzahl und Ort an.</p>" : false; // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt if(!empty($err)) { foreach($err as $fehler){ echo $fehler; } echo "<p class='mailfehler'><br/></p>"; ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> <p>Vorname<br /><input name="vorname" value="<?php echo $vorname; ?>" type="text" size="35" maxlength="40"></p> <p>Nachname*<br /><input name="nachname" value="<?php echo $nachname; ?>" type="text" size="35" maxlength="40"></p> <p>eMail*<br /><input name="email" value="<?php echo $email; ?>" type="text" size="35" maxlength="50"></p> <p>Straße, Nr.*<br /><input name="strasse" value="<?php echo $strasse; ?>" type="text" size="35" maxlength="50"></p> <p>PLZ, Ort*<br /><input name="plz" value="<?php echo $plz; ?>" type="text" size="35" maxlength="50"></p> <p>Telefon*<br /><input name="telefon" value="<?php echo $telefon; ?>" type="text" size="35" maxlength="40"></p> <p class="nachricht"><br />Ihre Nachricht*<br /><textarea name="nachricht" cols="59" rows="6" maxlength="3000"><?php echo $nachricht; ?></textarea><br /> <br /> <p class="nachricht">Datei anhängen <input name="datei" type="file" size="50" maxlength="100000" accept="text/*"></p><br /> <input type="submit" class="button absenden" value="Absenden" name="absenden"> <input type="reset" class="button" value="Zurücksetzen" ></p> </form> <?php // sind keine Fehler vorhanden, wird die Email versendet } else { $mailbetreff="Anfrage Homepage"; $anhang = fread(fopen($datei, "r"), filesize($datei)); $anhang = chunk_split(base64_encode($anhang)); $boundary = md5(uniqid(time())); $header='Mime-Version: 1.0' . "\r\n"; $header.='Content-Type: multipart/mixed; boundary='.$boundary. "\r\n"; $header.='Content-Transfer-Encoding: quoted-printable' . "\r\n"; $header.="From: $email"; $header.= "--".$boundary."\n"; $header.= "Content-Type: text/plain\n; charset=utf-8"; $header.= "Content-Transfer-Encoding: 8bit\n\n"; $header.= $mailnachricht."\n"; $header.= "--".$boundary."\n"; $header.= "Content-Type: ".$typ."; name=\"".$datei."\"\n"; $header.= "Content-Transfer-Encoding: base64\n"; $header.= "Content-Disposition: attachment; filename=\"".$datei."\"\n\n"; $header.= $anhang."\n"; $header.= "--".$boundary."--\n"; // HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!! echo (mail("hier ist meine mail adresse eingetragen", $mailbetreff, $mailnachricht, $header)) ? "<p class='mailafter'>Vielen Dank!<br><br>Ihre Nachricht wurde versendet! Wir antworten Ihnen schnellstmöglich.</p>": "<p class='mailafter'>Ein Fehler ist aufgetreten!</p>"; } // das Formular welches als erstes dem Besucher angezeigt wird } else { ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data"> <p>Vorname<br /><input name="vorname" type="text" size="35" maxlength="40"></p> <p>Nachname*<br /><input name="nachname" type="text" size="35" maxlength="40"></p> <p>eMail*<br /><input name="email" type="text" size="35" maxlength="50"></p> <p>Straße, Nr.*<br /><input name="strasse" type="text" size="35" maxlength="50"></p> <p>PLZ, Ort*<br /><input name="plz" type="text" size="35" maxlength="50"></p> <p>Telefon*<br /><input name="telefon" type="text" size="35" maxlength="40"></p> <p class="nachricht"><br />Ihre Nachricht*<br /><textarea name="nachricht" cols="59" rows="6" maxlength="3000"></textarea><br /> <br /> <p class="nachricht">Datei anhängen <input name="datei" type="file" size="50" maxlength="100000" accept="text/*"></p><br /> <input type="submit" class="button absenden" value="Absenden" name="absenden"> <input type="reset" class="button" value="Zurücksetzen" ></p> </form> <?php } ?>
mfg
Kommentar