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



 

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

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

4 страниц V   1 2 3 4 >
Открыть тему
Тема закрыта
> Форма обратной связи с прикреплением файла
shponder
shponder
Topic Starter сообщение 13.11.2008, 14:48; Ответить: shponder
Сообщение #1


Привет,понимаю конечно что многим уже такие темы надоели,но прочитав здесь схожие темы я всё равно не понял как сделать,ибо я с php не работаю практически,использую только для форма обратной связи.
Ближе к делу
Вот код формы и php скрипта,помогите сделать так чтобы можно было прикрепить файл,точнее в самой форме я это сделал,но как в скрипте это обработать я хз,помогите кто чем может.
form.html
<form name="contact-form" class="contact-form" action="mail.php" method="post">
<input type="hidden" name="antispam1" value="<?= $antispam1 * 711; ?>" id="antispam1" />
<input type="hidden" name="antispam2" value="<?= $antispam2 * 931; ?>" id="antispam2" />
<table border="0" width="99%" cellspacing="10">
<tr>
<td align="right"><label for="contact_name">Ф.И.О. или Компания*</label></td>
<td><input name="contact_name" type="text" value="" id="contact_name" style="width: 98%;" /></td>
</tr>
<tr>
<td align="right"><label for="contact_phone">Контактный телефон*</label></td>
<td><input name="contact_phone" type="text" value="" id="contact_phone" style="width: 98%;" /></td>
</tr>
<tr>
<td align="right"><label for="contact_mail">E-mail</label></td>
<td><input name="contact_mail" type="text" value="" id="contact_mail" style="width: 98%;" /></td>
</tr>
<tr>
<td align="right"><label for="contact_url">Адрес доставки</label></td>
<td><input name="contact_url" type="text" value="" id="contact_url" style="width: 98%;" /></td>
</tr>
<tr>
<td align="right"><label for="contact_subject">Тип расчёта*</label></td>
<td><select id="contact_subject" name="contact_subject" style="width: 98%;">
<option>Наличный расчёт</option>
<option>Безналичный расчёт</option>

</select></td>
</tr>
<tr>
<td align="right"><label for="file_name[]">Реквизиты компании</label></td>
<td><input name="file_name[]" type="file" value="" id="file_name[]" style="width: 98%;" /></td>
</tr>
<tr>
<td align="right" valign="top"><label for="contact_message">Сообщение:*</label></td>
<td><textarea name="contact_message" id="contact_message" style="width: 98%; height: 200px;"></textarea></td>
</tr>
<tr>
<td align="right"><label for="contact_antispam">Защита от спама: <?= $antispam1; ?>+<?= $antispam2; ?>=</label></td>
<td><input name="contact_antispam" type="text" value="" id="contact_antispam" /> Укажите свой ответ</td>
</tr>
<tr>
<td align="right">Отправить копию письма на ваш e-mail?</td>
<td><input name="subscribe" id="subscribe" value="" type="checkbox" /> Да</td>
</tr>
<tr>
<td align="right"><input name="submit" type="submit" value="отправить" id="submit" /></td>
<td><input name="clear" type="reset" value="очистить форму" id="clear" /></td>
</tr>
</table>
</form>
mail.php
[php]<?php
function valid_email($em) {
if ( eregi("^[a-z0-9._-]+@+[a-z0-9._-]+.+[a-z]{2,3}$", $em) )
return true;
else
return false;
}
$form_hide = false; //отобразить форму
if ($_POST and
isset($_POST['submit'])
and
isset($_POST['contact_name']) // имя
and
isset($_POST['contact_mail']) // обратный адрес
and
isset($_POST['contact_subject']) // тема письма
and
isset($_POST['contact_antispam']) // антиспам
and
isset($_POST['antispam1']) // антиспам
and
isset($_POST['antispam2']) // антиспам
)
{
// проверяем мыло
$ok = valid_email($_POST['contact_mail']);
if ($ok)
{ // антиспам
$antispam1s = (int) $_POST['antispam1'];
$antispam2s = (int) $_POST['antispam2'];
$antispam3s = (int) $_POST['contact_antispam'];
if ( ($antispam1s/711 + $antispam2s/931) != $antispam3s )
{ // неверный код
$ok = false;
echo '<h2>Привет роботам! </h2>';
}
}
if ($ok) // все ок, отправляем
{
$myemail = ''; // с какого адреса отправляем
$email = ''; // куда приходят письма
$subject = 'ЗАКАЗ!';
$header = 'From: ' . $myemail;
$text_email = 'Ф.И.О. или Компания: ' . $_POST['contact_name'] . "\n";
$text_email .= 'Контактный телефон: ' . $_POST['contact_phone'] . "\n";
$text_email .= 'Email: ' . $_POST['contact_mail'] . "\n";
$text_email .= 'Адрес доставки: ' . $_POST['contact_url'] . "\n";
$text_email .= 'Тип расчёта: ' . $_POST['contact_subject'] . "\n\n";
$message = $text_email .= $_POST['contact_message'];
$text_email = "Заказ с сайта: \n" . $text_email;

$form_hide = @mail($email, $subject, $text_email, $header);
if ( isset($_POST['subscribe']) and $_POST['subscribe'])
@mail($_POST['contact_mail'], $subject, $text_email, $header);
echo '<h2>Ваше сообщение отправлено!</h2><p>'
. str_replace("\n", '<br />', htmlspecialchars($subject. "\n" . $message))
. '</p>';
$form_hide = true;
}
else
{
// неверные данные
echo '<h2>Заполните поля отмеченные звёздочками<br><a href="zakaz.html">Вернуться назад</a></h2>';
}
}
if ( !$form_hide ) :
srand((double) microtime() * 1000000);
$antispam1 = rand(1, 10);
$antispam2 = rand(1, 10);
?>
<?php endif; //if ( !$form_hide ) ?>[/php]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
shponder
shponder
Topic Starter сообщение 13.11.2008, 16:49; Ответить: shponder
Сообщение #2


