X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Отправка письма с прикрепленным файлом
cap4369
cap4369
Topic Starter сообщение 30.12.2013, 22:59; Ответить: cap4369
Сообщение #1


Здравствуйте! С наступающим Новым годом!
Возникла проблема с отправкой письма с прикрепленным файлом. Скрипт работает при условии, если не прикреплять файл. Если же файл прикрепить, происходит закачка на сервер, но отправки не происходит. Помогите разобраться с проблемой.
Вот код, в нем обработчик и форма в одном файле.
<?php
class zakaz extends ACore {

protected function obr() {
  if($_POST['save']) {

  $name = $_POST['name'];
  $mail = $_POST['mail'];
  $text = $_POST['text'];

  if(empty($name) || empty($mail) || empty($text)) {
   exit("Не заполнены поля!");
  }
//Отправкаписьма с вложением
$_POST['mail'] = htmlspecialchars(stripslashes($_POST['mail']));
$_POST['name'] = htmlspecialchars(stripslashes($_POST['name']));
$_POST['text'] = htmlspecialchars(stripslashes($_POST['text']));
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mp3']['tmp_name'])) {
// Закачиваем файл на сервер
    $path = 'media/zakaz/'.$_FILES['mp3']['name'];
    if (copy($_FILES['mp3']['tmp_name'], $path)) $picture = $path;
  }
$thm = "Заказ разрешения на сайте";

$name = $_POST['name'];
$msg = $_POST['text'];
$mail = $_POST['mail'];

$body = 'Имя клиента: '.$name.'<br/>E-mail клиента: '.$mail.'<br/>Описание: '.$msg;

$mail_to = "admin@mail.ru";

$headers = "Content-type: text/html; charset = \"utf-8\"";
  // Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $body, $headers);
else {

  if($picture){

   $fp = fopen($path,"r");
  
   if (!$fp) {
   print "Файл $path не может быть прочитан";
   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 = 'utf-8';
     $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($to, $thm, $multipart, $headers)) {
   $_SESSION['res'] = "К сожалению, письмо не отправлено";
   header("Location: ?option=zakaz");
   exit();
       }
  }
}

//Добавление заявки в базу данных
  $query = "INSERT INTO `zakaz` (`name`,`user_mail`,`description`)
      VALUES ('$name','$mail','$text')";
    
  if(!mysql_query($query)) {
   exit(mysql_error());
  }
  else {
   $_SESSION['res'] = "Ваша заявка сохранена, выберите систему оплаты";
   header("Location:?option=zakaz");
   exit;
  }

}
}

//Вывод формы
public function get_center() {
  session_start();
  $price = 20;
  $count = array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);

  echo '
<div class="middle">
<div class="container_main">
  <div class="content">
  <h1>Заказать разрешение</h1>
  <p><strong>Извините, заказ разрешения с данной страницы пока недоступен. Воспользуйтесь страницей контактов.</strong></p>
  ';
  echo '
  <script type="text/javascript">
        function calc() {
            var count = document.getElementById("count"); //получаем ссылку на элемент input (Кол-во)
            var result = document.getElementById("result"); //получаем ссылку на элемент span, в него будем писать стоимость
            var price = 20; //цена за единицу
            price = parseInt(count.value) * price;
            result.innerHTML = price;
        }
        </script>



  <div class="form_mail">
<form enctype="multipart/form-data" action="" method="POST">
  <table cellspacing="20">
   <tr>
    <td><span id="red_star">*</span> Имя:</td>
    <td><span><input type="text" name="name" maxlength="20" size="25" value="" /></span></td>
   </tr>
   <tr>
    <td><span id="red_star">*</span> Ваш Email:</td>
    <td><span><input type="text" name="mail" maxlength="20" size="25" value="" /></span></td>
   </tr>
   <tr>
    <td>
    <span id="red_star">*</span> Описание:</td>
    <td><span><textarea cols="45" rows="5" name="text"></textarea></span></td>
   </tr>
   <tr>
    <td><span id="red_star">*</span> Выберите композицию:</td>
    <td><span><input type="file" name="mp3" maxlength="20" size="25" value="" /></span></td>
   </tr>
   <tr>
    <td>Цена за единицу:</td>
    <td><div class="price"><strong>'.$price.'</strong> <span>грн</span></div></td>
   </tr>
   <tr>
    <td><span id="red_star">*</span> Количество композиций:</td>
    <td>
     <div class="count"><select type="text" name="count" onchange="calc()" id="count"></div>';
     foreach($count as $item) {
       echo ('<option value="'.$item.'"'.$item.'">'.$item.'</option>');
      }
     echo '</select>
    </td>
   </tr>
   <tr>
    <td>Сумма к оплате:</td>
    <td><div class="itog"><span id="result">0</span> грн</div></td>
   </tr>
   <tr>
    <td colspan="2"><p class="form_zakaz_submit"><input   type="submit" name="save" value="Отправить заявку"></p></td>
   </tr>';
  
   echo '<p><strong>'.$_SESSION['res'].'</strong></p>';
   unset($_SESSION['res']);
   echo
   '</table>  
</form>
</div><!-- #mailform -->
  ';

  echo '
</div><!-- .content-->
</div><!-- .container_main-->';
}
}
?>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 31.12.2013, 0:43; Ответить: isvetlichniy
Сообщение #2


вот тут пример отправки почты с вложениями
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 31.12.2013, 14:06; Ответить: cap4369
Сообщение #3


Я прочитал, отлично!, то что нужно, но есть вопросы, перейди по ссылке.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Отправка смс на телефоне через web-сайт
0 Sepembra 956 21.8.2018, 16:13
автор: Sepembra
Открытая тема (нет новых ответов) Ищу знатока MODX и контактных форм (отправка сообщений с сайта)
0 by_roXe 1844 31.5.2017, 14:35
автор: by_roXe
Открытая тема (нет новых ответов) VkNotify - отправка уведомлений ВКонтакте
9 lordonx3 12467 4.5.2015, 14:17
автор: lordonx3
Открытая тема (нет новых ответов) Требуется Отправка ссылок в индекс
2 sergeyasaylak 5209 5.2.2015, 22:34
автор: mixalius
Открытая тема (нет новых ответов) Отправка данных с формы в php и на почту
1 Beactive 3342 24.4.2014, 21:56
автор: -Beactive-


 



RSS Текстовая версия Сейчас: 19.4.2024, 17:40
Дизайн