06. december 2003 - 11:49Der er
20 kommentarer og 1 løsning
Mail form - Hjælp
Hej. Jeg har brugt delfs.dk's mailform, men kan ikke få den til at virke. Her er koden:
<html> <head> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <body bgcolor="#95B0CA"> <font face="verdana" size="1" color="#333333"> <?php // Hvis formen er submitted if ($_GET['send']){
// Definér $boundary // boundary er en unik streng der identifiserer vores email $boundary = uniqid("");
// Hvis filtypen genkendes af browseren, sætter vi mime-typen til filtypen if ($_FILES['filen']['type']) { $mimeType = $_FILES['filen']['type'];
// Ellers, sætter vi mime-type til ukendt } else { $mimeType = "application/unknown"; }
// Læs filen ind i en variable $fil_var = fread(fopen($_FILES['filen']['tmp_name'],"r"),filesize($_FILES['filen']['tmp_name']));
// Gør filen læsevenlig for email-klienten $fil_var = base64_encode($fil_var);
// Split filkoden op i linier med 76 tegn i hver $fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er på vej
// Vi sætter vores unikke streng ind her $body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her $body .= $_POST['body_text']."\n\n";
// Slut på brødteksten $body .= "--$boundary\n";
// Så er det filens tur // Vi fortæller lige mime-typen og filnavnet $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen. // Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline' // Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment' $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64 $body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind $body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med $body .= "--$boundary--";
// Vi definerer from-headeren $headers = "From: ".$_POST['fra']."<x@z.com>\n";
// Vi fortæller hvilken type indhold mailen indeholder // samt emailens unikke id-streng $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit if (mail("dennis@laxy.dk", "Emnet", $body, $headers)) { echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse } else { echo "Der opstod en fejl, og mailen blev ikke sendt!"; }
// Hvis ikke formen er submitted, vis formen } else { echo "<form action='".basename($PHP_SELF)."?send=1' enctype='multipart/form-data' method='post'>\n"; echo "<table>\n"; echo "<tr><td>Fra:</td><td><input type='text' name='fra'></td></tr>\n"; echo "<tr><td>Fil:</td><td><input type='file' name='filen'></td></tr>\n"; echo "<tr><td>Body:</td><td><textarea name='body_text'></textarea></td></tr>\n"; echo "<tr><td></td><td><input type='submit' value='Send'></td></tr>\n"; echo "</table>\n</form>\n"; } ?>
Den sender en mail, hvor teksten som jeg skriver også står deri, og den finder også selve billedet som jeg sender med, men den kan ikke åbne den. Hvis man åbner den står der bare at der ikke er noget eksempel, og det tyder jo på at den ikke har sendt billedet ordentlig med, men jeg ved ikke hvordan jeg skal fixe det.
Den kommer med følgende fejl når jeg trykker send:
Warning: open_basedir restriction in effect. File is in wrong directory in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 25
Warning: fopen("/tmp/phpfvtxNS", "r") - Operation not permitted in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 25
Warning: Supplied argument is not a valid File-Handle resource in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 25
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Slettet bruger
06. december 2003 - 15:13#1
Brug move-uploaded-file() først, og så send resultatet derfra med mail. Der er opsat en sikkerhedsfunktion i PHP, så du ikke kan rode med filer uden for din egen mappe.
<html> <head> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <body bgcolor="#95B0CA"> <font face="verdana" size="1" color="#333333"> <?php // Hvis formen er submitted if ($_GET['send']){
// Definér $boundary // boundary er en unik streng der identifiserer vores email $boundary = uniqid("");
// Hvis filtypen genkendes af browseren, sætter vi mime-typen til filtypen if ($_FILES['filen']['type']) { $mimeType = $_FILES['filen']['type'];
// Ellers, sætter vi mime-type til ukendt } else { $mimeType = "application/unknown"; }
// Læs filen ind i en variable $upfil=$_FILES['filen']['tmp_name']; $sendfil='/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/' . basename($_FILES['filen']['tmp_name'];
if (move_uploaded_file($upfil,$sendfil)) { $fil_var = file_get_contents($sendfil); } else { $mimeType='text/plain'; $fil_var='fejl i uploaded fil.' }
// Gør filen læsevenlig for email-klienten $fil_var = base64_encode($fil_var);
// Split filkoden op i linier med 76 tegn i hver $fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er på vej
// Vi sætter vores unikke streng ind her $body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her $body .= $_POST['body_text']."\n\n";
// Slut på brødteksten $body .= "--$boundary\n";
// Så er det filens tur // Vi fortæller lige mime-typen og filnavnet $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen. // Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline' // Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment' $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64 $body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind $body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med $body .= "--$boundary--";
// Vi definerer from-headeren $headers = "From: ".$_POST['fra']."<x@z.com>\n";
// Vi fortæller hvilken type indhold mailen indeholder // samt emailens unikke id-streng $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit if (mail("dennis@laxy.dk", "Emnet", $body, $headers)) { echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse } else { echo "Der opstod en fejl, og mailen blev ikke sendt!"; }
// Hvis ikke formen er submitted, vis formen } else { echo "<form action='".basename($PHP_SELF)."?send=1' enctype='multipart/form-data' method='post'>\n"; echo "<table>\n"; echo "<tr><td>Fra:</td><td><input type='text' name='fra'></td></tr>\n"; echo "<tr><td>Fil:</td><td><input type='file' name='filen'></td></tr>\n"; echo "<tr><td>Body:</td><td><textarea name='body_text'></textarea></td></tr>\n"; echo "<tr><td></td><td><input type='submit' value='Send'></td></tr>\n"; echo "</table>\n</form>\n"; } ?>
Det her er linie 26: $sendfil='/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/' . basename($_FILES['filen']['tmp_name'];
Ja, det hjalp, men nu er det på linje 93 den er gal.
<html> <head> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <body bgcolor="#95B0CA"> <font face="verdana" size="1" color="#333333"> <?php // Hvis formen er submitted if ($_GET['send']){
// Definér $boundary // boundary er en unik streng der identifiserer vores email $boundary = uniqid("");
// Hvis filtypen genkendes af browseren, sætter vi mime-typen til filtypen if ($_FILES['filen']['type']) { $mimeType = $_FILES['filen']['type'];
// Ellers, sætter vi mime-type til ukendt } else { $mimeType = "application/unknown"; }
// Læs filen ind i en variable $upfil=$_FILES['filen']['tmp_name']; $sendfil='/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/' . basename($_FILES['filen']['tmp_name']);
if (move_uploaded_file($upfil,$sendfil)) { $fil_var = file_get_contents($sendfil); } else { $mimeType='text/plain'; $fil_var='fejl i uploaded fil.';
// Gør filen læsevenlig for email-klienten $fil_var = base64_encode($fil_var);
// Split filkoden op i linier med 76 tegn i hver $fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er på vej
// Vi sætter vores unikke streng ind her $body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her $body .= $_POST['body_text']."\n\n";
// Slut på brødteksten $body .= "--$boundary\n";
// Så er det filens tur // Vi fortæller lige mime-typen og filnavnet $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen. // Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline' // Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment' $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64 $body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind $body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med $body .= "--$boundary--";
// Vi definerer from-headeren $headers = "From: ".$_POST['fra']."<x@z.com>\n";
// Vi fortæller hvilken type indhold mailen indeholder // samt emailens unikke id-streng $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit if (mail("dennis@laxy.dk", "Emnet", $body, $headers)) { echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse } else { echo "Der opstod en fejl, og mailen blev ikke sendt!"; }
// Hvis ikke formen er submitted, vis formen else { echo "<form action='".basename($PHP_SELF)."?send=1' enctype='multipart/form-data' method='post'>\n"; echo "<table>\n"; echo "<tr><td>Fra:</td><td><input type='text' name='fra'></td></tr>\n"; echo "<tr><td>Fil:</td><td><input type='file' name='filen'></td></tr>\n"; echo "<tr><td>Body:</td><td><textarea name='body_text'></textarea></td></tr>\n"; echo "<tr><td></td><td><input type='submit' value='Send'></td></tr>\n"; echo "</table>\n</form>\n"; } ?>
else { Er linie 93
Synes godt om
Slettet bruger
06. december 2003 - 19:00#7
Du mangler den sidste } i de linier, jeg sagde, du skulle indsætte ved linie 25.
<html> <head> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <body bgcolor="#95B0CA"> <font face="verdana" size="1" color="#333333"> <?php // Hvis formen er submitted if ($_GET['send']){
// Definér $boundary // boundary er en unik streng der identifiserer vores email $boundary = uniqid("");
// Hvis filtypen genkendes af browseren, sætter vi mime-typen til filtypen if ($_FILES['filen']['type']) { $mimeType = $_FILES['filen']['type'];
// Ellers, sætter vi mime-type til ukendt } else { $mimeType = "application/unknown"; }
// Læs filen ind i en variable $upfil=$_FILES['filen']['tmp_name']; $sendfil='/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/' . basename($_FILES['filen']['tmp_name']);
if (move_uploaded_file($upfil,$sendfil)) { $fil_var = file_get_contents($sendfil); } else { $mimeType='text/plain'; $fil_var='fejl i uploaded fil.' }
// Gør filen læsevenlig for email-klienten $fil_var = base64_encode($fil_var);
// Split filkoden op i linier med 76 tegn i hver $fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er
på vej
// Vi sætter vores unikke streng ind her $body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her $body .= $_POST['body_text']."\n\n";
// Slut på brødteksten $body .= "--$boundary\n";
// Så er det filens tur // Vi fortæller lige mime-typen og filnavnet $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen. // Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline' // Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment' $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64 $body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind $body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med $body .= "--$boundary--";
// Vi definerer from-headeren $headers = "From: ".$_POST['fra']."<x@z.com>\n";
// Vi fortæller hvilken type indhold mailen indeholder // samt emailens unikke id-streng $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit if (mail("dennis@laxy.dk", "Emnet", $body, $headers)) { echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse } else { echo "Der opstod en fejl, og mailen blev ikke sendt!"; }
// Hvis ikke formen er submitted, vis formen else { echo "<form action='".basename($PHP_SELF)."?send=1' enctype='multipart/form-data'
Ja, nu virker det, men jeg får stadig ikke billedet med, så det er faktisk som da vi startede... Jeg fatter det ikke, jeg har da set mange andre forms gøre det...
Her er koden der kan vise selve formen, og sender en mail med den tekst man skriver, men ikke sender billedet med:
<html> <head> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <body bgcolor="#95B0CA"> <font face="verdana" size="1" color="#333333"> <?php // Hvis formen er submitted if ($_GET['send']){
// Definér $boundary // boundary er en unik streng der identifiserer vores email $boundary = uniqid("");
// Hvis filtypen genkendes af browseren, sætter vi mime-typen til filtypen if ($_FILES['filen']['type']) { $mimeType = $_FILES['filen']['type'];
// Ellers, sætter vi mime-type til ukendt } else { $mimeType = "application/unknown"; }
// Læs filen ind i en variable $upfil=$_FILES['filen']['tmp_name']; $sendfil='/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/' . basename($_FILES['filen']['tmp_name']);
if (move_uploaded_file($upfil,$sendfil)) { $fil_var = file_get_contents($sendfil); } else { $mimeType='text/plain'; $fil_var='fejl i uploaded fil.'; }
// Gør filen læsevenlig for email-klienten $fil_var = base64_encode($fil_var);
// Split filkoden op i linier med 76 tegn i hver $fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er på vej
// Vi sætter vores unikke streng ind her $body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her $body .= $_POST['body_text']."\n\n";
// Slut på brødteksten $body .= "--$boundary\n";
// Så er det filens tur // Vi fortæller lige mime-typen og filnavnet $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen. // Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline' // Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment' $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64 $body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind $body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med $body .= "--$boundary--";
// Vi definerer from-headeren $headers = "From: ".$_POST['fra']."<x@z.com>\n";
// Vi fortæller hvilken type indhold mailen indeholder // samt emailens unikke id-streng $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit if (mail("dennis@laxy.dk", "Emnet", $body, $headers)) { echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse } else { echo "Der opstod en fejl, og mailen blev ikke sendt!"; }
// Hvis ikke formen er submitted, vis formen } else { echo "<form action='".basename($PHP_SELF)."?send=1' enctype='multipart/form-data' method='post'>\n"; echo "<table>\n"; echo "<tr><td>Fra:</td><td><input type='text' name='fra'></td></tr>\n"; echo "<tr><td>Fil:</td><td><input type='file' name='filen'></td></tr>\n"; echo "<tr><td>Body:</td><td><textarea name='body_text'></textarea></td></tr>\n"; echo "<tr><td></td><td><input type='submit' value='Send'></td></tr>\n"; echo "</table>\n</form>\n"; } ?>
Synes godt om
Slettet bruger
07. december 2003 - 04:27#11
Sender den beskeden "Fejl i uploaded fil" med som attachment i stedet for?
Warning: Unable to create '/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/phpRPthfY': No such file or directory in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 28
Warning: Unable to move '/tmp/phpRPthfY' to '/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/phpRPthfY' in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 28 Mailen er sendt!
Linie 28 er: if (move_uploaded_file($upfil,$sendfil)) {
Synes godt om
Slettet bruger
07. december 2003 - 20:37#13
Jeg sagde jo: Lav en ny mappe til de uploadede filer. F.eks /usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp
Ellers virker rettelsen jeg gav dig ikke.
Du kan godt lave mappen med et andet navn, men så skal du rette i linien, hvor $sendfil bliver defineret.
Det har jeg nu også gjort. Jeg har lavet en mappe der hedder tmp som ligger i mappen dennis.laxy.dk/test/foto/txtfiler/, og jeg har prøvet at chmode den til 766, men den kommer alligevel med fejlen:
Warning: Unable to create '/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/phpQ9KBsD': Permission denied in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 28
Warning: Unable to move '/tmp/phpQ9KBsD' to '/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/phpQ9KBsD' in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 28 Mailen er sendt!
Synes godt om
Slettet bruger
08. december 2003 - 01:15#15
Prøv at chmode den til 777.
x-bitten på et dir betyder om man kan cd ind i det dir.
Det hjalp lidt, for nu ligger der faktisk nogle filer i tmp mappen når man sender det... De hedder php og så en masse underligt. Men nu kommer den med en ny fejl:
Fatal error: Call to undefined function: file_get_contents() in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 29
Linie 29: $fil_var = file_get_contents($sendfil);
Jeg har btw. lige sat points op til 120...
Synes godt om
Slettet bruger
08. december 2003 - 14:30#17
Så er vi nødt til at bruge en anden måde at hente filen ind. file_get_contents() kom først med i PHP 4.3.
Warning: fopen("/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/php3y1f6K", "8621") - Invalid argument in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 29
Warning: Wrong parameter count for fread() in /usr/www/laxy_dk/dennis/test/foto/txtfiler/txtbestilling.php on line 29 Mailen er sendt!
Her er hele koden, så du kan se det i en helhed:
<html> <head> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <body bgcolor="#95B0CA"> <font face="verdana" size="1" color="#333333"> <?php // Hvis formen er submitted if ($_GET['send']){
// Definér $boundary // boundary er en unik streng der identifiserer vores email $boundary = uniqid("");
// Hvis filtypen genkendes af browseren, sætter vi mime-typen til filtypen if ($_FILES['filen']['type']) { $mimeType = $_FILES['filen']['type'];
// Ellers, sætter vi mime-type til ukendt } else { $mimeType = "application/unknown"; }
// Læs filen ind i en variable $upfil=$_FILES['filen']['tmp_name']; $sendfil='/usr/www/laxy_dk/dennis/test/foto/txtfiler/tmp/' . basename($_FILES['filen']['tmp_name']);
if (move_uploaded_file($upfil,$sendfil)) { $fil_var = fread(fopen($sendfil,filesize($sendfil))); } else { $mimeType='text/plain'; $fil_var='fejl i uploaded fil.'; }
// Gør filen læsevenlig for email-klienten $fil_var = base64_encode($fil_var);
// Split filkoden op i linier med 76 tegn i hver $fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er på vej
// Vi sætter vores unikke streng ind her $body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; charset=iso-8859-1\n"; $body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her $body .= $_POST['body_text']."\n\n";
// Slut på brødteksten $body .= "--$boundary\n";
// Så er det filens tur // Vi fortæller lige mime-typen og filnavnet $body .= "Content-type: $mimeType; name=".$_FILES['filen']['name']."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen. // Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline' // Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment' $body .= "Content-disposition: attachment; filename=".$_FILES['filen']['name']."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64 $body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind $body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med $body .= "--$boundary--";
// Vi definerer from-headeren $headers = "From: ".$_POST['fra']."<x@z.com>\n";
// Vi fortæller hvilken type indhold mailen indeholder // samt emailens unikke id-streng $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit if (mail("dennis@laxy.dk", "Emnet", $body, $headers)) { echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse } else { echo "Der opstod en fejl, og mailen blev ikke sendt!"; }
// Hvis ikke formen er submitted, vis formen } else { echo "<form action='".basename($PHP_SELF)."?send=1' enctype='multipart/form-data' method='post'>\n"; echo "<table>\n"; echo "<tr><td>Fra:</td><td><input type='text' name='fra'></td></tr>\n"; echo "<tr><td>Fil:</td><td><input type='file' name='filen'></td></tr>\n"; echo "<tr><td>Body:</td><td><textarea name='body_text'></textarea></td></tr>\n"; echo "<tr><td></td><td><input type='submit' value='Send'></td></tr>\n"; echo "</table>\n</form>\n"; } ?>
Synes godt om
Slettet bruger
08. december 2003 - 14:59#19
Jeg havde fået placeret ()-erne forkert og glemt 'r' til fopen.
Her er en erstatning for linie 29 med lidt bedre fejlhåndtering.
$filehandle=fopen($sendfil,'r'); if ($filehandle){ $fil_var = fread($filehandle,filesize($sendfil)); } else { echo "Kunne ikke åbne filen!"; }
Jada, så virker det! Mange tusinde tak for hjælpen Sandbox! :)
Synes godt om
Slettet bruger
08. december 2003 - 18:09#21
Selv tak.
Det var godt, at jeg fik en undskyldning til at lege lidt med programmering af filuploads, for det har jeg ikke arbejdet med før. Så jeg lærte selv en del af det her. ;-)
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.