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

Форум PHP

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

 

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

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

тема: Как через форму с письмом отправить файл на email адрес?
 
 автор: А.Евгений   (02.02.2009 в 19:21)   письмо автору
 
 

Здравствуйте!

Подскажите пожалуйста как сделать, что бы к существующей форме и обработчику сделать прикрепление файла, что бы он с письмом отправлялся на emil, а не на сервер.

Форма:

<script language="JavaScript">
function pr(form)
{
if((form.fio1.value=="")||(form.fio2.value=="")||(form.fio3.value=="")||(form.tel.value=="")||(form.email.value=="")||(form.message.value==""))
{
alert("Вы заполнили не все поля! Заполните поля обязательные для заполнения!");
return false;
}
else
return true;
}
</script>
<script language="javascript">

function checkEmail(inputvalue){
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
if(pattern.test(inputvalue))
{
return true;
}
else
{
alert("Вы неверно заполнили поле E-mail адреса!");
return false;
}
}
</script>

<form action="send.php" method="post" name="forma" onSubmit="return pr(forma)">
<p align="center" class="gtitle">Заполните форму заявки Вашими данными:</p>
<table border="0" align="center">
<tr><td width="206" align="right" valign="top"><p class="mgtitle">Название организации,&nbsp;&nbsp;<br>предприятия:&nbsp;&nbsp;</p></td>
<td width="210" align="left" valign="top"><input name="org" type="text" size="30" maxlength="50" class="in1"><br><br></td></tr>
<tr><td align="right" valign="top"><p class="mgtitle">* Фамилия:&nbsp;&nbsp;</p></td>
<td align="left" valign="top"><input name="fio1" type="text" size="30" maxlength="30" class="in1"></td></tr>
<tr><td align="right" valign="top"><p class="mgtitle">* Имя:&nbsp;&nbsp;</p></td>
<td align="left" valign="top"><input name="fio2" type="text" size="30" maxlength="30" class="in1"></td></tr>
<tr><td align="right" valign="top"><p class="mgtitle">* Отчество:&nbsp;&nbsp;</p></td>
<td align="left" valign="top"><input name="fio3" type="text" size="30" maxlength="30" class="in1"></td></tr>
<tr><td align="right" valign="top"><p class="mgtitle">* Телефон:&nbsp;&nbsp;</p></td>
<td align="left" valign="top"><input name="tel" type="text" size="30" maxlength="30" class="in1"></td></tr>
<tr><td align="right" valign="top"><p class="mgtitle">* E-mail адрес:&nbsp;&nbsp;</p></td>
<td align="left" valign="top"><input name="email" type="text" size="30" maxlength="30" class="in1">
<br><br></td></tr>
<tr><td colspan="2" valign="top" align="left"><span class="mgtitle">&nbsp;&nbsp;&nbsp;&nbsp;* Текст заявки в произвольной форме:</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="f">Укажите вид диска, количество копий, вариант упаковки и полиграфии.</span></td></tr>
<tr>
<td align="center" valign="top" colspan="2"><textarea name="message" cols="60" rows="7" class="ta1"></textarea>
<br></td></tr>
<tr align="center" valign="top"><td colspan="2"><span class="f"><span class="mgtitle">*</span>-поля обязательные для заполнения</span><br></td></tr>
<tr align="center" valign="top"><td colspan="2"><input class="bt1" type="submit" value="Отправить заявку" onClick="return checkEmail(document.forma.email.value)"></td></tr></table>
</form>

Обработчик:

<?php
if (isset($_POST['$org'])) {$org = $_POST['$org'];}
if (isset($_POST['$fio1'])) {$fio1 = $_POST['$fio1'];}
if (isset($_POST['$fio2'])) {$fio2 = $_POST['$fio2'];}
if (isset($_POST['$fio3'])) {$fio3 = $_POST['$fio3'];}
if (isset($_POST['$tel'])) {$tel = $_POST['$tel'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}

$address = 'reka.alpha@mail.ru';
$sub = "Заявка по тиражированию дисков";
$mes = "Организация, предприятие: $org \n Фамилия: $fio1 \n Имя: $fio2 \n Отчество: $fio3 \n Телефон: $tel \n E-mail: $email \n Текст заявки: \n $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windiws-1251\r\nFrom:$email");
if ($verify == 'true')
{
include("sendyes.php");
}
else
{
include("sendno.php");
}
?>


За ранее благодарю за ответ.

  Ответить  
 
 автор: sim5   (03.02.2009 в 02:58)   письмо автору
 
   для: А.Евгений   (02.02.2009 в 19:21)
 

Во-первых сама форма у вас не сможет передать файла на сервер. Для того чтобы она могла это сделать, она должна иметь атрибут enctype="multipart/form-data". Ваш вопрос звучит примерно так - как клиенту минуя сервер отправить почту. В этом случае атрибуту action формы нужно указать адрес электронной почты, например, action="mailto:as@as.as". Но в этом случае атрибут enctype формы может принимать значание только "text/plain", а значит о передаче вложенного файла в почту и речи быть не может.
Вам нужно принимать форму и файл на сервере, и уже с него, формируя должным образом почтовое отправление, отправлять его респонденту (вместе с прикрепленным файлом). Как правильно оформлять почтовые отправления можете почитать тут. А как правильно принять файл на сервере читать в мануале.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования