Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Форма обратной связи
Форумы портала PHP.SU » PHP » Программирование на PHP » Форма обратной связи

Страниц (1): [1]
 

1. Oleg999 - 14 Августа, 2009 - 09:28:10 - перейти к сообщению
Посоветуйте как лучше разработать форму обратной связи с защитой от спама...
2. nulpatrol - 14 Августа, 2009 - 10:22:40 - перейти к сообщению
Для защиты от автоматически распространяемого спама можно использовать готовый скрипт kcaptcha
3. Oleg999 - 14 Августа, 2009 - 10:27:06 - перейти к сообщению
Он мне не подходить, у меня должно быть поле select с каким-то значениями при выборе определенного значения майл должен уходить по разным адресам, т.е
Цены майл уходит на sales@...ru
Вакансии на tk@..ru

в таком виде и должна быть защита от спама как реализовать посоветуйте...
4. Мелкий - 14 Августа, 2009 - 10:49:30 - перейти к сообщению
А какие ещё поля должны быть?

Интересный вариант я читал для защиты от роботов:
изменить названия элементов формы и затем проверять её. Например - поле для email назвать name - тогда робот вставит туда имя и будет отфильтрован как некорректный адрес почты. Правда не знаю, на сколько это эффективно...
5. Oleg999 - 14 Августа, 2009 - 10:56:53 - перейти к сообщению
Я сейчас подготовлю бланк формы...
6. Viper - 14 Августа, 2009 - 11:28:45 - перейти к сообщению
Oleg999 пишет:
в таком виде и должна быть защита от спама

уж извините, но это не защита, а страдание ручками...

любой спам-бот эту "защиту" обходит. в результате у вас спама будут горы.
7. Oleg999 - 14 Августа, 2009 - 11:32:16 - перейти к сообщению
А как быть???
8. Roler - 14 Августа, 2009 - 11:43:05 - перейти к сообщению
Приделать сложную капчу, к примеру.
9. Oleg999 - 14 Августа, 2009 - 11:44:23 - перейти к сообщению
Я планирую этим и заняться сейчас но мне нужна будет помощь немного...
(Добавление)
Это моя основная форма, при выборе определенной категории необходимо отправлять письмо, на адреса admin@...ru и any@..ru
и так по каждой категории на адрес admin и какой-нибудь еще... Как это реализовать


<html>
<head>
<title>Бланк</title>
</head>
<body>
<h4><u>Пожалуйста заполните поля формы:</u></h4>
<form action="reply.php" method="post">
<table border="1">
<tr>
<td>Имя:</td>
<td><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td>Тема:</td>

<td><input type="text" name="theme" size="20"></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input type="text" name="email" size="20"></td>
</tr>
<tr>
<td>Категория:
</td>
<td>
<select size="1" name="select">
<option value="1">Тарифы</option>
<option value="2">Заказы</option>
<option value="3">Предложения</option>

</select>
</td>
</tr>
<tr>
<td>Текст:</td>
<td> <textarea name="text" rows="5" cols="50"> Наберите здесь сообщение</textarea></td>
</tr>
<tr>
<td>Картинка:</td>
<td><input type="text" name="pic" size="5O"></td>
</table>
<br>
<input type="submit" value="Отправить">

</body>
</html>
(Добавление)
<html>
<head><title>Ответ сервера</title>
</head>
<body>
<?php
echo '<br>Ваше имя:'.$_POST['name'];
echo '<br>Ваша тема:'.$_POST['theme'];
echo '<br>Ваш e-mail:'.$_POST['email'];
if ($_POST['select']==1)
{
$message="<html><body>";
$message="<p>Имя:";
$message=$_POST['name'];
$message="<p>Тема:";
$message=$_POST['theme'];
$message="<p>Текст:";
$message=$_POST['text'];
$header="\n Content-Type: text/html";
if(mail("Kalashnikov.o@str.ru", "Mail", $massage, $header))

echo "OK";
}

?>
</body>
</html>
У меня проблема с формирование тело сообщения не выводиться помогите плиз...


ошибка: Undefined variable: massage in /usr/local/www/data-dist/blank/r eply.php on line 19
Письмо приходить пустое с надписью \n Content-Type: text/html как это побороть...
10. Мелкий - 14 Августа, 2009 - 15:14:42 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head><title>Ответ сервера</title>
  3. </head>
  4. <body>
  5. <?PHP
  6. echo '<br>Ваше имя:'.$_POST['name'];
  7. echo '<br>Ваша тема:'.$_POST['theme'];
  8. echo '<br>Ваш e-mail:'.$_POST['email'];
  9. if ($_POST['select']==1)
  10. {
  11. $message = "<html><body>";
  12. $message .= "<p>Имя:";
  13. $message .= $_POST['name'];
  14. $message .= "<p>Тема:";
  15. $message .= $_POST['theme'];
  16. $message .= "<p>Текст:";
  17. $message .= $_POST['text'];
  18. $header="\n Content-Type: text/html";
  19. if(mail("Kalashnikov.o@str.ru", "Mail", $message, $header))
  20. {
  21. echo "OK";
  22. }
  23.  
  24. ?>
  25. </body>
  26. </html>


Исправлено:
12-17 строки: '$message =' заменены на '$message .='
19 строка - $massage -> $message, о чём вам php весьма настойчиво говорит
20 строка - пропущена {
и скорей всего в header'e "\n" - лишнее

PS: и выделяйте код тегом PHP
11. JustUserR - 14 Августа, 2009 - 15:42:30 - перейти к сообщению
Честно сказать мне кажется лучше делать немного подругому чтобы не было спама
Например пользователь заполняет форму а это сообщение сохраняется в базе а потом этому пользователю приходит письмо с подтверждением своего письма
Чем хорошо? Вопервых не будет спама Вовторых гарантированное верный email-адрес клиента Улыбка

 

Powered by ExBB FM 1.0 RC1