Помощник
|
Форма обратной связи |
bugmenot
|
Сообщение
#1
|
||
|
|
||
|
|||
bugmenot
|
Сообщение
#2
|
|
Решил:) Вот, Может кому будет нужно!
Обработчик [PHP]<?php $root= $_SERVER['HTTP_REFERER']; //Функция первода кирилических букв в верхний регистр function toupper($content) { $content = strtr($content, "абвгдеёжзийклмнорпстуфхцчшщъьыэюя", "АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ"); return strtoupper($content); } if (isset($_POST['thame'])) { $thame = $_POST['thame']; if ($thame == '') unset($thame); } if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') unset($email); } if (isset($_POST['text'])) { $text = $_POST['text']; if ($text == '') unset($text); } if (isset($_POST['captcha'])) { $captcha = $_POST['captcha']; if ($captcha == '') unset($captcha); } if (isset($thame) || isset($email) || isset($text) || isset($captcha)){ session_start(); $_SESSION['var']= array ( 'thame'=>$thame, 'email'=>$email, 'text'=>$text, 'captcha'=>$captcha ); } /* Проверяем заполнены ли все поля */ if (isset($thame) && isset($email) && isset($text) && isset($captcha)) { /* Убираем все лишние пробелы и переносы строк, а также преобразуем все теги HTML в символы*/ $name = htmlspecialchars(trim($thame)); $email = htmlspecialchars(trim($email)); $message = htmlspecialchars(trim($text)); $message = htmlspecialchars(trim($captcha)); /* Проверяем правильность ввода email-адреса */ if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)){ $_SESSION['stat']= array('mailer'=>'Неправильный формат адреса',); die("<html><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <meta http-equiv='Refresh' content='0; URL=$root'> </head> </html>"); } // Проверяем капчу $captcha = toupper($captcha); if ($captcha!=='НЕТ'){ session_unregister("captcha"); $_SESSION['stat']= array('captcha'=>'Ботам тут не место:)',); die("<html><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <meta http-equiv='Refresh' content='0; URL=$root'> </head> </html>"); } /* Формируем сообщение */ $address = "email@example.ru"; $sub = "Сообщение с моего нового сайта!!!"; $mes = "Оставил такой E-mail: $email \nСодержание письма: \n$text"; /* Отправка сообщения */ $verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email"); if ($verify == 'true'){ $_SESSION['stat']= array('true'=>'Сообщение отправлено'); print "<html><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <meta http-equiv='Refresh' content='0; URL=$root'> </head> </html>"; } else { $_SESSION['stat']= array('fail'=>'Сообщение не отправлено'); print "<html><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <meta http-equiv='Refresh' content='0; URL=$root'> </head> </html>"; } } else{ $_SESSION['stat']= array('hole'=>'Все поля должны быть заполнены'); print "<html><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <meta http-equiv='Refresh' content='0; URL=$root'> </head> </html>"; } ?>[/PHP] форма в html файле (не забываем до начала html документа вызвать сессию session_start()) [PHP] <div id="minerror"> <?=$_SESSION['stat']['mailer'];?> <?=$_SESSION['stat']['hole'];?> <?=$_SESSION['stat']['fail'];?> <?=$_SESSION['stat']['captcha'];?> <?=$_SESSION['stat']['true']; if (isset($_SESSION['stat']['true'])){ session_unset($_SESSION); session_destroy(); }?> </div> <div class="tab-f colum-f"><img src="/img/footer_main2.jpg" width="222" height="58"> <br/><br/> <form method="POST" action="/js/zakaz-form/comment_mini/comment.php" enctype="multipart/form-data" name="mincom"> <div class="kut"><input type="text" name="thame" class="form-style" placeholder="Тема" value="<?=$_SESSION['var']['thame'];?>"></div><br/><br/> <div class="kut"><input type="text" name="email" class="form-style" placeholder="Email" value="<?=$_SESSION['var']['email'];?>"></div><br/><br/> <div class="kut"><input type="text" name="captcha" class="form-style" placeholder="Вы робот?" value="<?=$_SESSION['var']['captcha'];?>">></div><br/><br/><br/> <div class="kut-fortextarea"><textarea name="text" class="form-style" rows="5" placeholder="Текст"><?=$_SESSION['var']['text'];?></textarea></div><br/> <input type="submit" class="submit-buton-form" name="login" value="Отправить"> </form> [/PHP] |
|
|
Den1xxx |
1.6.2011, 14:23;
Ответить: Den1xxx
Сообщение
#3
|
|
|
|
|
bugmenot
|
Сообщение
#4
|
|
|
|
|
P0ZiTR0N |
1.6.2011, 16:02;
Ответить: P0ZiTR0N
Сообщение
#5
|
|
die(status); - это псевдоним exit(status); ,- заканчивает выполнение скрипта. Эта функция печатает status непосредственно перед выходом
|
|
|
bugmenot
|
Сообщение
#6
|
|
P0ZiTR0N, та я знаю что такое die:), это я показал так Den1xxx кавычки двойные где стоят:)
|
|
|
P0ZiTR0N |
1.6.2011, 16:29;
Ответить: P0ZiTR0N
Сообщение
#7
|
|
Ну.. тогда его мысль (да и правильней будет так):
[PHP]echo("... <meta http-equiv=\"Refresh\" content=\"0; URL=$root\"> ... ");[/PHP] |
|
|
bugmenot
|
Сообщение
#8
|
|
|
вот немного подправил... так думаю нормально
[PHP]<?php //Определяем путь старницы с которой пришли $root= $_SERVER['HTTP_REFERER']."#footer"; // Переадресация function refrsh ($rf){ print "<html><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <meta http-equiv='Refresh' content='0; URL=$rf'> </head> </html>"; } //первод кирилических букв в верхний регистр function toupper($content) { $content = strtr($content, "абвгдеёжзийклмнорпстуфхцчшщъьыэюя", "АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ"); return strtoupper($content); } if (isset($_POST['thame'])) { $thame = $_POST['thame']; if ($thame == '') unset($thame); } if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') unset($email); } if (isset($_POST['text'])) { $text = $_POST['text']; if ($text == '') unset($text); } if (isset($_POST['captcha'])) { $captcha = $_POST['captcha']; if ($captcha == '') unset($captcha); } if (isset($thame) || isset($email) || isset($text) || isset($captcha)){ session_start(); $_SESSION['var']= array ( 'thame'=>$thame, 'email'=>$email, 'text'=>$text, 'captcha'=>$captcha ); } /* Проверяем заполнены ли все поля */ if (isset($thame) && isset($email) && isset($text) && isset($captcha)) { /* Убираем все лишние пробелы и переносы строк, а также преобразуем все теги HTML в символы*/ $name = htmlspecialchars(trim($thame)); $email = htmlspecialchars(trim($email)); $message = htmlspecialchars(trim($text)); $message = htmlspecialchars(trim($captcha)); /* Проверяем правильность ввода email-адреса */ if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)){ $_SESSION['stat']= array('mailer'=>'Неверный формат адреса',); die(refrsh ($root)); } // Проверяем капчу $captcha = toupper($captcha); if ($captcha!=='НЕТ'){ session_unregister("captcha"); $_SESSION['stat']= array('captcha'=>'Ботам тут не место:)',); die(refrsh ($root)); } /* Формируем сообщение */ $address = "email@example.ru"; $sub = "Сообщение с моего нового сайта!!!"; $mes = "Оставил такой E-mail: $email \nСодержание письма: \n$text"; /* Отправка сообщения */ $verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email"); if ($verify == 'true'){ $_SESSION['stat']= array('true'=>'Сообщение отправлено'); refrsh ($root); } else { $_SESSION['stat']= array('fail'=>'Сообщение не отправлено'); refrsh ($root); } } else{ $_SESSION['stat']= array('hole'=>'Нужно заполнить все поля'); refrsh ($root); } ?>[/PHP]
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Принимаю заказы на копирайтинг, рерайтинг. Стабильно работаю, всегда на связи Нужен автор текстов, копирайтер? Обращайтесь |
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 |
Текстовая версия | Сейчас: 19.4.2024, 9:35 |