Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Verenica
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 17
1

Ошибка в коде формы обратной связи - письмо приходит без вложения

30.04.2015, 15:06. Просмотров 1083. Ответов 7
Метки нет (Все метки)

Здравствуйте,
помогите, пожалуйста, разобраться в коде. Есть форма обратной связи (одна строчка для указания e-mail +вложение). Данные с формы посылаются на адрес example@example.ru. Письмо на этот адрес доходит, но без вложения. Сайт на Joomla 3.3.1. В чем причина?

HTML-код

HTML5
1
2
3
4
5
6
<div id="treasure-id"><form id="treasure-form" action="/templates/papka1/papka2/sendmail.php" enctype="multipart/form-data" method="post" name="treasure "><br />
<br /> <label><b>Укажите Ваш E-mail:</b></label> <input id="mail" name="mail" type="text" />
<input name="filename" type="file" /><!-- onclick="check_treasure_form();--->
<button id="button_send_mail" style="cursor: pointer;"> Отправить форму </button>
</form></div>
<div id="result-treasure"> </div>

Содержимое sendmail.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
/*
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
*/
 
// Если поле выбора вложения не пустое - закачиваем его на сервер 
if (!empty($_FILES['filename']['tmp_name'])) 
{ 
    // Закачиваем файл 
    $path = $_FILES['filename']['name']; 
    if (copy($_FILES['filename']['tmp_name'], $path)) $picture = $path; 
}
 
$mail=$_POST['mail'];
$message1='Новое письмо с сайта www.krevedko.ru от '.$mail.'!';
$message2='Во вложении для Вас файл с сайта www.krevedko.ru от '.$mail;
 
// Отправляем почтовое сообщение 
if(empty($picture))
{
    mail('example@example.ru','Новое письмо с сайта www.krevedko.ru!',$message1);
    }
else
{
    send_mail('example@example.ru','Новое письмо с сайта www.krevedko.ru!',$message2, $picture);
    }
 
// Вспомогательная функция для отправки почтового сообщения с вложением 
function send_mail($mail_to, $thm, $html, $path) 
{ 
    $fp = fopen($path,"r"); 
    if (!$fp) 
    { 
      echo "<script>alert('Файл не может быть прочитан!');</script>"; 
      exit(); 
    }
    
    $file = fread($fp, filesize($path)); 
    fclose($fp); 
    $boundary = "--".md5(uniqid(time())); // генерируем разделитель 
    $headers .= "MIME-Version: 1.0\n"; 
    $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; 
    $multipart .= "--$boundary\n"; 
    $kod = 'windows-1251'; 
    $multipart .= "Content-Type: text/html; charset=$kod\n"; 
    $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"; 
    $multipart .= "$html\n\n"; 
    $message_part = "--$boundary\n"; 
    $message_part .= "Content-Type: application/octet-stream\n"; 
    $message_part .= "Content-Transfer-Encoding: base64\n"; 
    $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; 
    $message_part .= chunk_split(base64_encode($file))."\n"; 
    $multipart .= $message_part."--$boundary--\n"; 
 
     if(mail($mail_to, $thm, $multipart, $headers)) 
    { 
      echo "<script>alert('Ваши данные успешно отправлены.');</script>"; 
      exit(); 
    }
}
Заранее благодарю.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2015, 15:06
Ответы с готовыми решениями:

Приходит письмо с обратной связи, без данных ввода пользователя
ДОбрый день! На сайте есть обратная форма, для отправки на емейл, она сделана на пхп, при...

Почему не приходит письмо на почту из формы обратной связи на сайте?
Здравствуйте! Прошу объяснить мне почему не работает данный код &lt;?php if (session_id()=='')...

Форма обратной связи, приходит пустое письмо
Добрый день, посмотрите пожалуйста, у меня приходит пустое сообщение на почту, а во втором приходит...

Outlook 2013: После отправки письма с вложением любому человеку, письмо приходит без вложения... Почему?
Всем привет! Столкнулся с такой проблемой У пользователя 2013 оутлук, он пересылает письмо с...

7
sash
74 / 75 / 46
Регистрация: 09.10.2014
Сообщений: 512
30.04.2015, 17:50 2
Если на джумла, то бог его знает, с чужими движками не работаю
0
selishev
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 26
30.04.2015, 23:35 3
я один попробовал перейти на krevedko.ru?
0
Verenica
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 17
01.05.2015, 12:03  [ТС] 4
Слушайте, друзья, у вас такие ответы содержательные.)) А можно все-таки по теме? Очень надо, правда!
0
Июнь
Заблокирован
01.05.2015, 14:34 5
По стандарту нужно использовать "\r\n". Может, дело в этом.

Добавлено через 28 минут
Попробуйте в "filename = " с обеих сторон от "=" убрать пробелы.
0
Verenica
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 17
05.05.2015, 10:05  [ТС] 6
Пробовала, теперь письма вообще не отправляются.
0
Июнь
Заблокирован
05.05.2015, 15:36 7
Значит, "\r" автоматически добавляется. Попробуйте тогда в chunk_split() использовать ваш разделитель "\n".
1
Verenica
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 17
05.05.2015, 15:52  [ТС] 8
Получилось, тестовое письмо дошло. Наконец-то, ураа!
0
05.05.2015, 15:52
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2015, 15:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Приходит два письма с формы обратной связи
Сайт одностраничник хотела переделать формы потому-что приходит куча одинаковых писем. переделала с...

Ошибка в коде во время вложения файла в письмо Оutlook через макрос
Есть несколько UserForm, делаю отправку файла через почту outlook с вложением файла, указываю путь...

С формы обратной связи с капчей постоянно приходит сообщение об ошибке при верных и неверных введенных данных
Здравствуйте! Есть форма обратной связи, где имеется математическая капча...

Где ошибка в коде обратной связи
У обратной связи не было .PHP файла. Я его сам сделал, и да, он работает. Но, как видно по JS после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.