Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Форма обратной связи

#11 Matt

Matt
    Topic Starter
  • Пользователь
  • 774 сообщений
  • Репутация: 2
0

Отправлено 07 Ноябрь 2010 - 16:04

Просто сайт на UTF-8 и если менять кодировку, то сообщения вроде "Письмо отправлено" не отображаются корректно.
Но ничего, может я плохо в кодах разбираюсь, зато хитрый очень)) Те поля, в которых критично оказалось вводить именно латиницу я внёс номер телефона и имя (латиницей), а остальные поля, которые уже в самом письме выводятся - там русский и при UTF-8 отображаются.

Спасибо за помощь, буду продолжать штудировать книги по PHP.

Всё, я добил свою проблему, вот решение:
<?php
$your_email = "....@....";
if (isset($_POST['names'])) { $names = $_POST['names']; if ($names == '') { unset($names);} }
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
if (isset($_POST['title'])) { $title = $_POST['title']; if ($title == '') { unset($title);} }
if (isset($_POST['poroda'])) { $poroda = $_POST['poroda']; if ($poroda == '') { unset($poroda);} }
if (isset($_POST['city'])) { $city = $_POST['city']; if ($city == '') { unset($city);} }
if (isset($_POST['razwed'])) { $razwed = $_POST['razwed']; if ($razwed == '') { unset($razwed);} }
if (isset($_POST['klub'])) { $klub = $_POST['klub']; if ($klub == '') { unset($klub);} }
if (isset($_POST['dom'])) { $dom = $_POST['dom']; if ($dom == '') { unset($dom);} }
if (isset($_POST['cel'])) { $cel = $_POST['cel']; if ($cel == '') { unset($cel);} }
if (isset($_POST['message'])) { $message = $_POST['message']; if ($message == '') { unset($message);} }

if (empty($names) or empty($email) or empty($dom) or empty($cel)) { die ("Не все поля заполнены! <a href=\"java script:history.back()\">Назад</a>"); }
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)) { die ("Неверно введен е-mail! <a href=\"java script:history.back()\">Назад</a>"); }

$names = addslashes($names);
$email = addslashes($email);
$title = addslashes($title);
$poroda = addslashes($poroda);
$message = addslashes($message);

$message = "Имя: {$names}<br><br>
Телефон: {$title}<br><br>
Город: {$city}<br><br>
Порода: {$poroda}<br><br>
Разведение: {$razwed}<br><br>
Клуб: {$klub}<br><br>
Животные: {$dom}<br><br>
Цель: {$cel}<br><br>
Сообщение: " . $message;

$headers = "Content-type: text/html; charset=UTF-8 \r\n";
$headers .= "From: Kitten! <$email>\r\n";
if (mail($your_email, $title, $message, $headers)) {
echo ("Письмо отправлено! "); }
else {echo ("Ошибка, письмо не удалось отправить! ");}
?><?php
header('Refresh: 3; URL=....');
echo 'Через 3 сек. вы будете перенаправлены на новую страницу.';
exit;
?>



Для вставки на страницу использую такую форму:
<p>
Строки, отмеченные * обязательны для заполнения.</p>
<form action="check_feedback.php" method="post">
<br />
<lable>*Имя:</lable><br />
<input name="names" type="text" /><br />
<br />
<lable>*Email:</lable><br />
<input name="email" type="text" /><br />
<br />
<lable>Номер телефона:</lable><br />
<input name="title" type="text" /><br />
<br />
<lable>Ваш город:</lable><br />
<input name="city" type="text" /><br />
<br />
<lable>Интересует порода:</lable><br />
<input name="poroda" type="text" /><br />
<br />
<lable>Занимаетесь разведением кошек?</lable><br />
<input name="razwed" type="text" /><br />
<br />
<lable>Состоите в КЛК?</lable><br />
<input name="klub" type="text" /><br />
<br />
*<lable>У вас есть домашние животные?</lable><br />
<input name="dom" type="text" /><br />
<br />
*<lable>Цель приобретения котёнка:</lable><br />
<input name="cel" type="text" /><br />
<br />
<lable>Подробности:</lable><br />
<textarea name="message"></textarea><br />
<br />
<input name="send" type="submit" value="Отправить" />&nbsp;</form>


