Есть сайт (на html)
На нем надо разместить форму (форма отправки заказа) форма отрбатывается через php.
Необходимо бло два вариантс прикрепляемым файлом и без.
В итоге написал, но млин не работает он и все.. уже об моник башкой бьюсь но не могу пнять в чем ошибка..
Увы в php чайнег ..все делал основываясь на примерах форума php-стов
Если есть те кто шарит в этом деле гляньте плиз...
код формы в файле html
<FORM action=/msg.php method=post encType=multipart/form-data>
<TABLE width="84%" border=0 cellpadding="2" cellspacing="0">
<TBODY>
<TR class="font">
<TD width="30%"><span class="стиль1">ФИО:</span></TD>
<TD width="70%"> <INPUT name=mass1 size="50"> </TD>
</TR>
<TR class="font">
<TD width="30%" valign="top"><span class="стиль1">Почтовый
адрес (полностью): </span></TD>
<TD width="70%"> <span class="стиль1">
<textarea name="mass2" cols="38" rows="5"></textarea>
</span></TD>
</TR>
<TR class="font">
<TD><span class="стиль1">Контактный телефон:</span></TD>
<TD><INPUT name=mass3 size="50"></TD>
</TR>
<TR class="font">
<TD><span class="стиль1">E-mail:</span></TD>
<TD><INPUT name=mass4 size="50"></TD>
</TR>
<TR class="font">
<TD><span class="стиль1">Тип изготовления :</span></TD>
<TD valign="top"> <span class="стиль1">
<select name="menu1" >
<option selected>Вязание</option>
<option>Пошив</option>
</select>
</span></TD>
</TR>
<TR class="font">
<TD><span class="стиль1"></span></TD>
<TD><span class="стиль1"><br>
Требуемое количество:<br>
<INPUT name=mass5 size="50">
</span></TD>
</TR>
<TR class="font">
<TD><span class="стиль1"></span></TD>
<TD><p class="стиль1"><br>
Опишите заказываемое изделие (<em>например: шерстяной шарф длинной 70 см, цвета - красный. зеленый и желтый </em>) <br>
<textarea name="mass6" cols="38" rows="3" id="mass6"></textarea>
</p>
<p class="стиль1"> </p></TD>
</TR>
<tr>
<td style="padding:5px;"><span class="стиль1">Файл Вашего эскиза (макета):</span></td>
<td style="padding:5px;" align="right"><p align="left" class="стиль1">Здесь Вы можете прикрепить свой персональный эскиз (макет), набросок от руки, того как должно выглядеть Ваше изделие. </p>
<p class="стиль1">
<input type="file" name="mail_file" maxlength="64" />
</p></td>
</tr>
<TR class="font">
<TD><span class="стиль1"></span></TD>
<TD><span class="стиль1"><br>
Дополнительная информация:<br>
<textarea name="mass7" cols="38" rows="3" id="mass7"></textarea>
</span></TD>
</TR>
<TR class="font">
<TD><span class="стиль1">Доставка:</span></TD>
<TD><span class="стиль1">
<select name="menu4">
<option selected>Москва - Курьерская доставка - 100 руб</option>
<option>Почтовая доставка по России - Почтой РФ</option>
<option>Почтовая доставка по России - EMS Почта</option>
<option>Почтовая доставка по России - СПСР-Экспресс</option>
</select>
</span></TD>
</TR>
<TR class="font">
<TD><span class="стиль1"></span></TD>
<TD><div align="left" class="стиль1"><br>
<br>
<input type=submit value=Отправить name=go>
</div></TD>
</TR>
<TR class="font">
<TD></TD>
<td> </td>
</TR>
</TBODY>
</TABLE>[/left]
[left] </FORM>
а вот код файла обработчика php (msg.php)
<?php
if(empty($_POST['mail_to'])) exit("Отсутствует адрес получателя");
// проверяем правильности заполнения с помощью регулярного выражения
if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде
someone@server.ru");
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm = 'Заказ - модель '. $_POST['model'];
$msg = $_POST['fio'].'<br> - '.$_POST['mailaddress'].'<br> - '.$_POST['tel'].'<br> - '.$_POST['email'].'<br> - '.$_POST['product'].'<br> - '.$_POST['amount'].'<br> - '.$_POST['model'].'<br> - '.$_POST['addinfo'].'<br> - '.$_POST['delivery'].'<br> - '.$_POST['task'];
$mail_to = $_POST['mail_to'];
// Отправляем почтовое сообщение
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 = $path; // в этой переменной надо сформировать имя файла (без всякого пути)
$EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
$boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных.
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: ***@rambler.ru"; //адрес куда идет отправка
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=windows-1251$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;
}
?>
Чего тут править чтоб эта зараза заработала