Avatar billede zips Juniormester
27. april 2008 - 21:56 Der er 9 kommentarer og
1 løsning

Mailform med fil opload

Hej Eksperter

Jeg har fundet dette script, det virker men jeg ville godt have at afsenderen også får en kopi, men jeg kan ikke se hvor det skal sættes ind, er der en som vil hjælpe mad at fortælle hvor og hvad der skal sættes ind?

Her er scriptet
<?php

if($acn == 'attach'){
   
  $tekst = "$tekst ";
 
    if($_SESSION['verify'] == strtoupper($_POST['auth1'])) {

    $boundary = uniqid('');
    $mimeType = ($_FILES['filen']['type'] ? $_FILES['filen']['type'] : 'application/unknown');
    $file = fread(fopen($_FILES['filen']['tmp_name'], 'r'), filesize($_FILES['filen']['tmp_name']));
    $file = base64_encode($file);
    $file = chunk_split($file);

    $to  = 'webmaster@enside.dk';
    $body  = "\n--$boundary\n";
    $body .= "Content-type: text/html; charset=iso-8859-1\n";
    $body .= "Content-transfer-encoding: 8bit\n\n";
    $body .= $_POST['navn']."<br /><br />";
    $body .= $_POST['message']."\n\r";
    $body .= "--$boundary\n";
    $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
    $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
    $body .= "Content-transfer-encoding: base64\n\n";
    $body .= $file."\n\n";
    $body .= "--$boundary--";
    $headers = "Content-type: multipart/mixed; boundary=\"$boundary\"";


    $ok = mail($to, 'Indmeldelsesblanket indsendt', $body, $headers);
   
    if($ok) {
        echo 'Tak for blanketen.';

    } else {
        die('E-mailen blev ikke sendt. Der skete en fejl. Pr&oslash;v igen, ved at g&aring; tilbage og tjekke om alt er indtastet rigtigt og trykke p&aring; send som mail igen!</p><button onclick="history.go(-1); return false;"> <<< Tilbage </button>');
    }
    } else{
echo 'Desv&aelig;rre, verifikationskoden kunne ikke godkendes!</p><p>G&aring; tilbage, for at indtaste koden i billedet rigtigt!<br />Samt vælge den fil som skal sendes!</p><button onclick="history.go(-1); return false;"> <<< Tilbage </button>';
}
}

?>

Mvh ZiPs
Avatar billede jakobdo Ekspert
27. april 2008 - 22:04 #1
Jeg ved det ikke helt er det du søger, men jeg ville nok rette email delen, og så bruge phpmailer : http://phpmailer.codeworxtech.com/
Det kan så mange ting og gøre dit arbejde meget nemmere fremover.
Hvis du vælger den løsning, så kan du bruge $mail->AddCC('em@il.dk','CC Modtagers navn');

Og ellers bør du i din nuværende kode, kunne tilføje:
$body = 'Cc: kopi@email.dk' . "\n";

Det skal så tilføjes lige over:
$body  = "\n--$boundary\n";

Så det hele bliver:

$body  = 'Cc: kopi@email.dk' . "\n";
$body .= "\n--$boundary\n";
Avatar billede zips Juniormester
27. april 2008 - 22:32 #2
Hej jakobdo

Når jeg indsætter dette med min mail adresse
$body  = 'Cc: kopi@email.dk' . "\n";
$body .= "\n--$boundary\n";
får jeg stadig kun den ene og den skulle jo også gerne hente afsenderen mail adresse fra indtastningen alla dette $body .= 'Cc: $_POST['email']' . "\n";

Det er jo et hurtigt lille script at sætte ind, det du henviser til er jo et som kan langt mere end lige det jeg skal bruge, men prøver at kikke lidt mere på om det nemt kan sættes til denne lille ting jeg har brug for.

Mvh ZiPs
Avatar billede coderdk Praktikant
28. april 2008 - 00:18 #3
Prøv efter

$headers = "Content-type: multipart/mixed; boundary=\"$boundary\"";

at skrive:

$headers .= "\r\nCc: kopi@email.dk";

Generelt skal dine \n udskiftes med \r\n
Avatar billede zips Juniormester
28. april 2008 - 01:44 #4
Hej coderdk

Det var lige det som skulle til, det ser nu sådan ud

$headers = "Content-type: multipart/mixed; boundary=\"$boundary\"";
$headers .= "\r\nFrom: ".$navn . "<" .$_POST['email'] . ">";
$headers .= "\r\nBcc: ".$navn . "<" .$_POST['email'] . ">";

Jeg skiftede alle \n ud med \r\n, det var dumt, for så fik jeg ikke noget indhold med i mailen, så hvad betyder \r\n siden det skal være sådan?
Avatar billede coderdk Praktikant
28. april 2008 - 09:43 #5
Hmm. \r er "carriage return" \n er "newline", i følge SMTP RFC'en må der ikke være \n alene, den skal komme efter en \r... Men whatever, prøv at fjerne alle \r - det kan jo være at PHP laver noget bagved? :)
Avatar billede jakobdo Ekspert
28. april 2008 - 09:57 #6
Nogle systemer kan godt finde på at rette \n til \r\n og hvis der sker på: \r\n bliver det jo til: \r\r\n hvilket ikke virker.
Avatar billede zips Juniormester
28. april 2008 - 13:12 #7
Tak for svar om \r\n det vigtigste var dog det det kom til at virke, jeg vil prøve at teste på nogle andre server for at se om man kan ændre \n til \r\n og på den måde se om der er en forklaring på det ikke virker på denne server.
Avatar billede jakobdo Ekspert
28. april 2008 - 13:36 #8
Jeg synes dog også stadig du skal overveje at kigge på: http://phpmailer.codeworxtech.com/
Avatar billede coderdk Praktikant
28. april 2008 - 13:40 #9
Eller SwiftMailer: http://www.swiftmailer.org/ - Den er også suveræn :)
Avatar billede zips Juniormester
28. april 2008 - 13:51 #10
SwiftMailer se forholdsvis nem ud at bruge, så vil prøve at test den, der er ikke noget så skønt som Tutorials der også lige viser det jeg skulle bruge, tak coderdk
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger elementleder til System sektionen i Hvidovre

Netcompany A/S

Network Engineer

Politiets Efterretningstjeneste

AI/ML udvikler i PET

Politiets Efterretningstjeneste

Bliv IT-supporter i PET's IT Servicedesk