Тему прошу закрыть, задача решена.
  • 0

#12 mr.Zamut

mr.Zamut
  • Пользователь
  • 6 сообщений
  • Репутация: 0

Отправлено 17 Июль 2013 - 07:16

Здравствуйте. Решил не открывать новую тему, так как вопрос похожий. На сайте размещено 12 форм обратной связи, по теме - онлайн запись к мастеру на прием. Сообщения с них должны приходить на три разных адреса, каждая форма под своим именем. Сделать одну с выпадающим списком не вариант, по заказу для каждого мастера отдельная страничка. Как это правильно реализовать? Обработчик нужен для каждой формы или один на все? Как в html присвоить свое имя каждой форме?
Заранее спасибо.
  • 0

#13 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 17 Июль 2013 - 13:10

Конечно же обработчик один на всех.
Если для каждого мастера своя страница, то можно от этого и плясать. Формой передавать в обработчик данные заказа, данные мастера.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#14 mr.Zamut

mr.Zamut
  • Пользователь
  • 6 сообщений
  • Репутация: 0

Отправлено 24 Июль 2013 - 07:29

fedornabilkin спасибо за ответ, с одной частью решение понятно. Может подскажите как это реализовать в коде, а именно обработчик один на 12 форм, при этом 4 формы отправка на один адрес, еще 4 на другой, и еще 4 на третий? И что нужно добавить в html код для обозначения формы отдельным именем? Приношу извинения за "недалекие" вопросы, но в сети ничего подобного я не нашел. код формы прилагаю:
<form id="form" method="post" >
						  <fieldset>
							<label><strong>Имя*:</strong><input type="text" value=""><strong class="clear"></strong></label>
							<label><strong>Телефон*:</strong><input type="text" value=""><strong class="clear"></strong></label>
							<label><strong>Дата*:</strong><input type="text" value=""><strong class="clear"></strong></label>
							<label><strong>Время*:</strong><input type="text" value=""><strong class="clear"></strong></label>
							<label><strong>Email:</strong><input type="text" value=""><strong class="clear"></strong></label>
							<label><strong>Укажите<br>услугу:</strong><textarea></textarea><strong class="clear"></strong></label>
							<strong class="clear"></strong>
							<div class="btns"><a href="#" class="link-1">сброс</a><a href="#" class="link-1" onClick="document.getElementById('form').submit()">отправить</a></div>

  • 0

#15 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 24 Июль 2013 - 10:23

Надо в каждый инпут и в текстовую область добавить нэймы.
<form id="form" method="post" >
												  <fieldset>
													    <label><strong>Имя*:</strong><input type="text" name="name" value=""><strong class="clear"></strong></label>
													    <label><strong>Телефон*:</strong><input type="text" name="phone" value=""><strong class="clear"></strong></label>
													    <label><strong>Дата*:</strong><input type="text" name="date" value=""><strong class="clear"></strong></label>
													    <label><strong>Время*:</strong><input type="text" name="time" value=""><strong class="clear"></strong></label>
													    <label><strong>Email:</strong><input type="text" name="email" value=""><strong class="clear"></strong></label>
													    <label><strong>Укажите<br>услугу:</strong><textarea  name="service"></textarea><strong class="clear"></strong></label>
													    <strong class="clear"></strong>
													    <div class="btns"><a href="#" class="link-1">сброс</a><a href="#" class="link-1" onClick="document.getElementById('form').submit()">отправить</a></div>

  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#16 mr.Zamut

mr.Zamut
  • Пользователь
  • 6 сообщений
  • Репутация: 0

Отправлено 25 Июль 2013 - 06:34

fedornabilkin Вас понял, спасибо. А с обработчиком как?
  • 0

#17 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 25 Июль 2013 - 12:09

