Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка на e-mail
 
 автор: Dimka31   (22.05.2008 в 13:59)   письмо автору
 
 

Скрипт ошибок не выдает, не могу понять то ли проблемы хостинга, то ли я где то ошибся, можете потестировать у себя отправляються ли письма

Форма для отправки

   echo "<p><span style='COLOR: blue'><strong><font color='#800000'> Сделать заказ</span></p>";
  echo "<form method=post enctype='multipart/form-data'>";
  echo "<table width=100% cellpadding='3' class='text'>";
  echo "<tr valign='top'><td width='30%'>";
  echo "Контактное лицо:</td><td><input name='name' size=40> <font color='red' size='+1'>*</font><br></td></tr>";
  echo "<tr valign='top'><td>Телефон для обратной связи:</td><td><input name='phone' size=15> <font color='red' size='+1'>*</font></td></tr>";
  echo "<tr valign='top'><td>Электронный адрес:</td><td><input name='mail' size=40></td></tr>";
  echo "<tr valign='top'><td>Размер готовой картины (см):</td><td> <input name='width' size=5> Ширина<br> <input name='height' size=5> Высота</td></tr>";
  echo "<tr valign='top'><td>Обработка или коллаж (кол-во человек):</td><td><input name='collage' size=5></td></tr>";
 
  echo "<tr valign='top'><td>Прикрепить файл:</td><td><input type='file' name='file_1'><br>";
  echo "<input type='file' name='file_2'><br>";
  echo "<input type='file' name='file_3'><br>";
  echo "<input type='file' name='file_4'><br>";
  echo "<input type='file' name='file_5'></td></tr>";
  echo "<tr valign='top'><td>Дополнтельная информация:</td><td><textarea cols=35 rows=4 name='note'></textarea></td></tr></table>";
  echo "<input type='submit' value='Отправить'>";
  echo "</form>";


Файл обработчик


<?php 
  // проверяем правильности заполнения с помощью регулярного выражения 
  $picture = ""; 
  // Если поле выбора вложения не пустое - закачиваем его на сервер 
  if (!empty($_FILES['file_1']['tmp_name'])) 
  { 
    // Закачиваем файл 
    $path = $_FILES['file_1']['name']; 
    if (copy($_FILES['file_1']['tmp_name'], $path)) $picture = $path; 
  } 
  $thm = "Поступил новый заказ";
  $msg = $_POST['name']." (".$_POST['phone'].") ".$_POST['mail']." \r\n"." Ширина: ".$_POST['width']." Высота: ".$_POST['height'];
  if($_POST['collage']>0)
  {
    $msg .= "\r\n Коллаж ".$_POST['collage']." человека(-ек)";
  }
  if($_POST['note']!='')
  {
    $msg .= "\r\n ".$_POST['note'];
  }

// адрес получателя
  $mail_to = 'webjob_wd@mail.ru';


  echo "<hr>Текст сообщения ".$msg;
  echo "<br>Тема ".$thm;
  echo "<br>Кому ".$mail_to."<hr>";  

  // Отправляем почтовое сообщение 
  if(empty($picture)) mail($mail_to, $thm, $msg); 
  else send_mail($mail_to, $thm, $msg, $picture); 
  // Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
  function send_mail($mail_to, $thema, $html, $path)   
  { if ($path) {  
    $fp = fopen($path,"rb");   
    if (!$fp)   
    { print "Cannot open file";   
      exit();   
    }   
    $file = fread($fp, filesize($path));   
    fclose($fp);   
    }  
    $name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)  
    $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    $boundary     = "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.  
    $headers    = "MIME-Version: 1.0;$EOL";   
    $headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  
    $headers   .= "From: address@server.com";  
      
    $multipart  = "--$boundary$EOL";   
    $multipart .= "Content-Type: text/html; charset=windows-1253$EOL";   
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   
    $multipart .= $EOL; // раздел между заголовками и телом html-части 
    $multipart .= chunk_split(base64_encode($html));   

    $multipart .=  "$EOL--$boundary$EOL";   
    $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";   
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   
    $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";   
    $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла 
    $multipart .= chunk_split(base64_encode($file));   

    $multipart .= "$EOL--$boundary--$EOL";   
      
        if(!mail($mail_to, $thema, $multipart, $headers))   
         {return False;           //если не письмо не отправлено
      }  
    else { //// если письмо отправлено
    return True;  
    }  
  exit;  
  }
?>



Заранее спасибо

   
 
 автор: Dimka31   (22.05.2008 в 15:42)   письмо автору
 
   для: Dimka31   (22.05.2008 в 13:59)
 

что ни у кого не работает?

   
 
 автор: sim5   (22.05.2008 в 16:45)   письмо автору
11.8 Кб
 
   для: Dimka31   (22.05.2008 в 13:59)
 

mail отработает, и если на сервере все в порядке с почтой, то она будет отправлена, но... Вот это:
if(empty($picture)) mail($mail_to, $thm, $msg);
в Outlook будет выглядеть так как показано в прикреплении. Все из-за того, что так как вы отправляете, можно отправлять английский текст, но не русский. И зачем в форме пять полей file, если в скрипте обрабатывается только одно из них?

   
 
 автор: Dimka31   (23.05.2008 в 10:50)   письмо автору
 
   для: sim5   (22.05.2008 в 16:45)
 

Сначала бы сделать чтоб один файл отправлялся, потом доделать чтоб отправлялись и другие...

   
 
 автор: Trianon   (23.05.2008 в 11:31)   письмо автору
 
   для: sim5   (22.05.2008 в 16:45)
 

>Все из-за того, что так как вы отправляете, можно отправлять английский текст, но не русский

Греческий, наверное, тоже потянет :)

   
 
 автор: sim5   (23.05.2008 в 11:34)   письмо автору
 
   для: Trianon   (23.05.2008 в 11:31)
 

Не знаю, не грек, не пробоавл. ))

   
 
 автор: mechanic   (23.05.2008 в 12:01)   письмо автору
 
   для: sim5   (23.05.2008 в 11:34)
 

где наша elenaki, щас подскажет )