n0lik 75 Опубликовано: 15 ноября 2010 Рассказать Опубликовано: 15 ноября 2010 (изменено) Всем привет. Есть у меня форма обратной связи на ПХП <? error_reporting(0); function show_form() { ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl01.gif" width="20" height="30" alt="" /></td> <td align="left" valign="top" class="abl02"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="abl121"> <tr> <td width="40" height="30"><img src="{THEME}/images/spacer.gif" width="40" height="1" alt="" /></td> <td align="left" class="ntitle">Обратная связь</td> </tr> </table></td> <td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl13.gif" width="20" height="30" alt="" /></td> </tr> <tr> <td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl51.gif" width="20" height="30" alt="" /></td> <td align="left" valign="top" class="abl22"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="30" class="abl221"> </td> </tr> </table></td> <td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl53.gif" width="20" height="30" alt="" /></td> </tr> <tr> <td width="20" align="left" valign="top" class="abl31"><img src="{THEME}/images/spacer.gif" width="20" height="1" alt="" /></td> <td align="left" valign="top" class="stext"> <form action="" method=post> <table width="98%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="130" height="25">Ваше имя:</td> <td><input class="f_input" type="text" name="input_name[0]" size="45" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>"><input type="hidden" name="check[]" value="1"></td> </tr> <tr> <td width="130" height="25">E-Mail:</td> <td><input class="f_input" type="text" name="input_name[1]" size="45" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>"><input type="hidden" name="check[]" value="1"></td> </tr> <tr> <td width="130" height="25">Телефон:</td> <td><input class="f_input" type="text" name="input_name[2]" size="45" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][2])), 0, 500);?>"><input type="hidden" name="check[]" value="1"></td> </tr> <tr> <td width="130">Сообщение:</td> <td><textarea class="f_textarea" style="width:420px; height:160px" rows="" cols="" name="input_name[3]" ><?=substr(htmlspecialchars(trim($_POST['input_name'][3])), 0, 10000);?></textarea><input type="hidden" name="check[]" value="1"></td> </tr> <tr> <td width="130" height="25"> </td> <td><input type="submit" value="Отправить" name="submit"></td> </tr> <tr> <td width="130" height="25"> </td> <td><b style="color:red;">* Помечены поля, которые необходимо заполнить!</b></td> </tr> </table> </form> </td> <td width="20" align="right" valign="top" class="abl33"><img src="{THEME}/images/spacer.gif" width="20" height="1" alt="" /></td> </tr> <tr> <td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl31.gif" width="20" height="5" alt="" /></td> <td><img src="{THEME}/images/spacer.gif" width="1" height="5" alt="" /></td> <td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl33.gif" width="20" height="5" alt="" /></td> </tr> <tr> <td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl41.gif" width="20" height="40" alt="" /></td> <td class="abl42"> </td> <td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl43.gif" width="20" height="40" alt="" /></td> </tr> </table> <br /> <br /> <? } function complete_mail() { $empty_input[] = 'Имя'; $empty_input[] = 'E-mail'; $empty_input[] = 'Телефон'; $empty_input[] = 'Сообщение'; for ($i=0; $i<count($_POST['input_name']); $i++) { $_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000); if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) { if(empty($_POST['input_name'][$i])) { $sendemail = 'No'; echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>'; } } } if($sendemail == 'No') show_form(); $mess = ''; $mess .= '<b>Имя: </b>'.$_POST['input_name'][0].'<br />'; $mess .= '<b>E-mail: </b>'.$_POST['input_name'][1].'<br />'; $mess .= '<b>Телефон: </b>'.$_POST['input_name'][2].'<br />'; $mess .= '<b>Сообщение: </b>'.$_POST['input_name'][3].'<br />'; // подключаем файл класса для отправки почты require 'class.phpmailer.php'; $mail = new PHPMailer(); $mail->From = 'mail@mail.ru'; // от кого email $mail->FromName = 'Пользователь сайта'; // от кого имя $mail->AddAddress('mail@mail.ru', 'Вася'); // кому - адрес, Имя $mail->IsHTML(true); // выставляем формат письма HTML $mail->Subject = 'Письмо с сайта'; // тема письма $mail->Body = $mess; if($sendemail != 'No'){ // отправляем наше письмо if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo); echo 'Спасибо! Ваше письмо отправлено.'; } } if (!empty($_POST['submit'])) complete_mail(); else show_form(); ?> Эта форма работает как положено. А как мне сделать что бы когда приходит письмо ко мне из этой формы, то в поле кто отправил и имя того кто отправил были не те что я вбил в фому (// от кого email, // от кого имя), а те что вбивает пользователь? И ещё один момент, если кнопка отправить у меня в коде выглядит так:<input type="submit" value="Отправить" name="submit"> то всё отправляется, а вот если я делаю графическую кнопку вот так:<input name="submit" type="image" style="width:80px; height:20px; cursor:hand" src="{THEME}/images/dlet_bttn_submit.gif" alt="submit" />то не отправляет, что я не так делаю? Изменено 15 ноября 2010 пользователем n0lik Цитата Ссылка на сообщение Поделиться на других сайтах
inokentik 45 Опубликовано: 15 ноября 2010 Рассказать Опубликовано: 15 ноября 2010 Только сегодня поставил такой модуль))) Все работает... http://www.web-sdelka.ru/index.php?do=form&id=1 Но как ты советовал мне в соседнем поиске, могу только посоветовая воспользоваться поиском и желанием Цитата Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 15 ноября 2010 Рассказать Опубликовано: 15 ноября 2010 (изменено) Автор Только сегодня поставил такой модуль))) Все работает... http://www.web-sdelk...hp?do=form&id=1 Какой модуль? У меня просто форма обратной связи на ПХП и не более того. Но как ты советовал мне в соседнем поиске, могу только посоветовая воспользоваться поиском и желанием Зачем мне модуль? Мне нужен совет непосредственно по этой форме связи. Изменено 15 ноября 2010 пользователем n0lik Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 17 ноября 2010 Рассказать Опубликовано: 17 ноября 2010 Видимо, в этом причина: value="Отправить" сабмит не должен быть пустым из условия: if (!empty($_POST['submit'])) complete_mail(); else show_form(); Цитата Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 18 ноября 2010 Рассказать Опубликовано: 18 ноября 2010 Автор zgr, спасибо большое. Не подскажите, а как быть вот с этим? А как мне сделать что бы когда приходит письмо ко мне из этой формы, то в поле кто отправил и имя того кто отправил были не те что я вбил в фому (// от кого email, // от кого имя), а те что вбивает пользователь? Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 19 ноября 2010 Рассказать Опубликовано: 19 ноября 2010 (изменено) Это делается примерно так: if ($is_logged==1) $login = true; else $login = false; или аналогично, т.е. делаем проверку на того, кто залогинен, либо на логин и конкретную группу пользователей, которым разрешено отправлять сообщение на почту. if ($is_logged==1 && $user_group[$member_id['user_group']]['allow_admin']) $login = true; else $login = false; Далее вытаскиваем нужные данные юзера (ник, имя, айди, фото и т.д.), вот весь список массива: if ($login) $nik = $member_id['name']; else $nik = 'unknow'; Остальные по аналогии, думаю, догадаетесь Чтобы наши переменные заработали в вашей функции, их нужно объявить: function show_form() { global $is_logged, $user_group; if ($is_logged==1) $login = true; else $login = false; if ($login) $nik = ''; else $nik = 'unknow'; ... Теперь подставьте полученные переменные (например, $nik) вместо тех, что сейчас в форме. Вот и всё. П.С. Если грамотно делать, чтоб не спамили, не взламывали и т.д., то нужно проверять очень большой список данных: ЮзерАгент, айпи, отмечать кто и когда и что отправляет, какие сообщения и т.д. - это может занять пару недель работы и километр кода. Думаю, далее разберетесь сами, уже есть от чего отталкиваться. //Не зарегистрированый юзер $member_id = Array([user_group] => 5) //Зарегистрированый юзер $member_id = Array ( => zgr@bk.ru [password] => 95e1cd33d [name] => Администратор [user_id] => 1 [news_num] => 91 [comm_num] => 5 [user_group] => 1 [lastdate] => 1278685014 [reg_date] => 1271399014 [banned] => [allow_mail] => 1 [info] => Простой христианско-советский рабочий парень. [signature] => Хорошо, когда собака друг, плохо, когда друг - собака. [foto] => foto_1.png [fullname] => Зайва Игорь Леонидович [land] => Казахсттан, Алматы [icq] => 463768885 [favorites] => [pm_all] => 0 [pm_unread] => 0 [time_limit] => [xfields] => [allowed_ip] => [hash] => [logged_ip] => 0.0.0.0 [restricted] => 0 [restricted_days] => 0 [restricted_date] => ) $user_group = Array( [1] => Array( [id] => 1 [group_name] => Администраторы [allow_cats] => all [allow_adds] => 1 [cat_add] => all [allow_admin] => 1 [allow_addc] => 1 [allow_editc] => 1 [allow_delc] => 1 [edit_allc] => 1 [del_allc] => 1 [moderation] => 1 [allow_all_edit] => 1 [allow_edit] => 1 [allow_pm] => 1 [max_pm] => 50 [max_foto] => 101 [allow_files] => 1 [allow_hide] => 1 [allow_short] => 1 [time_limit] => 0 [rid] => 1 [allow_fixed] => 1 [allow_feed] => 1 [allow_search] => 1 [allow_poll] => 1 [allow_main] => 1 [captcha] => 0 [icon] => /templates/isle/images/icon_1.png [allow_modc] => 0 [allow_rating] => 1 [allow_offline] => 1 [allow_image_upload] => 1 [allow_file_upload] => 1 [allow_signature] => 1 [allow_url] => 1 [news_sec_code] => 0 [allow_image] => 1 [max_signature] => 500 [max_info] => 1000 [admin_addnews] => 1 [admin_editnews] => 1 [admin_comments] => 1 [admin_categories] => 1 [admin_editusers] => 1 [admin_wordfilter] => 1 [admin_xfields] => 1 [admin_userfields] => 1 [admin_static] => 1 [admin_editvote] => 1 [admin_newsletter] => 1 [admin_blockip] => 1 [admin_banners] => 1 [admin_rss] => 1 [admin_iptools] => 1 [admin_rssinform] => 1 [admin_googlemap] => 1 [allow_html] => 1 [group_prefix] => [group_suffix] => [allow_subscribe] => 1 [allow_image_size] => 1 [cat_allow_addnews] => all ) [2] => Array(...) ... [5] => Array(...) Делаем проверку, чтобы вытащить, например, ник для отправки в форме: Изменено 19 ноября 2010 пользователем zgr Цитата Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 19 ноября 2010 Рассказать Опубликовано: 19 ноября 2010 (изменено) Автор zgr, вы меня не так поняли, у меня форма ни как не связанна с DLE, это обычная форма на PHP и когда мне приходит письмо с этой формы, то данные от кого оно пришло берутся вот эти $mail->From = 'mail@mail.ru'; // от кого email $mail->FromName = 'Пользователь сайта'; // от кого имя то есть те которые я вбил в php код, а мне надо, что бы вместо мыла и имени которые прописаны в форме было имя и мыло того, кто отправляет мне письмо, то есть вот эти $mess .= '<b>Имя: </b>'.$_POST['input_name'][0].'<br />'; $mess .= '<b>E-mail: </b>'.$_POST['input_name'][1].'<br />'; Изменено 19 ноября 2010 пользователем n0lik Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 19 ноября 2010 Рассказать Опубликовано: 19 ноября 2010 (изменено) А, вот чего. Для начала распечатайте массивы передачи - ПОСТы, посмотрите, что в них, включите на сайте и опишите ошибки, на глазок - всё рабочее, проблем не вижу, хотя код очень кривой и сырой. Если посты проходят, то обратитесь к разработчику, тратить день на изучение всей этой кривой мути нет времени, по мелочам подскажу. П.С. Спросите inokentik, как он сделал у себя. Изменено 19 ноября 2010 пользователем zgr Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.