Datei Upload mit E-Mailversand via PHP
hallo,
ich möchte gern ein formular (das ich schon erstellt habe) mit einem datei upload. die email die ich von dem ausgefüllten formular bekomme soll die upgeloadete datei beinhalten!
paar sachen zu meienr page
Bild
in der seite informationsmaterial.html ist das eigentliche formular mit einer abfrage ob die felder ausgefüllt sind:
und auf dem button senden ist hinterlegt:
informationsmaterial_mail.php "onSubmit="return chkinformationsmaterial_formular()" onReset="return ResetCheck()
BILD
nach dem ausfüllen und klicken auf senden wird man weitergeleitet auf informationsmaterial_mail.php mit folgendem script:
die seite dazu sieht wie folgt aus:
Bild
nach 5 sekunden wird dann weitergeleitet auf die informationsmaterial_danke.html.
das script etc. funktioniert soweit und emails kommen auch an. meine frage ist nun ob es möglich ist diese struktur und script leicht umzubauen das ich im formular ein datei upload eingebaut bekomme?
was ich dazu noch machen möchte ist das die upgeloadetet datei bei dem versand an der email als seperate email oder was besser wäre im formular mitgeschickt wird.
ich hoffe ihr könnt mir helfen und verzichtet auf post wie selfhtml etc… ich kenn mich zwar ein bisschen mit php aus aber das übersteigt alles XD
mfg
steffen
ich möchte gern ein formular (das ich schon erstellt habe) mit einem datei upload. die email die ich von dem ausgefüllten formular bekomme soll die upgeloadete datei beinhalten!
paar sachen zu meienr page
Bild
in der seite informationsmaterial.html ist das eigentliche formular mit einer abfrage ob die felder ausgefüllt sind:
<script language="JavaScript" type="text/javascript" >
<!--
function chkinformationsmaterial_formular () {
if (document.informationsmaterial_formular.Firma.value == "") {
alert("Bitte Ihren Firmenname eingeben!");
document.informationsmaterial_formular.Firma.focus();
return false;
}
</script>
informationsmaterial_mail.php "onSubmit="return chkinformationsmaterial_formular()" onReset="return ResetCheck()
BILD
nach dem ausfüllen und klicken auf senden wird man weitergeleitet auf informationsmaterial_mail.php mit folgendem script:
<?php
$Datei = 'informationsmaterial.txt';
$Nummer = file_get_contents($Datei) + 1;
file_put_contents($Datei, $Nummer);
$admin= 'webmaster@spaeh.de';
$admin1= 'marketing@spaeh.de';
// 1. Message an den Administrator
$subject1= 'Informationsmaterial Anfrage von: '.$Firma.' ['.$Nummer.']';
$message1.= "\n";
$message1.= 'Firma:'."\n".$Firma."\n\n";
$message1.= 'Name: '."\n".$Anrede.' '.$Name."\n\n";
$message1.= 'Abteilung: '."\n".$Abteilung."\n\n";
$message1.= 'Adresse: '."\n".$Straße."\n".$PLZ.' '.$Ort."\n".$Land."\n\n";
$message1.= 'Telefon: '."\n".$Telefon."\n";
$message1.= 'Fax: '."\n".$Fax."\n";
$message1.= 'Mail: '."\n".$E-Mail."\n\n";
$message1.= 'unsere Branche: '."\n".$unsereBranche."\n";
$message1.= 'unsere Produkte: '."\n".$unsereProdukte."\n\n";
$message1.= 'Wir sind: '."\n".$Wirsind."\n\n";
$message1.= 'SPÄH-Kunde: '."\n".$SPÄHKunde."\n";
$message1.= 'Kundennummer: '."\n".$Kundennummer."\n\n";
$message1.= 'Broschüre Unternehmensgruppe: '."\n".$UnternehmensgruppeBroschüre."\n\n";
$message1.= 'Dichtungen und Stanzteile: '.$DichtungenundStanzteile."\n";
$message1.= 'Dreh- und Frästeile: '.$DrehundFrästeile."\n";
$message1.= 'Gieß- und Formteile: '.$GießundFormteile."\n";
$message1.= 'Wasserstrahlgeschnittene Teile: '.$WasserstrahlgeschnitteneTeile."\n";
$message1.= 'Sonderteile Dichtungstechnik: '.$SonderteileDichutngstechnik."\n";
$message1.= 'Halbzeuge-Programm: '.$HalbzeugeProgramm."\n\n";
$message1.= 'telefonische Kontaktaufnahme: '.$telefonischeKontaktaufnahme."\n";
$message1.= 'Neuerungen per E-Mail: '.$NeuerungenMail."\n";
$message1.= 'Neuerungen per Fax: '.$NeuerungenFax."\n\n";
$message1.= 'technisches Datenblatt: '.$technischesDatenblatt."\n";
$message1.= 'kostenloses Muster: '.$kostenlosesMuster."\n\n";
$message1.= 'Sonstige Fragen und Kommentare: '."\n".$FragenKommentare."\n\n";
// bitte unbedingt Serveradresse anpassen
$message1.= 'Server: '.'www.spaeh.de';
// eigentlicher Mailversandt
mail($admin, $subject1, $message1, "From: $E-Mail");
mail($admin1, $subject1, $message1, "From: $E-Mail");
?>
<meta http-equiv="refresh" content="5; URL=http://www.spaeh.de/SPAEH/html/informationsmaterial_danke.html">
Bild
nach 5 sekunden wird dann weitergeleitet auf die informationsmaterial_danke.html.
das script etc. funktioniert soweit und emails kommen auch an. meine frage ist nun ob es möglich ist diese struktur und script leicht umzubauen das ich im formular ein datei upload eingebaut bekomme?
was ich dazu noch machen möchte ist das die upgeloadetet datei bei dem versand an der email als seperate email oder was besser wäre im formular mitgeschickt wird.
ich hoffe ihr könnt mir helfen und verzichtet auf post wie selfhtml etc… ich kenn mich zwar ein bisschen mit php aus aber das übersteigt alles XD
mfg
steffen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator masterG am 25.01.2010 um 14:00:23 Uhr
Ich hab deinen Thread etwas formartiert. Stichwort: Formatierungshilfe ;)
Content-ID: 134281
Url: https://administrator.de/forum/datei-upload-mit-e-mailversand-via-php-134281.html
Ausgedruckt am: 18.04.2025 um 13:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo Steffen,
Um einen Upload zu realisieren, brauchst du ein Eingabefeld vom Typ "file".
Der Server speichert die Datei in einem Temporären Ordner auf dem Server. Den Dateinamen kannst du hier aus dem Array _FILE auslesen und die Datei mit der Funktion move_uploaded_file() verschieben.
Nun kannst du die Datei per Mail verschicken und anschließend wieder löschen.
Das geht, indem du die Datei base64 codierst und als Multipart an den Nachrichtentext anhängst. Wie genau das geht, kannst du hier nachlesen (inkl. Democode).
Um einen Upload zu realisieren, brauchst du ein Eingabefeld vom Typ "file".
<form name="upload" action="upload.php" method="POST">
<input type="file" name="upload" />
</form>
Der Server speichert die Datei in einem Temporären Ordner auf dem Server. Den Dateinamen kannst du hier aus dem Array _FILE auslesen und die Datei mit der Funktion move_uploaded_file() verschieben.
$ziel="./uploads"
move_uploaded_file($_FILE['upload']['tmp_name'],$ziel)
Nun kannst du die Datei per Mail verschicken und anschließend wieder löschen.
Das geht, indem du die Datei base64 codierst und als Multipart an den Nachrichtentext anhängst. Wie genau das geht, kannst du hier nachlesen (inkl. Democode).
Sehe ich hier etwa register_globals?
Tatsächlich. Was du nicht alles siehst. Naja, da kann auf eine Prüfung des Uploads ja auch verzichtet werden Bitte überprüfe dein Script und schreibe dein Script nach aktuellen Standards um. Übergebene Variablen findest um im Array $_POST, $_GET, $_SERVER usw. Bitte passe dein Script an und deaktiviere so schnell wie möglich register_globals in deiner php.ini. Für den Anfang kannst du die Variablen am Anfang des Scripts mit den Werten aus dem entsprechendem Array belegen.
z.B.
$Firma=$_POST['Firma'];
...
Zudem solltest du dir auf jeden Fall etwas überlegen, um unerwünschte Dateien nach dem Upload zu filtern. Auf der Website macht das wenig Sinn, da man den POST-Request auch direkt schicken kann.
Dog, nicht gleich wegrennen, irgendwann lernt jeder mal.