отправка сообщений обратной связи
есть форма:
<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> <p><input name="to[]" type="checkbox" value="rozn" checked /> Для розничных клиентов</p> <p><input name="to[]" type="checkbox" value="opt" /> Для оптовых и корпоративных клиентов</p> <p><input name="to[]" type="checkbox" value="coop" /> Сотрудничество по проектам</p> <p><input name="to[]" type="checkbox" value="prices" /> Товары и цены</p> <p><input name="to[]" type="checkbox" value="service" /> Сервис и гарантия</p> <p><input name="to[]" type="checkbox" value="ordinary" /> Общие вопросы</p> <p><input name="to[]" type="checkbox" value="vacancy" /> Работа в компании</p> <span class="mailer">От кого:</span> <br /> <input name="from" type="text" size="50"/><br /> <span class='t2'>например, </span> <span class='t2' style='color:#3ac2db; font-weight:bold; background: url(/images/pt.jpg) repeat-x bottom;'>user@example.com </span><span class="t2"> или </span> <span class='t2' style='color:#3ac2db; font-weight:bold; background: url(/images/pt.jpg) repeat-x bottom;'> User <user@example.com></span> <br /><br /> <span class="mailer">Тема сообщения:</span> <br /> <input name="subject" type="text" size="50"/> <br /><br /> <span class="mailer">Текст сообщения:</span> <br /> <textarea name="body" cols="50" rows="10"></textarea><br /><br /> <input name="mailer" type="submit" class="mailer" value="Отправить" /> </form> и есть скрипт обработки: if (count($_POST["to"])>1) { for ($i=0; $i<count($_POST["to"]); $i++) { switch ($_POST["to"][$i]) { case "rozn": $MailTo="1@domen.ru"; $MailCC=""; break; case "opt": $MailTo="2@domen.ru"; $MailCC=""; break; case "coop": $MailTo="3@domen.ru"; $MailCC="2@dome.ru,4@domen.ru"; break; case "prices": $MailTo="5@domen.ru"; $MailCC="6@domen.ru,2@domen.ru"; break; case "service": $MailTo="7@domen.ru"; $MailCC="4@domen.ru"; break; case "ordinary": $MailTo="4@domen.ru"; $MailCC="5@domen.ru"; break; case "vacancy": $MailTo="8@domen.ru"; $MailCC="7@domen.ru,6@domen.ru,5@domen.ru,6@domen.ru"; break; } $MailSubj = htmlspecialchars($_POST["subject"]); $MailFrom = htmlspecialchars($_POST["from"]); $MailMessage = htmlspecialchars($_POST["body"]); $headers = 'From:'. $MailFrom. "\r\n"; $headers .= 'Cc:'. $MailCC; @mail($MailTo, $MailSubj, $MailMessage, $headers); } } В итоге 4@domen.ru получит 3 одинаковых письма, 5@domen.ru - 2 письма и т.д. Как избежать этого ? В phpclub просьба не отправлять. Модераторы сегодня неадекватны более чем когда либо. |
Во-первых, насколько я понимаю, вам нужно изменить первое условие на:
if (count($_POST["to"])>0) { Иначе, для розничных клиентов вообще не сработает. Цитата:
|
спасибо за беспокойство ) на том же пхп клабе один модератор успел подкинуть эту идею пока другой модератор не удалил тему ))
|
лучше пользуйся какой-нибудь готовой библиотекой, потому что через твою форму можно легко спам рассылать
кстати, зачем ты там htmlspecialchars используешь? |
Часовой пояс GMT +3, время: 12:35. |