Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Форма обратной связи

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Форма обратной связи с вложением
Buratinka
Отправлено: 23 Ноября, 2017 - 11:59:18
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2017  


Помог: 0 раз(а)




Есть рабочая форма обратной связи.
Но никак нему сделать вложение файла.

Чего не хватает в php-обработчике?


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. /* Задал переменные */
  4. $name = htmlspecialchars($_POST["name"]);
  5. $email = htmlspecialchars($_POST["email"]);
  6. $name1 = htmlspecialchars($_POST["name1"]);
  7. $message = htmlspecialchars($_POST["message"]);
  8. $socset = htmlspecialchars($_POST["socset"]);
  9. $uploaded_file = htmlspecialchars($_POST["uploaded_file"]);
  10.  
  11. $name = iconv ('utf-8', 'windows-1251', $name);
  12. $message = iconv ('utf-8', 'windows-1251', $message);
  13.  
  14. /* Ваш адрес и тема сообщения */
  15. $address = "moy@yandex.ru";
  16. $sub = "«с сайта»";
  17.  
  18. /* Формат письма */
  19. $mes = "«Сообщение с сайта»\n
  20. Имя отправителя: $name
  21. Электронный адрес отправителя: $email
  22. Адрес в соцсети: $name1
  23. Текст сообщения: $message
  24. Вложение: $uploaded_file";
  25.  
  26. if (empty($bezspama)) /* Оценка поля bezspama - должно быть пустым*/
  27. {
  28.     /* Отправляем сообщение, используя mail() функцию */
  29.     $from  = "From: $name <$email> \r\n Reply-To: $email \r\n";
  30.     if (mail($address, $address1, $sub, $mes, $from)) {
  31.         header('Refresh: 5; URL=http://moysayt.com');
  32.         echo 'Спасибо, Ваше Письмо отправлено, через 5 секунд вы вернетесь';}
  33.     else {
  34.         header('Refresh: 5; URL=http://moysayt.com');
  35.         echo 'Спасибо, Ваше Письмо отправлено, через 5 секунд вы вернетесь';}
  36. }
  37. exit; /* Выход без сообщения, если поле bezspama заполнено спам ботами */


Отредактировано модератором: Строитель, 23 Ноября, 2017 - 12:45:30
 
 Top
arbuzmaster
Отправлено: 23 Ноября, 2017 - 13:38:00
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Наверное этого Радость
 
 Top
Vladimir Kheifets
Отправлено: 23 Ноября, 2017 - 18:47:12
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Buratinka пишет:
Есть рабочая форма обратной связи.
Но никак нему сделать вложение файла.

Чего не хватает в php-обработчике?


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. /* Задал переменные */
  4. $name = htmlspecialchars($_POST["name"]);
  5. $email = htmlspecialchars($_POST["email"]);
  6. $name1 = htmlspecialchars($_POST["name1"]);
  7. $message = htmlspecialchars($_POST["message"]);
  8. $socset = htmlspecialchars($_POST["socset"]);
  9. $uploaded_file = htmlspecialchars($_POST["uploaded_file"]);
  10.  
  11. $name = iconv ('utf-8', 'windows-1251', $name);
  12. $message = iconv ('utf-8', 'windows-1251', $message);
  13.  
  14. /* Ваш адрес и тема сообщения */
  15. $address = "moy@yandex.ru";
  16. $sub = "«с сайта»";
  17.  
  18. /* Формат письма */
  19. $mes = "«Сообщение с сайта»\n
  20. Имя отправителя: $name
  21. Электронный адрес отправителя: $email
  22. Адрес в соцсети: $name1
  23. Текст сообщения: $message
  24. Вложение: $uploaded_file";
  25.  
  26. if (empty($bezspama)) /* Оценка поля bezspama - должно быть пустым*/
  27. {
  28.     /* Отправляем сообщение, используя mail() функцию */
  29.     $from  = "From: $name <$email> \r\n Reply-To: $email \r\n";
  30.     if (mail($address, $address1, $sub, $mes, $from)) {
  31.         header('Refresh: 5; URL=http://moysayt.com');
  32.         echo 'Спасибо, Ваше Письмо отправлено, через 5 секунд вы вернетесь';}
  33.     else {
  34.         header('Refresh: 5; URL=http://moysayt.com');
  35.         echo 'Спасибо, Ваше Письмо отправлено, через 5 секунд вы вернетесь';}
  36. }
  37. exit; /* Выход без сообщения, если поле bezspama заполнено спам ботами */

Добрый вечер!
Вы показываете скрипт, в который приходят данные из формы обратной связи.
В том числе и $uploaded_file. Если файл не закачен, то смотри совет выше.
Для отправки письма с прикреплённым файлом можете использовать мою функцию:
PHP:
скопировать код в буфер обмена
  1. function send_doc_af($e_mail_to,$e_mail_from,$subject,$msg,$file_name,$file,
  2. $kod,$HighPriority){
  3.         $F_SUBJECT = $subject;
  4.         $F_FROM = $e_mail_from;
  5.         if($kod == '' OR $kod == 'ru')
  6.         {
  7.                 $kod = 'windows-1251';
  8.         }
  9.         else if($kod == 'de' OR $kod == 'en')
  10.         {
  11.             $kod = 'iso-8859-1';
  12.         }
  13.         $boundary = "--".md5(uniqid(time())); // aaia?e?oai ?acaaeeoaeu
  14.         $headers = "From: $F_FROM\n";
  15.         $headers .= "MIME-Version: 1.0\n";
  16.         $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
  17.         ##########################################
  18.         //SET EMAIL PRIORITY
  19.         if($HighPriority)
  20.         {
  21.                 $headers .= "X-Priority: 1 (Highest)\n";
  22.                 $headers .= "X-MSMail-Priority: High\n";
  23.                 $headers .= "Importance: High\n";
  24.         }
  25.         ##########################################
  26.         $multipart = "--$boundary\n";
  27.         $multipart .= "Content-Type: text/html; charset=$kod\n";
  28.         $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
  29.         $multipart .=  $msg."\n";
  30.         if( $file AND $file_name)
  31.         {
  32.                 if(file_exists($file))
  33.                 {
  34.                         $file_content = fread(fopen($file,"r"),filesize($file));
  35.                         $file_content = chunk_split(base64_encode($file_content));
  36.                         $multipart .= "--$boundary";
  37.                         $multipart .= "\nContent-Type: ".$mime_type."; name=\"$file_name\"";
  38.                         $multipart .= "\nContent-Transfer-Encoding: base64";
  39.                         $multipart .= "\nContent-Disposition: attachment; filename=\"$file_name\"";
  40.                         $multipart .= "\n\n$file_content";
  41.                         $multipart .= "\n--$boundary--";
  42.                 }
  43.         }
  44.         return  @mail($e_mail_to, $F_SUBJECT, $multipart, $headers);   
  45. }

Удачи!

(Отредактировано автором: 24 Ноября, 2017 - 07:17:03)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB