nofler
Goto Top

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:
<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>
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:
<?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">  
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
Kommentar vom Moderator masterG am Jan 25, 2010 um 13:00:23 Uhr
Ich hab deinen Thread etwas formartiert. Stichwort: Formatierungshilfe ;)

Content-Key: 134281

Url: https://administrator.de/contentid/134281

Printed on: April 26, 2024 at 21:04 o'clock

Member: datasearch
datasearch Jan 25, 2010 at 14:42:16 (UTC)
Goto Top
Hallo Steffen,

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).
Member: dog
dog Jan 25, 2010 at 21:58:17 (UTC)
Goto Top
Um einen Upload zu realisieren, brauchst du ein Eingabefeld vom Typ "file".

Nicht nur...

<form action="upload.php" method="post" enctype="multipart/form-data">  

$message1.= 'Firma:'."\n".$Firma."\n\n";

Sehe ich hier etwa register_globals?
Aaaaaaaaahhhhh *schreiend wegrenn*
Member: datasearch
datasearch Jan 25, 2010 at 22:10:20 (UTC)
Goto Top
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 face-wink

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.
Member: nofler
nofler Jan 26, 2010 at 09:18:37 (UTC)
Goto Top
was bewirkt das register_globals off?

kann mir wer eine vorgabe geben wie ich z.b. die firma in meinem formular get und wieder set?