Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
winwin22
7 / 7 / 5
Регистрация: 07.06.2018
Сообщений: 106
30.06.2018, 12:37

Кто может поделиться рабочей формой обратной связи?

30.06.2018, 12:37. Просмотров 204. Ответов 6
Метки (Все метки)

Ответ

на попробуй это я там намудрил !комменты сам поправь...
если кому надо доведите до ума и опубликуйте... спешу ... а скрипт работает.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
$err='';
if ($_SERVER['REQUEST_METHOD']=='POST') {  
  //обрабатываем полученные переменные.  
  foreach($_POST as $key => $value) {  
    //сначала делаем обработку, которая не испортит данные,  
    //если их придется выводить в форму снова, при ошибке  
    $value=trim($value); // убираем пробелы в начале и в конце переменной.  
    if (get_magic_quotes_gpc()) $value = stripslashes($value); //убираем слеши, если надо  
    $value=htmlspecialchars($value,ENT_QUOTES); //заменяем служебные символы HTML на эквиваленты  
    $_POST[$key]=$value; //все изменения записываем в массив $_POST  
    //дальше делаем изменения, которые пойдут только в файл,  
    //а в форму их выводить не нужно.  
    $value=str_replace("\r","",$value); // заменяем все переводы строк  
    $value=str_replace("\n","<br>",$value); //на <br>  
    $msg[$key]=$value; //и присваиваем новые значения элементам массива $msg.  
  }  
  //дальше делаем разнообразные проверки. Они здесь для  
  //примера, вы можете добавлять, какие захотите  
  //главное то, что при любых ошибках переменная $err становится не пустой.  
  //то есть, она одновременно является и флагом ошибки и  
  //содержит все сообщения об ошибках.  
    /*
  if (!$name) $err.="Вы забыли написать свое имя<br>";  
  if (!$notes) $err.="Вы забыли написать сам отзыв!<br>";  
  if (strlen($name) > 30) $err.="Длина имени не может превышать 30 символов<br>";  
  if (strlen($notes) > 1000) $err.="Длина отзыва не может превышать 1000 символов<br>";  
  if (strlen($email) > 50) $err.="емейл длинноват...<br>";  
  if (preg_match("/[0-9a-zA-Zа-яА-ЯЁё]{30,}/",$notes,$matches)) {  
    $err.="В отзыве присутствует слишком длинное слово ".$matches[0].". Cократите или разбейте его, пожалуйста.";  
  }  
  $email_ok=eregi("^([_\.0-9a-z-]+@)([0-9a-z][0-9a-z-]+\.)+([a-z]{2,4})$", $email);  
  if (!$email_ok && $email) $err.="Ошибка в емейле. Если не хотите, то просто не пишите!<br>";  
  //если ошибок нет, то пишем в файл  
  */
  if (!$err) {  
    $s=$msg['name']."|".$msg['email']."|".$msg['notes']."|".time()."\n";  
    $fp=fopen("gbook.txt","a");  
    fwrite($fp,$s);  
    fclose($fp);  
    //после записи перенаправляем браузер на страницу,  
    //которая отображает сообщения  
    Header("Location: ".$_SERVER['PHP_SELF']);  
    //и обязательно завершаем работу скрипта  
    exit;  
  }  
  //если у нас были ошибки при заполнении формы, то в файл  
  //ничего не запишется, скрипт не завершится, а выведется  
  //форма, с заполненными полями и сообщения об ошибках  
} else {  
  //если это не пост, то присваиваем переменным, выводимым  
  //в форме пустую строку  
  $_POST['name'] = $_POST['email'] = $_POST['notes'] ='';  
}  
?>  
<html>  
<head></head>  
<body>  
<?php if ($err) {echo '<font color=red><b>'.$err.'</b></font>';}else{} ?>  
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"><br>  
Name: <input type="text" name="name" value="<?php echo $_POST['name'] ?>"><br>  
Email: <input type="text" name="email" value="<?php echo $_POST['email'] ?>"><br>  
Notes: <textarea rows="3" cols="30" name="notes"><?php echo $_POST['notes'] ?></textarea><br>  
<input type="submit" name="submit">  
</form>  
</body>  
</html>


Вернуться к обсуждению:
Кто может поделиться рабочей формой обратной связи?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2018, 12:37

Скрипт обратной связи
Добрый день. Подскажите, пожалуйста, как реализовать функцию обратной связи,...

Форма обратной связи
Всем привет! Возникла проблема, уже не знаю как решить ее (( Суть в...

Форма обратной связи
Добрый день.Столкнулся тут с проблемой и не могу увидеть ее :) .Суть проблемы...

0
Другие темы раздела
PHP Очистка полей формы обратной связи после отправки http://www.cyberforum.ru/php/thread2269923.html
Как сделать так, чтобы после отправки поля формы очищались? или же реализовать возможность повторно отправить форму? При повторной попытке отправки выдает ошибку. Форма: <? session_start(); ...
PHP Как передать id товара в всплывающую форму обратной связи? Здравствуйте! Столкнулась с проблемой передачи id элемента каталога. Представьте у меня на странице большой список товаров и на каждом есть кнопка "оставить заявку на звонок", тыкая на которую в... http://www.cyberforum.ru/php/thread2269918.html
PHP Переменная с увеличением на 1 в цикле
Здравствуйте есть цикл с оператором while, выводит повторяющиеся блоки. Каждому блоку нужно добавить свой айдишник. Как задать переменную, чтобы например первый блок выводился с id="1" 2-ой с id="2"...
PHP Бегущая строка
Приветствую, есть у меня одна проблемка. Есть цикл, который выводит из БД текст в бегущую строку, но для каждого нового intro_text создается еще одна бегущая строка, можно ли как-то их объединить? ...
PHP Представления в Drupal http://www.cyberforum.ru/php/thread2269498.html
Всем привет. Прощу помощи в создании представления для вывода типа материала с помощью таксономии. Первый раз все сделал все работало. Потом нужно было удалить дубль этого представления,и удалил...
PHP Переадресация Всем здравствуйте) Голову уже сломал) ситуация такая есть страница авторизации, пользователи есть 3 типов: инженер, пользователь, и пользователь компании. У всех свои личные кабинеты, и при... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru