Avatar billede ette Nybegynder
07. maj 2004 - 09:53 Der er 31 kommentarer og
1 løsning

email script virker ikke?

Hej med jer, jeg har et script som jeg skal bruge til nedenstående form, problemet er blot at den viser den har vedhæftet filen, men man kan ikke se clipsen og dermed åbne noget som helst.

<form action="mail.php" method="post" enctype="multipart/form-data" name="form1">
    <div align="center">
      <p align="center">Dit navn:
        <input name="navn" type="text" id="navn3" size="40">
</p>
      <p align="center">Din e-mail:
        <input name="mail" type="text" id="mail" size="40">
</p>
      <p align="center">
        <textarea name="besked" cols="40" rows="7" id="besked"></textarea>
      </p>
      <p align="center">vedh&aelig;ft billede:
        <input type="file" name="file">
      </p>
      <p align="center">        <input type="submit" name="Submit" value="send">
      </p>
    </div>
  </form>


Her er scriptet der skal sende vedhæftede filer med emailen.
mail.php
<?php
$to = 'din@email.dk';
$subject = 'Emne';

$textmail = '';

foreach($_POST as $key => $val ) {
    if( $key != 'Submit' && !empty($val) ) {
        $textmail .= "$key: $val\n";
    }
}

$encoded = '';

if( isset($_FILES['file']) && isset( $_FILES['file']['tmp_name']) ) {
    $content = file_get_contents($_FILES['file']['tmp_name']);
    $encoded = chunk_split(base64_encode($content));
}
// Lav mail
$boundary = uniqid("");

$header = array();
$header[] = "MIME-Version: 1.0";
$header[] = "Content-Type: multipart/alternative; boundary=\"$boundary\"";
$header[] = "Content-Transfer-Encoding: 7bit";

$body = array();
$body[] = "--$boundary";
$body[] = "Content-Type: text/plain; charset=\"iso-8859-1\"";
$body[] = "Content-Transfer-Encoding: 7bit";
$body[] = '';
$body[] = $textmail;

if(! empty($encoded)) {
    $body[] = "--$boundary";
    $body[] = "Content-Type: " . $_FILES['file']['type'] . ";";
    $body[] = '';
    $body[] = $encoded;
}

mail($to, $subject, join("\n",$body),join("\n",$header));
?>

Men det virker altså ikke, er der nogen der kan se fejl??
Mvh Ette.
Avatar billede jammerlab Nybegynder
07. maj 2004 - 10:26 #1
http://www.eksperten.dk/spm/494697

Der er den samme kode ihvertfald diskuteret...
Avatar billede kimg Nybegynder
07. maj 2004 - 10:32 #2
her er en lidt kode fra "Wrox" Beginner PHP.
Det virker perfekt er lige til at tilpasse.

<?php
//adv_mailer.php

function mailer_header()
{
?>
<HTML>
<HEAD><TITLE>E-mailer</TITLE></HEAD>
<BODY>
<?php
}

function mailer_footer()
{
?>
</BODY>
</HTML>
<?php
}

function error_message($msg)
{
  mailer_header();
  echo "<SCRIPT>alert(\"Error: $msg\");history.go(-1)</SCRIPT>";
  mailer_footer();
  exit;
}

function user_message($msg)
{
  mailer_header();
  echo "<SCRIPT>alert(\"$msg\");history.go(-1)</SCRIPT>";
  mailer_footer();
  exit;
}