С обработчиком тоже просто.
  • Получаем данные
  • Обрабатываем
  • Записываем/сохраняем
  • Выдаем сообщение об успешной передаче данных либо об ошибке и т.д.
Код может быть таким.
// обработка данных
function def( $par ){
	 $par = trim($par);
	 $par = strip_tags($par);
  $par = htmlspecialchars($par, null, "cp1251");
  //$par = htmlentities($par, null, "cp1251");
	 if( get_magic_quotes_gpc () ){
		 $par = stripslashes ($par);
	 }
  return $par;
}

$name = strval( def( $_POST['name'] ) );
$phone = strval( def( $_POST['phone'] ) );
$date = strval( def( $_POST['date'] ) );
$time = strval( def( $_POST['time'] ) );
$email = strval( def( $_POST['email'] ) );
$service = strval( def( $_POST['service'] ) );
/*
Далее записываем в базу или отправляем на мыло. По усмотрению.
В зависимости от выполнения/не выполнения отправляем на нужную страницу с сообщением.
*/

  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#18 mr.Zamut

mr.Zamut
  • Пользователь
  • 6 сообщений
  • Репутация: 0

Отправлено 11 Сентябрь 2013 - 13:31

Все таки тяжело дается языки программирования для человека начинающего изучать их самостоятельно с нуля. Вопрос: не работает форма обратной связи, то есть при нажатии отправить не происходит ничего.
Подскажите где ошибка?
код формы
<form id="contactForm" action="mail.php" method="post">
		  <fieldset>
			<p>
			  <label for="name">Имя</label>
			  <input name="name"  id="name" type="text" class="form-poshytip" title="Enter your full name">
			</p>
			<p>
			  <label for="email">Email</label>
			  <input name="email"  id="email" type="text" class="form-poshytip" title="Enter your email address">
			</p>
			<p>
			  <label for="web">Сайт</label>
			  <input name="web"  id="web" type="text" class="form-poshytip" title="Enter your website">
			</p>
			<p>
			  <label for="comments">Собщение</label>
			  <textarea  name="comments"  id="comments" rows="5" cols="20" class="form-poshytip" title="Enter your comments"></textarea>
			</p>
			<p>
			  <input type="button" value="Отправить" name="submit" id="submit">
			  <span id="error" class="warning"></span></p>
		  </fieldset>
		</form>

код обработчика
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Форма</title>
</head>
<body>
<?php
  if(isset($_POST['submit'])) {
  if(trim($_POST['name']) == '') {
  $hasError = true;
  } else {
  $name = trim($_POST['name']);
  }
  if(trim($_POST['email']) == '')  {
  $hasError = true;
  } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+.[A-Z]{2,4}$", trim($_POST['email']))) {
  $hasError = true;
  } else {
  $email = trim($_POST['email']);
  }
  if(trim($_POST['comments']) == '') {
  $hasError = true;
  } else {
  if(function_exists('stripslashes')) {
  $comments = stripslashes(trim($_POST['comments']));
  } else {
  $comments = trim($_POST['comments']);
  }
  }
  if(!isset($hasError)) {
  $emailTo = 'mr.zamut@rambler.ru';
  $body = "Name: $name nnEmail: $email nnComments:n $comments";
  $headers = 'From: My Site <'.$emailTo.'>' . "rn" . 'Reply-To: ' . $email;
mail($emailTo, $subject, $body, $headers);
  $emailSent = true;
  }
  }
  ?>
</body>
</html>
Заранее спасибо.
  • 0

#19 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 11 Сентябрь 2013 - 15:22

...при нажатии отправить не происходит ничего

Попробуйте сделать не просто кнопку:
<input type="button" value="Отправить" name="submit" id="submit">
а кнопку, отправляющую форму на сервер:
<input type="submit" value="Отправить" name="submit" id="submit">
тогда уже будет что-то происходить.
  • 0


#20 mr.Zamut

mr.Zamut
  • Пользователь
  • 6 сообщений
  • Репутация: 0

Отправлено 11 Сентябрь 2013 - 18:08