up((
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Nightfly_hb
Nightfly_hb
сообщение 13.11.2008, 17:27; Ответить: Nightfly_hb
Сообщение #3


[PHP]<form action="action_mail.php" method="post" enctype="multipart/form-data">
<center>Ваш E-mail:</center><input type="text" name="from"><br>
<center>Тема:</center><input type="text" name="subj"><br>
Сообщение:<br><textarea cols="50" rows="10" name="text"></textarea><br>
Файл: <input type="file" name="file"><br>
<input type="submit" name="submit" value="Отправить">
</form>[/PHP]

action_mail.php
[PHP]<?
//Функция проверки переменной
function html_filter($str) {
$result = HTMLSpecialChars($str);
return $result;}

//Функция проверки e-mail
function isEmail($email){
if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]+$", $email)){return TRUE;}else{return FALSE;}}

//Функция отправки письма с аттачем
$to = ("ВПИШИ@МЫЛО");
function XMail($from, $to, $subj, $text, $filename, $file)
{
$f = fopen($file,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($file))))."\n";
if (!@mail("$to", "$subj", $zag, $head))
return 0;
else
return 1;
}


//Получаем данные из формы
if(isset($submit)):
//Проверяем полученные из формы данные
$from = trim(html_filter($from));
$to = trim(html_filter($to));
$subj = trim(html_filter($subj));
$text = trim(html_filter($text));
$text = str_replace("\n", "<br>\n", $text);
$filename = trim(html_filter($file_name));
//Если прикреплен файл
if($filename!="" and $file_size>0):
if(XMail($from, $to, $subj, $text, $filename, $file)==1){header("Location:?send=ok");}
endif;
//Если Не прикреплен файл
if($filename=="" or $file_size==0):
if(EMail($from, $to, $subj, $text)==1){header("Location:?send=ok");}
endif;
endif;
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
shponder
shponder
Topic Starter сообщение 13.11.2008, 19:43; Ответить: shponder
Сообщение #4


Спасибо конечно,но так в принципе я тоже мог сделать,меня интересует конкретно к моему скрипту и форме,я пробывал вставить туды куски касающиеся файла,но нефига не работает,поэтому я и думал может кто просто впишет в скрипт недостающие строчки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Diablo_hb
Diablo_hb
сообщение 13.11.2008, 20:14; Ответить: Diablo_hb
Сообщение #5