function mail_form() {
  global $PHP_SELF;
?>
<FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA" ACTION="<?php echo $PHP_SELF ?>">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="send_mail">
<DIV ALIGN="CENTER ">
<TABLE CELLSPACING="2" CELLPADDING="5" WIDTH="90%" BORDER="1">
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">To</TH>
      <TD WIDTH="70%"><INPUT NAME="mail_to" SIZE="20"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Cc</TH>
      <TD WIDTH="70%"><INPUT NAME="mail_cc" SIZE="20"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Bcc</TH>
      <TD WIDTH="70%"><INPUT NAME="mail_bcc" SIZE="20"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">From</TH>
      <TD WIDTH="70%"><INPUT SIZE="20" NAME="mail_from"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Reply-to</TH>
      <TD WIDTH="70%"><INPUT SIZE="20" NAME="mail_reply_to"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Attachment</TH>
      <TD WIDTH="70%"><INPUT TYPE="FILE" NAME="userfile"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Type</TH>
      <TD WIDTH="70%">
      <INPUT TYPE="RADIO" VALUE="text" NAME="mail_type" CHECKED>TEXT
      <INPUT TYPE="RADIO" VALUE="html" NAME="mail_type">HTML</TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Encoding</TH>
      <TD WIDTH="70%">
      <INPUT TYPE="RADIO" VALUE="7bit" NAME="mail_encoding" CHECKED>7BIT
      <INPUT TYPE="RADIO" VALUE="8bit" NAME="mail_encoding">8BIT</TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Character Set</TH>
      <TD WIDTH="70%">
      <INPUT TYPE="RADIO" VALUE="us-ascii" NAME="mail_charset" CHECKED>US-ASCII
      <INPUT TYPE="RADIO" VALUE="euc-kr" NAME="mail_charset">EUC-KR</TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Subject</TH>
      <TD WIDTH="70%"><INPUT SIZE="40" NAME="mail_subject"></TD>
  </TR>
  <TR>
      <TH ALIGN="CENTER" WIDTH="30%">Body</TH>
      <TD WIDTH="70%"><TEXTAREA NAME="mail_body" ROWS="16"
        COLS="70"></TEXTAREA></TD>
  </TR>
  <TR>
      <TH WIDTH="100%" COLSPAN="2" ALIGN="CENTER">
        <INPUT TYPE="SUBMIT" VALUE="Send" NAME="SUBMIT">
        <INPUT TYPE="RESET" VALUE="Reset" NAME="RESET">
      </TH>
  </TR>
</TABLE>
</DIV>
</FORM>
<?php
}

function send_mail()
{
  global $mail_to, $mail_cc, $mail_bcc, $mail_from, $mail_reply_to;
  global $mail_body, $mail_subject;
  global $userfile, $userfile_type, $userfile_name, $userfile_size;
  global $mail_type, $mail_charset, $mail_encoding;

  $mail_parts["mail_type"] = $mail_type;
  $mail_parts["mail_charset"] = $mail_charset;
  $mail_parts["mail_encoding"] = $mail_encoding;

  $mail_parts["userfile"] = $userfile;
  $mail_parts["userfile_type"] = $userfile_type;
  $mail_parts["userfile_name"] = $userfile_name;
  $mail_parts["userfile_size"] = $userfile_size;


  $mail_parts["mail_to"] = $mail_to;
  $mail_parts["mail_from"] = $mail_from;
  $mail_parts["mail_reply_to"] = $mail_reply_to;
  $mail_parts["mail_cc"] = $mail_cc;
  $mail_parts["mail_bcc"] = $mail_bcc;
  $mail_parts["mail_subject"] = trim($mail_subject);
  $mail_parts["mail_body"] = $mail_body;

  if(my_mail($mail_parts))
      user_message("Successfully sent an e-mail titled '$mail_subject'.");

  else error_message("An unknown error occurred while attempting to
                                send an e-mail titled '$mail_subject'.");
}

function my_mail($mail_parts)
{
  $mail_to = $mail_parts["mail_to"];
  $mail_from = $mail_parts["mail_from"];
  $mail_reply_to = $mail_parts["mail_reply_to"];
  $mail_cc = $mail_parts["mail_cc"];
  $mail_bcc = $mail_parts["mail_bcc"];
  $mail_subject = $mail_parts["mail_subject"];
  $mail_body = $mail_parts["mail_body"];

  $mail_type = $mail_parts["mail_type"];
  $mail_charset = $mail_parts["mail_charset"];
  $mail_encoding = $mail_parts["mail_encoding"];

  $userfile = $mail_parts["userfile"];
  $userfile_type = $mail_parts["userfile_type"];
  $userfile_name = $mail_parts["userfile_name"];
  $userfile_size = $mail_parts["userfile_size"];

  if(empty($mail_to)) error_message("Empty to field!");
  if(empty($mail_subject)) error_message("Empty subject!");
  if(empty($mail_body)) error_message("Empty body! ");

  $mail_to = str_replace(";", ",", $mail_to);

  $mail_headers = '';

  if(!empty($mail_from)) $mail_headers .= "From: $mail_from\r\n";
  if(!empty($mail_reply_to)) $mail_headers .= "Reply-to: $mail_reply_to\r\n";
  if(!empty($mail_cc))
            $mail_headers .= "Cc: " . str_replace(";", ",", $mail_cc) . "\r\n";
  if(!empty($mail_bcc))
            $mail_headers .= "Bcc: " . str_replace(";", ",", $mail_bcc) . "\r\n";

  $mail_subject = stripslashes($mail_subject);
  $mail_body = stripslashes($mail_body);

  if($userfile_size > 0)
  {
      $mail_boundary = md5(uniqid(time()));
      $mail_headers .= "MIME-Version: 1.0\r\n";
      $mail_headers .= "Content-type: multipart/mixed;
                                      boundary=\"$mail_boundary\"\r\n\r\n";
      $mail_headers .= "This is a multi-part message in MIME format.\r\n\r\n";

      $fp = fopen($userfile, "r");
      $file = fread($fp, filesize($userfile));
      $file = chunk_split(base64_encode($file));

      $new_mail_body = "--$mail_boundary\r\n";
      $new_mail_body .= "Content-type:text/plain;charset=$mail_charset\r\n";
      $new_mail_body .= "Content-transfer-encoding:$mail_encoding\r\n\r\n";
      $new_mail_body .= "$mail_body\r\n";
      $new_mail_body .= "--$mail_boundary\r\n";
      if(!empty($userfile_type)) $mime_type = $userfile_type;
      else $mime_type = "application/octet-stream";

      $new_mail_body .= "Content-type:$mime_type;name=$userfile_name\r\n";
      $new_mail_body .= "Content-transfer-encoding:base64\r\n\r\n";
      $new_mail_body .= $file . "\r\n\r\n";
      $new_mail_body .= "--$mail_boundary--";
      $mail_body = $new_mail_body;
  }
  else if($mail_type == 'html')
  {
      $mail_headers .= "Content-type: text/html; charset=$mail_charset\r\n";
      $mail_headers .= "Content-transfer-encoding:$mail_encoding\r\n\r\n";
  }
  else
  {
      $mail_headers .= "Content-type: text/plain; charset=$mail_charset\r\n";
      $mail_headers .= "Content-transfer-encoding:$mail_encoding\r\n\r\n";
  }

  return mail($mail_to,$mail_subject,$mail_body,$mail_headers);
}

switch ($action)
{
  case "send_mail":
      mailer_header();
      send_mail();
      mailer_footer();
      break;
  case "mail_form":
      mailer_header();
      mail_form();
      mailer_footer();
      break;
  default:
      mailer_header();
      mail_form();
      mailer_footer();
      break;
}
?>

Kim
Avatar billede ette Nybegynder
07. maj 2004 - 10:34 #3
Hej Talker, ja det er koden, men da ham der lavede den desværre ikke kan logge ind på eksperten, kan han ikke hjælpe mere og det er ikke det samme spørgsmål for nu har jeg pludselig en kode, det havde jeg ikke før, problemet er bare at den ikke helt virker efter hensigten, men har du måske et kvalificeret svar på det?
Avatar billede ette Nybegynder
07. maj 2004 - 10:37 #4
Hej Kim, det er pænt af dig, men her er der jo en indbygget form i og det er ikke så godt, fordi jeg har fået lavet en rigtig pæn og enkel form, hvor jeg så skal bruge en kode der kan knyttes til den form.
Avatar billede rednex Nybegynder
07. maj 2004 - 12:10 #5
Et skud i tågen - du mangler at afslutte din boundry i slutningen af mailen:

--$boundry--
Avatar billede ette Nybegynder
07. maj 2004 - 12:18 #6
rednex, næhh det virker stadig ikke, men nu har jeg skrevet form-data i phpscriptet hvor der ellers står alternative og nu kan den sende en vedhæftet fil, blot en fil jeg overhovedet ikke kender og som jeg ikke kan åbne, det er meget mærkeligt :0/
Avatar billede rednex Nybegynder
07. maj 2004 - 12:23 #7
Prøv med Content-type: multipart/mixed og hvis du kan paste den mail du får (med headers og hele balladen) ville det være mums
Avatar billede ette Nybegynder
07. maj 2004 - 12:27 #8
Jeg har prøvet med multipart/mixed men det virker ikke, øhhh hvad mener du med at paste den mail ? jeg er ikke så sikker i dette cypersprog :-)
Avatar billede rednex Nybegynder
07. maj 2004 - 12:35 #9
Hvis du f.eks. kører med Outlook Express som mail klient har du mulighed for at se hele den rå 'kode' fra den mail scriptet sender. Hvis du kunne kopiere den herind ville det måske være nemmere at se hvad der gik galt.

Du klikker på mailen i oversigten, højreklikker og vælger Properties. Derefter vælger du fanebladet Details og trykker på knappen der hedder Message Source. Så får du et vindue op med den rå mail.

Kopiér al teksten herind, så kan vi måske se hvad der går galt.
Avatar billede ette Nybegynder
07. maj 2004 - 12:50 #10
Øh det ser underligt ud, men jeg tror at det er krypteringen den er gal med.

Return-Path: <dvdesign@adslhome.dk>
Received: from pfepa.post.tele.dk ([195.41.46.235]) by fepE.post.tele.dk
          (InterMail vM.5.01.06.08 201-253-122-130-108-20031117) with ESMTP
          id <20040507104617.GHXX9190.fepE.post.tele.dk@pfepa.post.tele.dk>
          for <galleriette@mail.dk>; Fri, 7 May 2004 12:46:17 +0200
Received: from PENTIUM3 (0x503e9c1e.naenxx2.adsl-dhcp.tele.dk [80.62.156.30])
    by pfepa.post.tele.dk (Postfix) with SMTP id 9DFEC47FE81
    for <galleriette@mail.dk>; Fri,  7 May 2004 12:46:17 +0200 (CEST)
Date: Fri, 07 May 2004 12:46:16 +0100
From: dvdesign@adslhome.dk
Subject: Emne
To: galleriette@mail.dk
MIME-Version: 1.0
Content-Type: multipart/form-data; boundary="409b68f6a8412"
Content-Transfer-Encoding: 7bit
Message-Id: <20040507104617.9DFEC47FE81@pfepa.post.tele.dk>
X-NAS-Bayes: #0: 0.000484664; #1: 0.999515
X-NAS-Classification: 0
X-NAS-MessageID: 256
X-NAS-Validation: {EC5135E5-2320-4037-83F8-7F73D2A4A580}

--409b68f6a8412
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit


--409b68f6a8412
Content-Type: image/pjpeg;