спасибо за участие, сделал, теперь при нажатии я попадаю на пустую страницу путь: http://site name/mail.php на почту ничего не приходит, может надо где-то указать данные сервера? какие и где?
Все вопрос снят, форма работает, почему то заработала на вторй день после пробной отправки. Ну да ладно. Подбрасываю код css для формы, может кому пригодится:

/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*//* FORMS ------------------------------------------------------------*/
#respond .heading {
  margin-bottom: 10px;
  padding-top: 0px;
  padding-bottom: 10px;
  border-top: 0px solid #444444;
  border-bottom: 5px solid #444444;
}
#reply-title {
  margin-bottom: 10px;
  padding-top: 0px;
  padding-bottom: 10px;
  border-top: 0px solid #444444;
  border-bottom: 5px solid #444444;
}
#commentform,
#contactForm,
.wpcf7-form {
  margin-bottom: 21px;
}
#commentform h4,
#contactForm h4 {
  margin-top: 20px;
  margin-bottom: 20px;
}
.wpcf7-form input,
.wpcf7-form textarea,
#contactForm input,
#contactForm textarea,
#commentform input,
#commentform textarea {
  padding: 10px 15px;
  background: #eaeaea;
  color: #484848;
  border: 1px  solid #ccc;
  font-size: 14px;
  font-family: Tahoma, Arial;
  line-height: 1.5em;
  overflow: auto;
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
#contactForm input:focus,
#contactForm textarea:focus,
#commentform input:focus,
#commentform textarea:focus {
  background: #fff;
  -webkit-box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
  -moz-box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
  -o-box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
  box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="text"],
#contactForm input[type="text"],
#commentform input[type="text"],
#contactForm input[type="password"],
#commentform input[type="password"] {
  overflow: auto;
  width: 93.1818%;
  margin-top: 10px;
  margin-bottom: 10px;
  overflow: hidden;
}
.wpcf7-form textarea,
#contactForm textarea,
#commentform textarea {
  width: 93.1818%;
  height: 230px;
  margin-top: 10px;
  margin-bottom: 10px;
}
#searchsubmit,
.wpcf7-submit,
#contactForm input[type="submit"],
#commentform input[type="submit"],
#contactForm input[type="button"] {
  width: auto;
  color: #e37655;
  font-size: 14px;
  background: #f1f1f1;
  padding: 3px 10px;
  border: 1px solid #ccc;
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.22);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  cursor: pointer;
}
#searchsubmit:hover,
.wpcf7-submit:hover,
#contactForm input[type="submit"]:hover,
#commentform input[type="submit"]:hover,
#contactForm input[type="button"]:hover {
  -webkit-transform: translate(0, 2px);
  -moz-transform: translate(0, 2px);
  -o-transform: translate(0, 2px);
  transform: translate(0, 2px);
}
#respond {
  margin: 25px 0 0px 0px;
}
#cancel-comment-reply-link {
  display: block;
  float: right;
  font-family: Tahoma, Arial, "sans-serif";
  font-size: 12px;
  text-decoration: underline;
}
#commentform .comment-notes {
  margin-bottom: 30px;
}
#contactForm input#submit {
  margin-top: 7px;
}
#contactForm label,
#commentform label {
  color: #484848;
}
#contactForm p,
#commentform p {
  margin-bottom: 0px;
}
#error {
  margin-left: 10px;
}
#sent-form-msg {
  padding: 5px 10px;
  margin-bottom: 40px;
  background: rgba(0, 0, 0, 0.1);
  color: #444444;
}
#commentform .form-allowed-tags {
  font-size: 14px;
  color: #888888;
  margin-bottom: 20px;
}
.respond-title-wrap,
.comment-title-wrap {
  border-bottom: 1px solid #484848;
  padding: 0 0 15px 0;
  margin: 0 0 30px 0;
}
#respond-title,
#comments,
.add-comment-link {
  font-size: 14px;
  color: #2c2d31;
  font-weight: bold;
}
.respond-caption {
  font-size: 14px;
}

Сообщение отредактировал mr.Zamut: 12 Сентябрь 2013 - 12:21

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru