14. november 2006 - 11:06Der er
9 kommentarer og 1 løsning
Flere filesends
Hej eksperter,
jeg har et langt script til at udregne et areal og til sidst er der en almindelig mail formular hvor der er mulighed for at medsende et eller flere billeder... Hvordan får jeg i den følgende kode lavet sådan at den opretter variablerne for hver fil... Der skal jo selvfølgelig nok bruges foreach, men er ikke lige helt skrap til den dimmer endnu..
if(empty($fil)) { $body .= "$name har sendt disse oplysninger via udregningsformularen:\n\nNavn: $name\nAdresse: $address\nPost nr.: $zip\nBy: $city\nTelefon: $phone\nMobil:$mobile\nE-mail: $email\n\nog ønsker et tilbud på imprægnering af $totalareal m2 (Dette er det totale facadeareal minus areal på døre og vinduer)\n\nØnsket kontakt mulighed: $contactby\n\nBillede: Der er ikke vedhæftet et billede\n"; $headers = "From: <tilbud@facade-impraegnering.dk>\n";
if (mail($to, $subject, $body, $headers)) { echo("<p>Dine oplysninger er nu sendt og vi vil kontakte dig for at give dig et uforpligtende tilbud.</p>"); } else { echo("<p>Der er sket en fejl! Prøv igen!</p>"); } exit;
$body = "\n--$boundary\n"; $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n"; $body .= "$name har sendt disse oplysninger via udregningsformularen:\n\nNavn: $name\nAdresse: $address\nPost nr.: $zip\nBy: $city\nTelefon: $phone\nMobil: $mobile\nE-mail: $email\n\nog ønsker et tilbud på imprægnering af $totalareal m2 (Dette er det totale facadeareal minus areal på døre og vinduer)\n\nØnsket kontakt mulighed: $contactby\n\nBillede: Der er vedhæftet et billede\n"; $body .= "--$boundary\n";
if (mail($to, $subject, $body, $headers)) { echo("<p>Dine oplysninger er nu sendt og vi vil kontakte dig for at give dig et uforpligtende tilbud.</p>"); } else { echo("<p>Der er sket en fejl! Prøv igen!</p>"); } } --------------------------------------
som nu er kan den jo kunde sende én fil afsted, fra felter fileatt i formularen.. Det virker også 100% upåklageligt...
Jeg har ikke så meget erfaring inden for attachments til mails, men et bud ville være noget i den her retning:
$boundary = uniqid(""); $body = "\n--$boundary\n"; $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n"; $body .= "$name har sendt disse oplysninger via udregningsformularen:\n\nNavn: $name\nAdresse: $address\nPost nr.: $zip\nBy: $city\nTelefon: $phone\nMobil: $mobile\nE-mail: $email\n\nog ønsker et tilbud på imprægnering af $totalareal m2 (Dette er det totale facadeareal minus areal på døre og vinduer)\n\nØnsket kontakt mulighed: $contactby\n\nBillede: Der er vedhæftet et billede\n"; $body .= "--$boundary\n"; foreach($_FILES['fileatt'] as $fobj) { $mimeType = "application/unknown"; $fil_var = fread(fopen($fobj['tmp_name'], "r"), filesize($fobj['tmp_name'])); $fil_var = base64_encode($fil_var); $fil_var = chunk_split($fil_var);
Tjah, det lader til at $fobj['tmp_name'] indeholder henholdsvis værdien h og q, og det kan den jo naturligvis ikke åbne. Men hvis du før ikke havde noget problem med at udføre scriptet, synes jeg det virker underligt.
Prøv evt at skrive $fobj ud vha. print_r():
foreach($_FILES['fileatt'] as $fobj) { print_r($fobj); }
Så skulle du kunne se, hvilke værdier der findes i $fobj, så kan du måske se hvad der er galt?!?
Ov.. Lige en ting mere... Jeg kan kun se den ene fil under attachments.. Men tjekker jeg mailens properties kan jeg se at alle filerne er sendt med.. Why is that ?
Har sat en boundary for hver fil, men det sker der ikke rigtig noget jeg.. Men jeg prøver mig lige frem. Løsningen ligger garanteret lige for. :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.