[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма обратной связи
Страницы: 1, 2, 3
asstral
Цитата
и чтобы увидеть $_FILES у форм должен быть enctype= multipart/form-data

Обязательно.
<form enctype="multipart/form-data" class="vertical total_form"  method="post" action="send.php">
kitov
bp файла send не делаю никакого секрета. не могу найти как прикрепить файл, поэтому выкладываю ниже код

<?

// Mailer
require("mailer/phpmailer.inc.php");



$table = "<table border='1' cellpadding='6' cellspacing='0'>";

foreach($_REQUEST["data"] as $key => $data) {
if(strlen($key) > 2) {
$table .= "<tr><th colspan='2' align='left'>".$key."&nbsp;</th></tr>";
foreach($data as $f => $v) {
if(strlen($f) > 0) {

if(strlen($f) <= 2) {
$f = "Опция";
}

if(trim($v) == "") {
continue;
}

$table .= "<tr><td>".$f."&nbsp;</td><td>".$v."&nbsp;</td></tr>";
}
}
}
}

$table .= "</table>";




$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();

header("Location: ./?ok");


?>
Игорь_Vasinsky
посмотрите примеры по работе с классом phpmailer
у вас в коде даже намёка нету на прикрепление файлов

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kitov
Игорь, в phpmailer есть аттачи

/////////////////////////////////////////////////
// ATTACHMENT METHODS
/////////////////////////////////////////////////

// Check if attachment is valid and add to list
function AddAttachment($path) {
if(!is_file($path))
$this->error_handler(sprintf("Could not find %s file on filesystem", $path));

// Separate file name from full path
$separator = "/";
$len = strlen($path);

// Set $separator to win32 style
if(!ereg($separator, $path))
$separator = "\\";

// Get the filename from the path
$pos = strrpos($path, $separator) + 1;
$filename = substr($path, $pos, $len);

// Set message boundary
$this->boundary = "_b" . md5(uniqid(time()));

// Append to $attachment array
$cur = count($this->attachment);
$this->attachment[$cur][0] = $path;
$this->attachment[$cur][1] = $filename;
}

// Attach text and binary attachments to body
function attach_all() {
// Return text of body
$mime = array();
$mime[] = sprintf("--Boundary-=%s\n", $this->boundary);
$mime[] = sprintf("Content-Type: %s; %s\n", $this->ContentType, "charset = \"utf-8\"");
$mime[] = "Content-Transfer-Encoding: 8bit\n";
$mime[] = sprintf("%s\n\n", $this->Body);

// Add all attachments
for($x = 0; $x < count($this->attachment); $x++)
{
$path = $this->attachment[$x][0];
$filename = $this->attachment[$x][1];
$mime[] = sprintf("--Boundary-=%s\n", $this->boundary);
$mime[] = "Content-Type: application/octet-stream; name=".$filename."\n";
$mime[] = sprintf("name=\"%s\"\n", $filename);
$mime[] = "Content-Transfer-Encoding: base64\n";
$mime[] = sprintf("Content-Disposition: attachment; filename=\"%s\"\n\n", $filename);
$mime[] = sprintf("%s\n\n", $this->encode_file($path));
}
$mime[] = sprintf("\n--Boundary-=%s--\n", $this->boundary);

return(join("", $mime));
}

// Encode attachment in base64 format
function encode_file ($path) {
if(!$fd = fopen($path, "r"))
$this->error_handler("File Error: Could not open file %s", $path);
$file = fread($fd, filesize($path));

// chunk_split is found in PHP >= 3.0.6
$encoded = chunk_split(base64_encode($file));
fclose($fd);

return($encoded);
}
Игорь_Vasinsky
Цитата
Игорь, в phpmailer есть аттачи

я и не спорил)


где они у тебя?

$mail = new phpmailer(); 
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();

header("Location: ./?ok");


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kitov
кто "они"?)))
Игорь_Vasinsky
Цитата
не могу найти как прикрепить файл


Цитата
то "они"?)))


попытки прикрепить файлы

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kitov
вот попытка

$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();

if($_FILES['file']['error'] === 0)
{
$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$mail -> attacheFile($_FILES['file']['tmp_name'], $_FILES['file']['name']);
}

header("Location: ./?ok");
Игорь_Vasinsky
а как это реализовано в примере выше видишь?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
asstral
Предлагаю метод с указанием ссылок на скачивания файлов.
Возможно получиться:
Создаем папку "files" в главной директории. Путь получится такой - http://marine.cargobroker.ru/files/
В форму, где находятся поля для заполнения,заменяем строку:
<form class="vertical total_form"  method="post" action="send.php"> 

на

<form enctype="multipart/form-data" class="vertical total_form" method="post" action="send.php">
Выберете 1-н или несколько файлов<br />
<input
type="file" min="1" max="50" name="file[]" multiple="true" size="100" style="cursor: pointer" />


Ну и дополняем файл send.php:


<?

// Пробуем сохранить файлы:
$ms='';
$exit=true;
$i=0;
while ($exit){
if(!empty($_FILES['file']['tmp_name'][$i])) {
$tmp_name = $_FILES['file']['tmp_name'][$i];
move_uploaded_file($tmp_name, '/files/'); // не забудьте создать папку files
$ms.='Файл номер '.$i.'. <a href="http://marine.cargobroker.ru/files/'.$tmp_name.'">Ссылка</a>';
} else {exit=false;}
$i++;
}


// Mailer
require("mailer/phpmailer.inc.php");



$table = "<table border='1' cellpadding='6' cellspacing='0'>";

foreach($_REQUEST["data"] as $key => $data) {
if(strlen($key) > 2) {
$table .= "<tr><th colspan='2' align='left'>".$key." </th></tr>";
foreach($data as $f => $v) {
if(strlen($f) > 0) {

if(strlen($f) <= 2) {
$f = "Опция";
}

if(trim($v) == "") {
continue;
}

$table .= "<tr><td>".$f." </td><td>".$v." </td></tr>";
}
}
}
}


$table .= "</table>";

$table.='Ссылки на файлы:<br />'.$ms;


$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();

header("Location: ./?ok");


?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.