Формуляр за попълване + качване на снимка

mitko11

Registered
Здравейте, търся от доста време как да направя нещо като формуляр за попълване като контактна форма обаче да има опция за качване на картинка. Не съм много на ти и затова не мога сам да си я напиша.
Също се се чудя тази форма като се попълни ако се изпрати на имейл картинката как ще се изпрати на този мейл? Надявам се да ми помогнете:)
 
PHP:
function mail_attachment ($from , $to, $subject, $message, $attachment, $mimetype, $fileatt_name){ 
 $fileatt = $attachment; // Path to the file 
 $fileatt_type = $mimetype; //"application/octet-stream"; // File Type 
 $start= strrpos($attachment, '/') == -1 ? strrpos($attachment, '//') : strrpos($attachment, '/')+1; 
 //$fileatt_name = substr($attachment, $start, strlen($attachment)); // Filename that will be used for the file as the attachment 
 $email_from = $from; // Who the email is from $subject = "New Attachment Message"; 
 $email_subject = $subject; // The Subject of the email 
 $email_txt = $message; // Message that the email has in it 
 $email_to = $to; // Who the email is to 
 $headers = "From: ".$email_from; 

 $file = fopen($fileatt,'rb'); 
 $data = fread($file,filesize($fileatt)); 
 fclose($file); 
 $msg_txt="\n\n You have recieved a new attachment message from $from"; 
 $semi_rand = md5(time()); 
 $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
 $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; 
 $email_txt .= $msg_txt; 
 $email_message = $message ."\n\n". "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/plain; charset=\"utf8\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_txt . "\n\n"; 
 $data = chunk_split(base64_encode($data)); 
 $email_message .= "--{$mime_boundary}\n" . 
 "Content-Type: {$fileatt_type};\n" . 
 " name=\"{$fileatt_name}\"\n" . 
 //"Content-Disposition: attachment;\n" . 
 //" filename=\"{$fileatt_name}\"\n" . 
 "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . 
 "--{$mime_boundary}--\n"; 
 $ok = mail($email_to, $email_subject, $email_message, $headers); 
 unlink($attachment); // delete a file after attachment sent. 
 if($ok) { 
 //echo "File Sent Successfully."; 
 } else { 
 die("Sorry but the email could not be sent. Please go back and try again!"); 
 } 
 }

след POST (формата трябва да е multipart енкрипната файла е ъплоаднат в директорията за upload

Параметрите са ясни като само
- за attachment пращаш $_FILES["nameoffieldinyourform"]["tmp_name"]
- mime_type е от вида "image/gif" и т.н. и може да го вземеш от $_FILES['nameoffieldinyourform']['type']
- за fileatt_name пращаш под какво име да е в атачмънта
 
Styl3rbg каза:
PHP:
function mail_attachment ($from , $to, $subject, $message, $attachment, $mimetype, $fileatt_name){ 
 $fileatt = $attachment; // Path to the file 
 $fileatt_type = $mimetype; //"application/octet-stream"; // File Type 
 $start= strrpos($attachment, '/') == -1 ? strrpos($attachment, '//') : strrpos($attachment, '/')+1; 
 //$fileatt_name = substr($attachment, $start, strlen($attachment)); // Filename that will be used for the file as the attachment 
 $email_from = $from; // Who the email is from $subject = "New Attachment Message"; 
 $email_subject = $subject; // The Subject of the email 
 $email_txt = $message; // Message that the email has in it 
 $email_to = $to; // Who the email is to 
 $headers = "From: ".$email_from; 

 $file = fopen($fileatt,'rb'); 
 $data = fread($file,filesize($fileatt)); 
 fclose($file); 
 $msg_txt="\n\n You have recieved a new attachment message from $from"; 
 $semi_rand = md5(time()); 
 $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
 $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary="{$mime_boundary}""; 
 $email_txt .= $msg_txt; 
 $email_message = $message ."\n\n". "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/plain; charset="utf8"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_txt . "\n\n"; 
 $data = chunk_split(base64_encode($data)); 
 $email_message .= "--{$mime_boundary}\n" . 
 "Content-Type: {$fileatt_type};\n" . 
 " name="{$fileatt_name}"\n" . 
 //"Content-Disposition: attachment;\n" . 
 //" filename="{$fileatt_name}"\n" . 
 "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . 
 "--{$mime_boundary}--\n"; 
 $ok = mail($email_to, $email_subject, $email_message, $headers); 
 unlink($attachment); // delete a file after attachment sent. 
 if($ok) { 
 //echo "File Sent Successfully."; 
 } else { 
 die("Sorry but the email could not be sent. Please go back and try again!"); 
 } 
 }

след POST (формата трябва да е multipart енкрипната файла е ъплоаднат в директорията за upload

Параметрите са ясни като само
- за attachment пращаш $_FILES["nameoffieldinyourform"]["tmp_name"]
- mime_type е от вида "image/gif" и т.н. и може да го вземеш от $_FILES['nameoffieldinyourform']['type']
- за fileatt_name пращаш под какво име да е в атачмънта

Виж, благодаря ти много за отделеното време за отговор, но наистина незнам този пхп къде да го сложа за да пропаботи. Имам малки познания но не съм много на ТИ. :idea:
 
Ами в файла които искаш.. И трябва да имаш инсталиран smtp сървър на хоста и файла да бъде с разширение .php
 
тъй като PHP ти е малко трудно, ето ти едно много добро тоолче за създаване на цонтакт форми.
http://phpfmg.sourceforge.net/

мисла е много ще ти помогне

има си всичко, качване на файлове, радио бутони, чек боксове и много други, конфигурира се елементарно. Ако имаш проблеми с англиския кажи ще ти помогна

(брандирането може да го махнеш и за 1 долар :) )
 
stonybg каза:
тъй като PHP ти е малко трудно, ето ти едно много добро тоолче за създаване на цонтакт форми.
http://phpfmg.sourceforge.net/

мисла е много ще ти помогне

има си всичко, качване на файлове, радио бутони, чек боксове и много други, конфигурира се елементарно. Ако имаш проблеми с англиския кажи ще ти помогна

(брандирането може да го махнеш и за 1 долар :) )

мхм мерси ще ми свърши работа пък и каго видях колко код стои отзад едва ли щях да се справя. +1 :)
 

Back
Горе