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



 

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

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

Открыть тему
Тема закрыта
> Форма обратной связи
Aleksey1989
Aleksey1989
Topic Starter сообщение 3.3.2010, 20:25; Ответить: Aleksey1989
Сообщение #1


Я никак не могу найти в интернете работоспособную форму обратной связи на PHP. Во всём, что нашёл, исправил адресс эл. почты, куда должны отправляться данные, но доставка так и не происходит. Тестировал скрипты с помощью бесплатного хостинга Hut.ru. Может быть проблемы в хостинге? Для примера вот скрипт, который должен отправлять данные:
[PHP]<?

$myemail="Aleksey1989@mail.ru"; // Ваш электронный адрес
$refreshpage="sendmail.php"; // Страница, куда возвращается человек после отправки сообщения
$antispam="1"; // 1/0 - вкл/выкл АНТИСПАМ
$maxkey=3; // Колличество символов в коде ЦИФРОЗАЩИТЫ (от 1 до 9)
$maxname="30"; // Максимальное кол-во символов в имени
$maxtema="50"; // максимум символов в теме
$maxmsg="2000"; // Максимальное количество символов в сообщении

// Далее настраивается цвет таблицы и текста: цвет таблицы и цвет текста в заголовке таблицы
// Для Выбора схемы - раскоментируйте её и закоментируйте текущую символами //
//$bdcolor="#79BBEF"; $fcolor="#00293E"; // Светлоголубой
//$bdcolor="#FF9A00"; $fcolor="#833C07"; // Оранжевый
//$bdcolor="#FFE51A"; $fcolor="#FF8000"; // Жёлто-оранжевый
//$bdcolor="#00E900"; $fcolor="#005300"; // Светло-зеленый
//$bdcolor="#FB5037"; $fcolor="#620000"; // Красный
//$bdcolor="#800080"; $fcolor="#350035"; // Сиреневенький
$bdcolor="#007800"; $fcolor="#000000"; // Темно зеленый
//$bdcolor="#D2A500"; $fcolor="#4A3406"; // Золотой
//$bdcolor="#BCC0C0"; $fcolor="#646464"; // Серый
//$bdcolor="#FFA8FF"; $fcolor="#800080"; // Розовый

$date=date("d.m.y"); // число.месяц.год
$time=date("H:i"); // часы:минуты:секунды

// ТАБЛИЦА стилей зарыта ЗДЕСЬ !!!
$shapka="<html>
<head>
<META http-equiv=Content-Type content='text/html; charset=windows-1251'>
<style>
BODY,TD {FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;}
.pismo {BORDER-BOTTOM:$bdcolor 1px solid;}
.pismo2 {BORDER-LEFT:$bdcolor 1px solid; BORDER-BOTTOM:$bdcolor 1px solid;}
.remtop {font-weight: bold; color: $fcolor; font-size:1.1em; padding:5px; border-top: 1px solid $fcolor; border-bottom: 1px solid $fcolor; background-color: $bdcolor;}
.remdata {font-weight: bold; margin:0; display:inline; font-size:0.9em; color: $fcolor;}
input,textarea {font-family: Verdana; font-size: 12px; text-decoration: none; color: #000000; cursor: default; background-color: #FFFFFF; border-style: solid; border-width: 1px; border-color: $bdcolor;}
</style>
</head>
<BODY leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginheight=0 marginwidth=0>";

$back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка

function replacer ($text) { // ФУНКЦИЯ очистки кода
$text=str_replace(" ",' ',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$text);
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);
$text=rtrim($text);
return $text; }