это пипо я не нашол иголку в стоге сена, сне дали коробочку с иголками - но мне нужна иммена та что в сене ))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
shponder
shponder
Topic Starter сообщение 13.11.2008, 20:17; Ответить: shponder
Сообщение #6


(Diablo_hb @ 13.11.2008, 22:14) *
это пипо я не нашол иголку в стоге сена, сне дали коробочку с иголками - но мне нужна иммена та что в сене ))

Ну уж извините)))я просто напросто не работаю с php толком,поэтому не получается так быстро освоить,вот я и прошу чтобы просто добавили строчки в скрипт))ведь человек который знает думаю ему не сложно это сделать и так будет гораздо проще мне вам,нежели мне буду скидывать просто примеры,если бы я понимал я бы не писал тут,и точно также нашёл бы эти примеры))))во как
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Diablo_hb
Diablo_hb
сообщение 13.11.2008, 22:37; Ответить: Diablo_hb
Сообщение #7


ну вам дали открытый рабочий код с коментариями - лучше его используйте для получения результата - а не юзайте свой нерабочий

самое главное прикрепить файл - а количество полей для ввода инфы это уже лирика
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
shponder
shponder
Topic Starter сообщение 14.11.2008, 18:22; Ответить: shponder
Сообщение #8


мля,ещё раз извиняюсь,но от этого кода мне легче не стало,теперь в этот код надо вписать обработку полей,этого я тоже не знаю,поэтому гораздно проще было вписать в мой скрипт обработку файла,вот Вы уже зашли сюда 2 раза и отписали 2 поста,неужели нельзя была это время потратить на конкретную помощь для моего примера??сорри если звучит по хамски,просто у меня нету сейчас времени рзбираться в php,мне надо срочно это исправить и прилепить куда надо,помогите хоть кто-нить а
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Diablo_hb
Diablo_hb
сообщение 14.11.2008, 19:14; Ответить: Diablo_hb
Сообщение #9


да я могу и 3 раза зайти и написать )) - мы даем советы, а не являемся скорой помощью, было бы глупо за всех пользователей делать их работу

искать ошибки в чужом коде - и пытатьтся исправить их - когда есть рабочий аналог - ну как сказать - есче глупее
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
shponder
shponder
Topic Starter сообщение 14.11.2008, 19:25; Ответить: shponder
Сообщение #10


(Diablo_hb @ 14.11.2008, 21:14) *
да я могу и 3 раза зайти и написать )) - мы даем советы, а не являемся скорой помощью, было бы глупо за всех пользователей делать их работу

искать ошибки в чужом коде - и пытатьтся исправить их - когда есть рабочий аналог - ну как сказать - есче глупее

))спасибо за то что Вы даёте советы,но мне бесполезно давать советы,я вообще не знаю php,я его не изучал,советы дают тем людям которые хоть немного понимают,я в пхп ничего не понимаю и не стремлюсь это сделать потому что они мне не нужен,код который я выложил,абсолютно рабочий там всё работает,надо просто в пхп скрипт добавить обработку вложенного файла,так почему бы не помочь мне,темболее если Вы знаете как это сделать,а советов можно надавать кучу,я всё равно не разберусь. С Уважением
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
4 страниц V   1 2 3 4 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПринимаю заказы на копирайтинг, рерайтинг. Стабильно работаю, всегда на связи
Нужен автор текстов, копирайтер? Обращайтесь
14 KriptoFin 8092 22.9.2020, 18:07
автор: mrSana
Открытая тема (нет новых ответов) Нужен простой лендинг с формой обратной связи
10 Kuzzma 2598 11.9.2020, 21:33
автор: Kuzzma
Открытая тема (нет новых ответов) Настройка каптчи на форму обратной связи
3 woolf 2043 9.4.2019, 17:21
автор: bobur
Открытая тема (нет новых ответов) Спам через форму обратной связи на сайте
14 Evgeniy3200 8084 15.5.2017, 20:53
автор: samvel32453
Открытая тема (нет новых ответов) Требуется доработка формы заказа/обратной связи
0 Dinamitt 1803 22.2.2017, 22:02
автор: Dinamitt


 



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