За последние 24 часа нас посетили 17663 программиста и 1669 роботов. Сейчас ищут 1567 программистов ...

Отправка файла в обратной связи

Тема в разделе "PHP для новичков", создана пользователем Ter, 23 янв 2012.

  1. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    Здравствуйте, у меня есть обычный скрипт отправки формы на почту:
    Код (Text):
    1. if(isset($_POST['name'])) { $name=$_POST['name']; }
    2. if(isset($_POST['email'])) { $email=$_POST['email']; }
    3. if(isset($_POST['message'])) { $message=$_POST['message']; }
    4. $address="почта"; $tema="Тема"; $mes="От кого: $name n Адрес отправителя: $email n Сообщение: $message";
    5. $go=mail($address, $tema, $mes, "Content-type:text/plain; charset=windows-1251rnFrom:$email");
    Но мне нужно, чтобы еще отправляло картинку прикреплённую. Дали ссылку http://www.php.net/manual/ru/function.mail.php#105661 а я в английском и php не силён, помогите разобраться, что надо в скрипт выше добавить еще, чтобы шла отправка картинки. Она у меня под переменной image.
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
  3. jenya777777

    jenya777777 Активный пользователь

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Код (Text):
    1. $bound = "1234";
    2.     $header = "From: $from_name <$from_mail>\n";
    3.     $header.="To: $to\n";
    4.     $header.="Subject: $subject\n";
    5.     $header.="MIME-Version: 1.0\n";
    6.     $header.="Content-Type: multipart/mixed; boundary=$bound\n";
    7.     $body = "--$bound\n";
    8.     $body.="Content-type: text/html; charset=\"windows-1251\"\n";
    9.     $body.="Content-Transfer-Encoding: quoted-printable\n\n";
    10.     $body.="$message";
    11.     $file = file_get_contents($file_name);
    12.     $body.="\n\n--$bound\n";
    13.     $body.="Content-Type: application/octet-stream; ";
    14.     $body.="name=" . basename($file_name) . "\n";
    15.     $body.="Content-Transfer-Encoding:base64\n";
    16.     $body.="Content-Disposition:attachment\n\n";
    17.     $body.=base64_encode($file) . "\n";
    18.     $body.="$bound--\n\n";
    19.     mail($to, $subject, $body, $header);
     
  4. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    Попробовал сделать... у меня есть форма, где передаётся текст и картинка и скрипт обработки, проблема в $message, не пойму чему он должен быть равен $_FILES['image']['name'] или $_FILES['image']['tmp_name'], если первое - то приходит картинка 1.jpg(по названию с компа), но сама по себе это просто пустой текст с форматом jpg, если второе - то вообще ничего не приходит, даже текст. Вот сам скрипт, помогите разобраться, как я понял там нужно tmp и имя так распределить, чтобы и имя и код картинки передавались правильно. Скрипт обработки:

    Код (Text):
    1. $bound = "1234";
    2. $name=$_POST['name'];
    3. $link=$_POST['link'];
    4. $message=$_POST['message'];
    5. $image=$_FILES['image']['tmp_name'];
    6. $address="мыло";
    7. $tema="тема";
    8. $header.="MIME-Version: 1.0\n";
    9. $header.="Content-Type: multipart/mixed; boundary=$bound\n";
    10. $mes= "--$bound\n";
    11. $mes.="Content-type: text/html; charset=\"windows-1251\"\n";
    12. $mes.="Content-Transfer-Encoding: quoted-printable\n\n";
    13. $mes.="Имя файла: $name <br> Прямая ссылка на файл: $link <br> Ссылка на картинку: $image <br> Описание: $message";
    14. $file = file_get_contents($image);
    15. $mes.="\n\n--$bound\n";
    16. $mes.="Content-Type: application/octet-stream; ";
    17. $mes.="name=" . basename($image) . "\n";
    18. $mes.="Content-Transfer-Encoding:base64\n";
    19. $mes.="Content-Disposition:attachment\n\n";
    20. $mes.=base64_encode($file) . "\n";
    21. $mes.="$bound--\n\n";
    22. $go=mail($address, $tema, $mes, $header);
     
  5. jenya777777

    jenya777777 Активный пользователь

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    в $image у тебя должен быть путь до твоего файла с названием файла, например http://site.ru/upload/1.jpg