/9j/4AAQSkZJRgABAQEASABIAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAIBgYHBgUI
BwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy
/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIy/8AAEQgAcACVAwERAAIRAQMRAf/EABsAAAICAwEAAAAAAAAAAAAAAAUGBAcA
AgMB/8QAOhAAAQMDAwIFAgMGBAcAAAAAAQIDBAAFEQYSITFBExQiUWEHcTKRoRUjQlKB0WKxweEW
FyQzNENT/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEA
AhEDEQA/AK80c1bpwVGfKQ6oYCSOtBYmkbG3p+7LUporjr5ScdPvQH9S3KM2hfhupQpKevtQUhPh
uX2+lETKyo4KyOpoGCD9NHI625FxcAa67f70AbWBtDakx4CkLWnqUjpQKeKDzFBgFBsRQYBQbEcU
GtBlBlBhoPKDKCbAjeOlZx0xQR4khyK+h5pRStJyCKC0tKfUBLqxHnjCiMBZoCt2kQHPFkrd3JUf
UCaDjppuCmOuc2EghRWBjpigXNYavuNyUIUbelBODs70CpM01dYcMS5MdSW1c5J5oBOKDMUHg60B
WNYpcy1PT2QCGico7qSByofagGCg9PSg0oMNB5QYaDzNBmaBksTOYilEdTQLiaDsglJyDgigMwn5
83DKEuO9gAM0Fi6T0tPdQWZRWy0pOSnHWgOXK02exKClNJW6PVnGTQI+r9S3C6xfKs25TUcfxkcm
gr1ba0fiSR9xQaYoClg0/O1DcUxYjfp6uOqHobT3JNBZ6bUiFbAiPlLbZS037kDkqPyTzQLGq9Jq
Tb/2xEaHp/8AJQkdB2Xj/P8AP3oEVQ4oNAM0HYRHlJyEHFBoqO6jqk0HIig8oMA5oG23YYhIB7ig
VE9aDsgcjPSgvr6WxbN+zG1KDZkDnnGaB01CtEOH40cY2gkYoK1i3tq4XZ12S2pxtvAzjOTQFZNz
hyEbDa0Bs/OTQCn7DZJzRzDcRnphf+1AMb0HZUyUuuNyVo3ZLYdABHt0z+tA4KkQ4kBMS3Q0RI4G
PDQMc/Pv96CJkONhJHpT0FAQiNIfaU0tCVIWkoUlXIUk8EUFHXazPRdRyrTHaU44h5SG0J5Kh1H6
UBS2aKufm2m5cVTZcAIzg/5d/igsqDoKMiMEuJyvHJoBl40O00wstJzgZ6UFV3aAqJIUNuADQDUo
Uo4Skk/AoJsW1y3nUfuF7c8kigLzXPKltrPITQLY60HZIoHXQExMW7tpcdU2Crg9qC477cULtZbS
N5UnHFApIiMmMDHSEjqeOtBuwgHCT1B6UGzivCc9ZCfvQbOzmmClKjyfnFBipcZ4Kb3jd0IPBoJr
awuGW8ABtWTQc5MlUaIlbXCz0NAEj6cRCmOahkSlSJ0tRW03/wDMHqSfft8CgZYL5k3GOtIOxaN6
hjv0oHFDYCAQOMUESVE8yCkCgSbn9PmLhJcWtYSnFBrbdMactAO9KHHAequaANqS7wI7ngxI6Bgd
cUFX3SWp+YpdBAHWgkM7Q4kq5APNBaFnumn02ttJLXjj+EjmgLo1DCcirQVjgYABzig909NbnwlY
I3IWpJA++R+hoJbjZjTmXihRb3DdgUEa5RkG5x1NrDjboUpB9yATj+lAuuwptxSl+I+JAUfUQoJD
au4OeeKDouAtK1vqeyGWtqj2UvGOPt1++KCe3IlQNPgySEyJB2kE87RnnHb2NBJRIVJt0dR5O05/
M0BRbjUe2NynAlStoaZQo4BVQHdMQnPJOTJpJdX0BTt2D2x2oO7OoWmZS2XcYzxQaXTU8RiMSggH
vg0CXN1ZKksO+XVsGOtAsQtRxo61mSsrd6ZJoA95mCS4uQjhJ6UCkslSyT70BhzS92bWNkRxxJ6K
QnNBOXpC6MoRuYUFK6gjpQDJ8B63OhDvBoI6JDraspWfzoG3RNzdhXlLbqT4MobTk4wrsf8AT+tB
a7pTKgLDKh4iE8ooEtN1RBnpDydzRVuH+FXuKCZAt1uaW+9Bkrw+dxZUvCQfjv8ArQEExVqLcdba
Uuk52p/9YHf7/wC1AH1lJbZaisIP4QcADgDig9hqCbPHyD/2wfz5oNpiPOWNl11w+GkqCB7+o80D
bYL95pPknCd+3kk9qAZfLTOmXXMNG1hI9chw7UJ/r/oKCBeGrfpezJmyUG5yJC9jQdyhvgZKsDkj
p1oECbqV19tQWlpsHohpsIA/KgV1OF6QVk96Ds7LUWvCoI6W+KC0tL/UuFEYDdwZO8d0jINA7x9U
2a9xyttSQB79c0FMaufck3t5wj93uIRj2oOmldOqvM4bgdieTQFtY21NnDbbKhvSM7k8YoJdov0p
2BHf8RaZLQ2qV3Pz85oJj18iTHd0+2xXHeu7aRn54PWg6sahcS4I9rgRmnFcAtt+r8zQHY6/IRlO
Puhbyx63CcAfA+KBF1Pc27nMYbYWFYJTwO5IoGRiMqQG4jXpyMFX8qR1NB1u8Z9xDbETaiO0kJSk
nsKAzDtiYkxme8sHLKSGUHlasd/ZOaA1DtE69TUvTXVBgHKGxwkfYdhQb6ntFuuCmG39pba9Lftn
uaCubz9P0LkrfYOWiOBjvQVrMieRlvMqGChRFBIsFp/bVw8v4gQe2e9BLumn5drlqjltTg7KSOtA
vJ7UDPpFbIuSfHcwnPQnANBYcu26ekKSdzeQMn1UEeFKt9qdWiGpIJTwQe9AtaljTppXIcXuQOeO
lBxjXqKi2+VDZ8cjAAHegnQrJOubGXkFhQP4lDt7igYGI0KyMbAoF0jJUsgFVAtXy+OSgWgobM9B
QBrQgybu1wVBB3YAzk9v1xQWbGQLZBUt8jx1jK/8I7JFAuzbw6tzckegHpQWboxMa7WpMtcd1MlH
7tW9JCTjoQe/Sgm3HVNvt8lVvac8R8HDu3nb/hoIkh+K+wHpGEY5SFHFAj3fXkKLPXEQrxG0pKSU
9M0CmbArU7j09pQQjbwPegy3aUNrdMp90pKOUqBwKCd/xtFZdWh5oPKBxuoK0T2oO7ZI5BxQdhIe
R0cV+dB1amvIdCwo7qBmh37x4SmZBycdD3oJmnNNb31XWcktRwdzYVwVD+3zQHLjqZSf3UVlKEAY
CzyTQLcqQ5IUVurUtWOpNADlKIVtFA26VtqbY0ZclP8A1K+Ug/wD+9BJus9by9vagCvO+GAEn1Gg
dDr9UPSsa1QklqQpJ8d/vz/L/eg208zGaZE1xO4g7ipXegWte6kXMQmNFUpKQTkg0FelstjeonJ6
5oC8C/S4UHw47pTQMrhuN9soSy0s4T6iOmaBCmQ5ESQpt1Ct2euKCO2hSyAlJJ9gKCV5d5BCVNqB
PQEUHrjLrZwtCkk+4oGCz6alOteZeZIaI4NBxWBZ702+ppK2kHkLTkffFA2ftR24AFx3ck8gdqCL
LbSofNAMWnGRQSbTag48JTwzj8APb5oD77jbDWM80AV57eo4/Og0g2126zQ0g491Y6UEK52mVa5H
hSVjxCo4BGMj3FAThXpQZTEXlBxjmgE3ttBWlQOaBblLLi9o6Cg0YQUqANBa+mL0zGsxY2AqH9Oa
ANckwZcpS5DqW1ZPpB6UFg6Z+ndrtjILraXHD+IqHNASuWmbYyrxVxmyke6RxQL16s1ofbRsQ2Sj
npQdZbrRtAiwmculIAx2oEi+WB9DZMgAk96ALbZCI2WgVHwz0xnigmLekvJKkIx7ZFBJttlnKYcm
zeEHCUII6knGaAy8/HhNBCSlSh1xQCHXlyHUpCVAKPHFBzuFulx1oaQUgr7K4JoG7RFucjOESGyE
q/iNBYV101b7vbw1IhofGPSoDCk/INBUM3S8SFNdbU682ps+le3ckj885+KBRu/it7jhRaScBZGA
aASwnfye9AQiW16ashlGcUEhM5yG24wBlYOCc96AU68txwqUolR60F0SdfogXhSXiQggbR7GgxzW
rd5koYSkhKjzQH0aeYfjpfWskDkkUAh/UFrtr3lyoBwenAHU0ATUduulyhebYOUEcIA5oEO2Qpwc
cw04lxGc8HNAUiznklKH2yAOVKUO3wO9AdcuwvEdMaKw8ENHcVnjJFAxWL6d+fYRIn5aUv1BtJ4A
+fmgaP8AlxbgELDrgUjoc0CfrvTU1sB5sJcZQMbgeRQIjF/udpZK4st5pbRwpIVx+XSglx/q7qyI
4HEy2n0Dq26wnB/qAD+tBj/1Keu0p12XZ7YlbnVaULz+qsfpQKd5uj1yfShThLaPwNjhKfsBxQQE
KKFAZoGSFcF2eE4lO1Tr6eD/AC0AZRJJKjkk5oOW0g0Fqqs0HUUr9oAgJA49s0AiH5W2ajLYO1JO
M44zQWDNuwh2o7VnYtHGKBRZ041eX0SHVLCler7UDzHY/ZUVEYSFKUANildRQdZFkjvMqLDbXiqT
nKk9aCupVnufmnw9HShtJPJ7/agkWVvwZSElGBuycUFqxH9raEAOYAzwKBcu31DehS3IyITjiEHC
ligRr9rlctwpSV+Cr8SCaBQkyYz8pRbSUtrThQNAvvtLjuqa6gHj7UHIBQPFB28qtKPE654oNkQZ
K0qeLKvDR1VjigmNRJEn8AUUjuaDsIQbV6hvV7UHvl3F8hIT8UH/2Q==
Avatar billede rednex Nybegynder
07. maj 2004 - 12:59 #11
Jeg er på vej til fødselsdag, men jeg skal nok prøve at kigge på det når jeg kommer hjem igen
Avatar billede ette Nybegynder
07. maj 2004 - 13:04 #12
ok og tak
Avatar billede rednex Nybegynder
08. maj 2004 - 01:07 #13
Jeg tror jeg har fundet problemet. Du mangler
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="filnavn.filtype"
for den part hvor din attachment ligger. Du skal stadig huske at afslutte mailen med $boundry fulgt af to bindestreger (attachment data, tom linie, --$boundry--). Jeg tror også at Content-Type på selve mailen skal være multipart/mixed.
Avatar billede ette Nybegynder
08. maj 2004 - 09:18 #14
Øh! kan du ikke sætte det ind i hvor det skal sættes, for hvad er det for en af dem dette skal sættes ind i ? Jeg er lidt forvirret....og er en begynder i php :-) men jeg arbejder på at blive bedre.
Avatar billede rednex Nybegynder
08. maj 2004 - 10:07 #15
Din kode skulle gerne ende med at se sådan her ud:

<?php
$to = 'din@email.dk';
$subject = 'Emne';

$textmail = '';

foreach($_POST as $key => $val ) {
    if( $key != 'Submit' && !empty($val) ) {
        $textmail .= "$key: $val\n";
    }
}

$encoded = '';

if( isset($_FILES['file']) && isset( $_FILES['file']['tmp_name']) ) {
    $content = file_get_contents($_FILES['file']['tmp_name']);
    $encoded = chunk_split(base64_encode($content));
}
// Lav mail
$boundary = uniqid("");

$header = array();
$header[] = 'MIME-Version: 1.0';
$header[] = "Content-Type: multipart/mixed; boundary=\"$boundary\"";
$header[] = 'Content-Transfer-Encoding: 7bit';

$body = array();
$body[] = "--$boundary";
$body[] = 'Content-Type: text/plain; charset="iso-8859-1"';
$body[] = 'Content-Transfer-Encoding: 7bit';
$body[] = '';
$body[] = $textmail;

if(! empty($encoded)) {
    $body[] = '--$boundary';
    $body[] = 'Content-Type: ' . $_FILES['file']['type'];
    $body[] = 'Content-Transfer-Encoding: base64';
    $body[] = 'Content-Disposition: attachment; filename="' . $_FILES['file']['name'] . '"';
    $body[] = '';
    $body[] = $encoded;
    $body[] = '--' . $boundry . '--';
}