// Для цифрозащиты антиспам:
$absrand="82321";// Случайное число. Используется для цифрозащиты.
if (isset($_GET['image'])) { // Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}

//******************* Ниже лучше ничего не трогать ************************//

// Событие ОТПРАВКИ СООБЩЕНИЯ администратору
if (isset($_GET['event'])) {

//sleep(1); // мелкая защита от БОТОВ

if ($antispam==TRUE) {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {exit("$bada");}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {exit("$bada");}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {exit("$bada");}}

// обрабатываем REPLACER'ом все данные
if (!isset($_POST['name'])) {exit("$shapka $back Вы не ввели имя!");} else {$name=replacer($_POST['name']);}
if (!isset($_POST['email'])) {exit("$shapka $back Вы не ввели емайл!");} else {$email=replacer($_POST['email']);}
if (!isset($_POST['tema'])) {exit("$shapka $back Вы не ввели тему!");} else {$tema=replacer($_POST['tema']);}
if (!isset($_POST['msg'])) {exit("$shapka $back Вы не ввели сообщение!");} else {$msg=replacer($_POST['msg']);}

// Если тема обязательна, разкоментируйте строчку ниже
if ($tema=="" || strlen($tema)>$maxtema) {exit("$shapka $back Вы не ввели тему!</B></center>");}

if ($name=="" || strlen($name)>$maxname) {exit("$shapka $back Вы не ввели имя, или вввели слишком длинное имя!</B></center>");}
if ($msg=="" || strlen($msg)>$maxmsg) {exit("$shapka $back Ваше сообщение или пустое или превышает $maxmsg символов.</B></center>");}
if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") {exit("$shapka $back и введите корректный E-mail адрес!</B></center>");}

$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $smailurl="http://$host$self";

// Настройки для отправки писем
$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";

// Собираем всю информацию в теле письма
$allmsg="$shapka
<center>
<table cellpadding=5 cellspacing=0>
<TR><TD colspan=2><div class=remtop align=center>Сообщение c сайта \"<a href='$smailurl'>$smailurl</a>\"</div></TD></TR>
<TR><TD class=pismo><P class=remdata>Имя</P></TD><TD class=pismo2><B>$name<B></TD></TR>
<TR><TD class=pismo><P class=remdata>E-mail</P></TD><TD class=pismo2><a href='mailto:$email'>$email</a></td></tr>
<TR><TD class=pismo><P class=remdata>Тема</P></TD><TD class=pismo2><B>$tema<B></td></tr>
<TR><TD class=pismo><P class=remdata>Дата отправки:</P></TD><TD class=pismo2>$date г. в $time</td></tr>
<TR><TD class=pismo><P class=remdata>Сообщение</P></TD><TD class=pismo2>$msg</td></tr>
</table>";

$printmsg="$allmsg
<center><BR>Ваше сообщение <B><font color=navy>успешно отправлено</font></B><BR><BR>
<a href='$refreshpage'>Вернуться <B>назад</B></a>

</body></html>";
$allmsg.="<BR><BR><BR>* Это сообщение отправлено с формы обратной связи.</body></html>";

// Отправляем письмо майлеру на съедение ;-)
mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers);

// Пишем пользователю "Спасибо" и обновляем страницу через JavaScript
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>$printmsg"; exit;


} else { // Типо главной страницы



print "$shapka
<center>
<form action=sendmail.php?event=add method=post name=REPLIER><table>
<TR><TD colspan=2><div class=remtop align=center>Задать вопрос Администратору</div></TD></TR>
<TR><TD><P class=remdata>Имя</P></TD><TD><input type=text value='' maxlength=$maxname name=name size=57></TD></TR>
<TR><TD><P class=remdata>E-mail</P></TD><TD><input type=text value='' maxlength=$maxname name=email size=57></td></tr>
<TR><TD><P class=remdata>Тема</P></TD><TD><input type=text value='' maxlength=$maxtema name=tema size=57></td></tr>
<TR><TD><P class=remdata>Сообщение</P></TD><TD>
<textarea cols=57 rows=10 size=500 name=msg></textarea>";

if ($antispam==TRUE) { // если АНТИСПАМ АКТИВИРОВАН
if (array_key_exists("image", $_REQUEST)) { $num=replacer($_REQUEST["image"]);
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
$xkey=""; mt_srand(time()+(double)microtime()*1000000);
print"<TR><TD><P class=remdata>Защитный код</P></TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i]; }
$xkey=md5("$xkey+$absrand");
print"<input name='usernum' type='text' maxlength=$maxkey size=8><input name=xkey type=hidden value='$xkey'>&nbsp;&nbsp; <P class=remdata><small>(введите число, указанное на картинке)</small></P></TD></TR>";
}

print"<TR><TD colspan=2 align=center><br><input type=submit value='Отправить'></td></tr></table></form>";
}

?>
[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Aleksey1989
Aleksey1989
Topic Starter сообщение 3.3.2010, 21:08; Ответить: Aleksey1989
Сообщение #2


Вообщем разобрался: сообщения всё таки пришли на ящик, хоть и с 30-ти минутным опазданием. Но всё же, хотелось бы узнать Вашего мнения на счёт предложенного мной скрипта и представить свои варианты.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 4.3.2010, 15:34; Ответить: MetSerp
Сообщение #3


опечатка на вашем сайте. Когда жмешь кнопку сайнап вместо кнопки "Регистрация" кнопка "Реестрация"
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pomp
pomp
сообщение 4.3.2010, 15:34; Ответить: pomp
Сообщение #4


(goodcat @ 4.3.2010, 17:25) *
Предлагаю не юзать PHP, а использовать онлайн сервисы для создания веб-форм (в том числе и обртаной связи) меньше будет проблем.

А я как раз наоборот - предлагаю учиться и самому писать такие несложные формы - меньше будет проблем с всякими так он-лайн сервисами ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 4.3.2010, 15:37; Ответить: MetSerp
Сообщение #5


(pomp @ 4.3.2010, 17:34) *
меньше будет проблем с всякими так он-лайн сервисами

Имхо такой сервис имеет необходимость для сайтов где не поддерживается php (и другие серв. языки) и DB в остальных случаях лучше поднапрячься и сделать самому ИМХО :drinks:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

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


 



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