Need help. Форма отправки E-mail с прикрепленным файлом

-Мерзкий-

Новичок
Need help. Форма отправки E-mail с прикрепленным файлом

Подскажите идею или движек может кто такой может показать, или просто ссылку где про это почитать:
Нужно чтобы форма отправки E-mail с сайта администратору позволяла прикрепить файл.
 
-Мерзкий-
Готовой функции для решения твоей задачи не существует.
 
Гравицапа
Большое СПАСИБО!Данная статья мне многое разъяснила!

P.S.
Для тех кто может, еще сталкнется с этой проблемой:
http://phpmailer.sourceforge.net/
Готовый многофункциональный движок!

-~{}~ 25.09.06 14:23:

Еще вопросик:



<?php
function XMail( $from, $to, $subj, $text, $filename) {
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";

return @mail("$to", "$subj", $zag, $head);
}
?>
-----------------------------------------
Данная функция отправляет письмо со вложенным файлом,только файл приходит пустым.
С чем это может быть связано?
 
есть. та же самая ссылка.
мне ещё тебя поуговаривать, или ты займёшься, наконец, своими проблемами?
 
только файл приходит пустым.
С чем это может быть связано?
скажи, а у тебя самого, НИКАКИХ идей на тему с чем это может быть связано? может быть, какая-то гипотеза, всё же, есть?
 
Вообще я разобрался.
Фанат
Без смеха выражаю тебе огромное спасибо, потому что нормально почитав статью которую ты дал по ссылке, я узнал кое-что новое и понял в чем проблемма. Проблемма заключалась в отсутствии знаний принципа работы передачи файла от формы в HTML к сценарию.
Оказалось что
переменную $filename нужно просто получать из формы и сразу передавать, а я то ее и так
$filename=$_FILES['filename'];
и эдак
$filename = trim($_POST['filename']);
вообщем не суть!
Спасибо за помощь и внимание. Буду дочитывать статью. Мало ли там еще и про HTML чего интерестного пишут))))

-~{}~ 25.09.06 16:00:

P.P.S
Теперь файл приходит не пустой, только название и расширение он имеет temp`овское...(phpBk7ikZ.dat)
Последний вопрос:
Может кто знает что придумать на замену
basename($filename), чтоб получать значение имени отправляемого файла?

(В качестве параметров формы установлено
method="POST" enctype="multipart/form-data")
 
придумывать ничего не надо.
нужно просто один раз пробежать глазами раздел про заливку файлов в документации, и указать нужную переменную

-~{}~ 25.09.06 16:03:

ну или хотя бы выполнить рекомендацию из ссылки, что я приводил выше
 
Вроде все делаю правильно, а файл приходит с именем kbg.dat

$real_name = $_FILES['filename']['name'];
function XMail( $from, $to, $subj, $text, $filename) {
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";

$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".$real_name."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".$real_name."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";

return @mail("$to", "$subj", $zag, $head);
}


XMail($email,"[email protected]",$out,$body,$filename);


Подскажите ошибку!?
 
В мыле получелось temp`овское имя jkgfk.dat
Щас разобрался. Долго тупил...
Переменная $real_name = $_FILES['filename']['name']; до функции стоит...
Осталось разобраться с кодировкой.
 
Сверху