mail($to, $subject, join("\n",$body),join("\n",$header));
?>

Har ikke lige testet det, men hvis der er nogen problemer må du lige sige til.
Avatar billede ette Nybegynder
08. maj 2004 - 10:11 #16
Rednex, det virker ikke, der er slet ingenting der bliver vedhæftet, den er helt tom :-(
Avatar billede ette Nybegynder
08. maj 2004 - 10:13 #17
Ja, den er ikke helt tom, den skriver stien til billedet : file: C:\Documents and Settings\dvdesign\Dokumenter\Billeder\images004.jpg men ingen billede
Avatar billede rednex Nybegynder
08. maj 2004 - 11:03 #18
Prøv at fjerne:
$body[] = 'Content-Disposition: attachment; filename="' . $_FILES['file']['name'] . '"';
Avatar billede rednex Nybegynder
08. maj 2004 - 11:06 #19
Du kan også prøve at ændre den til:
$body[] = 'Content-Disposition: attachment; filename="' . basename($_FILES['file']['name']) . '"';
Avatar billede ette Nybegynder
08. maj 2004 - 11:08 #20
det er det samme.. kan det være i min form problemet ligger?
du kan se den på http://www.galleriette.dk/kontakt.htm
Avatar billede rednex Nybegynder
08. maj 2004 - 11:12 #21
Du skal lige ændre enctype i formen til
enctype="multipart/form-data"
Avatar billede ette Nybegynder
08. maj 2004 - 11:20 #22
nu kommer clipsen frem, men filen har fået et andet navn. fra at hedde images004.jpg, kommer den til at hedde ATT00441.jpg, og jeg kan godt åbne den men kan ikke se den, den virker som om den er smadret..
Avatar billede ette Nybegynder
08. maj 2004 - 11:21 #23
men størrelsen passer vist meget godt..
Avatar billede rednex Nybegynder
08. maj 2004 - 11:43 #24
Der var lige en smutter i det script jeg postede sidst. Denne gang har jeg testet det, så det skulle meget gerne spille nu :o)

<?php
$to = 'din@email.dk';
$subject = 'Emne';

$textmail = '';

foreach($_POST as $key => $val ) {
    if( $key != 'Submit' && !empty($val) ) {
        $textmail .= "$key: $val\n";
    }
}

$encoded = '';

if( isset($_FILES['file']) && isset( $_FILES['file']['tmp_name']) ) {
    $content = file_get_contents($_FILES['file']['tmp_name']);
    $encoded = chunk_split(base64_encode($content));
}
// Lav mail
$boundary = uniqid("");

$header = array();
$header[] = 'MIME-Version: 1.0';
$header[] = "Content-Type: multipart/mixed; boundary=\"$boundary\"";
$header[] = 'Content-Transfer-Encoding: 7bit';

$body = array();
$body[] = "--$boundary";
$body[] = 'Content-Type: text/plain; charset="iso-8859-1"';
$body[] = 'Content-Transfer-Encoding: 7bit';
$body[] = '';
$body[] = $textmail;

if(! empty($encoded)) {
    $body[] = "--$boundary";
    $body[] = 'Content-Type: ' . $_FILES['file']['type'];
    $body[] = 'Content-Transfer-Encoding: base64';
    $body[] = 'Content-Disposition: attachment; filename="' . basename($_FILES['file']['name']) . '"';
    $body[] = '';
    $body[] = $encoded;
    $body[] = '--' . $boundary . '--';
}

mail($to, $subject, join("\n",$body),join("\n",$header));
?>
Avatar billede ette Nybegynder
08. maj 2004 - 11:55 #25
det virker stadigvæk ikke.. men jeg har lige fundet ud af at den giver filen et nyt navn hvergang jeg sender første gang:ATT00515.jpg Anden gang: ATT00525.jpg, o.s.v..
jeg ved ikke om det kan give et fingerpeg om hvad der er galt..
Avatar billede ette Nybegynder
08. maj 2004 - 11:57 #26
Jeg kan jo eventuelt ændre den til din mailadresse? så kan du måske bedre se hvad den gør?....
Avatar billede ette Nybegynder
08. maj 2004 - 12:14 #27
Nu må jeg altså lige ud at handle, håber at høre fra dig :-)
Avatar billede ette Nybegynder
08. maj 2004 - 14:17 #28
Hej Rednex, nu virker det sgu´´ , jeg havde placeret din sidste kode forkert, men så den tog den gamle. YES! Giv mig mulighed for at give dig dine velfortjente point, det var bare prima!
Forresten, hvordan får jeg den til at åbne en anden htmlside når mailen er sendt og en tredie hvis den fejler?? jeg forhøjer gerne pointene (det er lige det sidste jeg mangler for at få min side op at køre).
Avatar billede rednex Nybegynder
08. maj 2004 - 14:27 #29
Det er skam meget nemt. Erstat linien:
  mail($to, $subject, join("\n",$body),join("\n",$header));
med:
  if(mail($to, $subject, join("\n",$body),join("\n",$header)))
  {
      header('Location: /det_gik_godt.htm');
  } else {
      header('Location: /det_gik_skidt.htm');
  }

Du skal bare sørge for at der ikke er nogen mellemrum eller linieskift udenfor dit php script (altså udenfor <%php ... %>). Ellers vil du få en fejl i stil med 'Cannot et-eller-andet. Headers already sent.'
Avatar billede rednex Nybegynder
08. maj 2004 - 14:31 #30
Det er iøvrigt en flot side du har fået sat sammen. Men det kunne godt være du skulle ændre 'Referancer' til 'Referencer' i menuen ;o)
Avatar billede ette Nybegynder
08. maj 2004 - 14:34 #31
Det har du helt ret i:-) havde opdaget det, men blot ikke rettet det endnu, og tak for din hjælp :-)
Avatar billede rednex Nybegynder
08. maj 2004 - 14:35 #32
det var så lidt :o)
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