Jump to content
  • 0

Форма обратной связи (помогите доработать)


Totalist
 Share

Question

Уважаемы форумчане, помогите, пожалуйста, доработать код.

В форме обратной связи нужно реализовать проверку на заполнение полей "name, email, body" или "name, tel, body" в случае заполнения поля email или поля tel соответственно. Т.е. поля "name, body" обязательны для заполнения, а поля "email, tel" - на выбор одно или оба (но не обязательно).

<div id="openModal" class="modalDialog">

<div>

<a href="#close" title="Закрыть" class="close">X</a>

<h2>Обратная связь</h2>

<form name="MyForm" action="#openModal" method="post"><br>

<input name="name" style="width: 420px" type="text" placeholder="Ваши фамилия, имя, отчество" /><br>

<input name="tel" style="width: 420px" type="tel" placeholder="Ваш номер телефона" /><br>

<input name="email" style="width: 420px" type="email" placeholder="Ваша электронная почта" /><br>

<textarea name="body" style="width: 420px" placeholder="Ваше сообщение"></textarea><br>

<br>Нажимая на кнопку "Отправить", я даю согласие на обработку своих персональных данных в соответствии с <a href="politika.htm" target="_blank">Политикой конфиденциальности</a><br>

<p style="text-align: center"><input type="submit" value="Отправить" id="btnpng4" /></p>

</form>

<?php

if (isset($_POST["email"])){

if (isset($_POST["name"])) {$name = $_POST["name"];}

if (isset($_POST["tel"])) {$tel = $_POST["tel"];}

if (isset($_POST["email"])) {$email = $_POST["email"];}

if (isset($_POST["body"])) {$body = $_POST["body"];}

if($name=="" or $email=="" or $body==""){ // Проверяем на заполненность всех полей.

echo "Заполните все поля";

}else{

$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя

$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя

$to = "email"; // Ваш email адрес

$subject = "Сообщение c Вашего сайта"; // тема письма

$headers .= "Content-Type: text/html; charset=windows-1251";

$message = "

Имя: $name<br>

Телефон: $tel<br>

E-mail: $email<br>

Текст: $body<br><br>

——————————————————--<br>

—————IP отправителя: $ip<br>

—————Браузер отправителя: $brose<br>

";

$send = mail($to, $subject, $message, $headers);

if ($send == "true")

{

echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";

}

else

{

echo "Не удалось отправить сообщение, попробуйте снова!";

}

}

}

?>

</div>

</div>

 

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

здесь логичнее будет 
 

if(empty($email) or empty($name) or empty($body)){
  //отправка письма
}
else if(empty($tel) or empty($name) or empty($body)){
  //наверно отправка смс
}
else{
  //не заполнены обязательные поля
}

 

Link to comment
Share on other sites

  • 0

Switch74, внес в нижеследующий код  все Ваши поправки. Теперь страница с формой обратной связи не загружается, а вместо этого отображает сообщение:

Цитата

Parse error: syntax error, unexpected

<div id="openModal" class="modalDialog">
<div>
<a href="#close" title="Закрыть" class="close">X</a>
<h2>Обратная связь</h2>
<form name="MyForm" action="#openModal" method="post"><br>
<input name="name" style="width: 420px" type="text" placeholder="Ваши фамилия, имя, отчество" /><br>
<input name="tel" style="width: 420px" type="tel" placeholder="Ваш номер телефона" /><br>
<input name="email" style="width: 420px" type="email" placeholder="Ваша электронная почта" /><br>
<textarea name="body" style="width: 420px" placeholder="Ваше сообщение"></textarea><br>
<br>Нажимая на кнопку "Отправить", я даю согласие на обработку своих персональных данных в соответствии с <a href="politika.htm" target="_blank">Политикой конфиденциальности</a><br>
<p style="text-align: center"><input type="submit" value="Отправить" id="btnpng4" /></p>
</form>
<?php
if (isset($_POST["email"]) || isset($_POST["tel"])){
if (isset($_POST["name"])) {$name = $_POST["name"];}
if (isset($_POST["tel"])) {$tel = $_POST["tel"];}
if (isset($_POST["email"])) {$email = $_POST["email"];}
if (isset($_POST["body"])) {$body = $_POST["body"];}
if(empty($email) or empty($name) or empty($body)){
  //отправка сообщения
}
else if(empty($tel) or empty($name) or empty($body)){
  //отправка сообщения
}
else{
  //не заполнены обязательные поля
}else{
$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$to = "email"; // Ваш email адрес
$subject = "Сообщение c Вашего сайта"; // тема письма
$headers .= "Content-Type: text/html; charset=windows-1251";
$message = "
Пользователь: $name<br>
Телефон: $tel<br>
E-mail: $email<br>
Текст: $body<br><br>

——————————————————--<br>
—————IP отправителя: $ip<br>
—————Браузер отправителя: $brose<br>

";

$send = mail($to, $subject, $message, $headers);

if ($send == "true")

{

echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";

}

else

{

echo "Не удалось отправить сообщение, попробуйте снова!";

}

}

}

?>

</div>

</div>

Что можно предпринять? Где ошибка?

Link to comment
Share on other sites

  • 0
<div id="openModal" class="modalDialog">
<div>
<a href="#close" title="Закрыть" class="close">X</a>
<h2>Обратная связь</h2>
<form name="MyForm" action="#openModal" method="post"><br>
<input name="name" style="width: 420px" type="text" placeholder="Ваши фамилия, имя, отчество" /><br>
<input name="tel" style="width: 420px" type="tel" placeholder="Ваш номер телефона" /><br>
<input name="email" style="width: 420px" type="email" placeholder="Ваша электронная почта" /><br>
<textarea name="body" style="width: 420px" placeholder="Ваше сообщение"></textarea><br>
<br>Нажимая на кнопку "Отправить", я даю согласие на обработку своих персональных данных в соответствии с <a href="politika.htm" target="_blank">Политикой конфиденциальности</a><br>
<p style="text-align: center"><input type="submit" value="Отправить" id="btnpng4" /></p>
</form>
<?php
if (isset($_POST["email"]) || isset($_POST["tel"])){
if (isset($_POST["name"])) {$name = $_POST["name"];}
if (isset($_POST["tel"])) {$tel = $_POST["tel"];}
if (isset($_POST["email"])) {$email = $_POST["email"];}
if (isset($_POST["body"])) {$body = $_POST["body"];}
if(empty($email) or empty($name) or empty($body)){
  //отправка сообщения на email
}
else if(empty($tel) or empty($name) or empty($body)){
  //отправка сообщения на tel
}
else{
  //вывод предупреждения, что не заполнены обязательные поля
}

комментарии

Цитата

//отправка сообщения на email

 

Цитата

//отправка сообщения на tel

 

Цитата

//вывод предупреждения, что не заполнены обязательные поля


Заменить на соответствующий код который будет выполнять эти действия

Link to comment
Share on other sites

  • 0
10 часов назад, Switch74 сказал:

//отправка сообщения на tel

отправлять на телефон ничего не нужно

10 часов назад, Switch74 сказал:

Заменить на соответствующий код

какой код, например, может быть?

Link to comment
Share on other sites

  • 0

Например тот который у вас есть

$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$to = "email"; // Ваш email адрес
$subject = "Сообщение c Вашего сайта"; // тема письма
$headers .= "Content-Type: text/html; charset=windows-1251";
$message = "
Пользователь: $name<br>
Телефон: $tel<br>
E-mail: $email<br>
Текст: $body<br><br>

——————————————————--<br>
—————IP отправителя: $ip<br>
—————Браузер отправителя: $brose<br>

";

$send = mail($to, $subject, $message, $headers);

if ($send == "true")

{

echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";

}

else

{

echo "Не удалось отправить сообщение, попробуйте снова!";

}

 

Link to comment
Share on other sites

  • 0

Вот код:

<div id="openModal" class="modalDialog">
<div>
<a href="#close" title="Закрыть" class="close">X</a>
<h2>Обратная связь</h2>
<form name="MyForm" action="#openModal" method="post"><br>
<input name="name" style="width: 420px" type="text" placeholder="Ваши фамилия, имя, отчество" /><br>
<input name="tel" style="width: 420px" type="tel" placeholder="Ваш номер телефона" /><br>
<input name="email" style="width: 420px" type="email" placeholder="Ваша электронная почта" /><br>
<textarea name="body" style="width: 420px" placeholder="Ваше сообщение"></textarea><br>
<br>Нажимая на кнопку "Отправить", я даю согласие на обработку своих персональных данных в соответствии с <a href="politika.htm" target="_blank">Политикой конфиденциальности</a><br>
<p style="text-align: center"><input type="submit" value="Отправить" id="btnpng4" /></p>
</form>
<?php
if (isset($_POST["email"]) || isset($_POST["tel"])){
if (isset($_POST["name"])) {$name = $_POST["name"];}
if (isset($_POST["tel"])) {$tel = $_POST["tel"];}
if (isset($_POST["email"])) {$email = $_POST["email"];}
if (isset($_POST["body"])) {$body = $_POST["body"];}
if(empty($email) or empty($name) or empty($body)){
  //отправка сообщения
}
else if(empty($tel) or empty($name) or empty($body)){
  //отправка сообщения
}
else{
  //не заполнены обязательные поля
}
$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$to = ""; // Ваш email адрес
$subject = "Сообщение c Вашего сайта"; // тема письма
$headers .= "Content-Type: text/html; charset=windows-1251";
$message = "
Пользователь: $name<br>
Телефон: $tel<br>
E-mail: $email<br>
Текст: $body<br><br>

——————————————————--<br>
—————IP отправителя: $ip<br>
—————Браузер отправителя: $brose<br>
";
$send = mail($to, $subject, $message, $headers);

if ($send == "true")
{
echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";
}
else
{
echo "Не удалось отправить сообщение, попробуйте снова!";
}
}
?>
</div>
</div>

 

Link to comment
Share on other sites

  • 0

вот это

$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$to = ""; // Ваш email адрес
$subject = "Сообщение c Вашего сайта"; // тема письма
$headers .= "Content-Type: text/html; charset=windows-1251";
$message = "
Пользователь: $name<br>
Телефон: $tel<br>
E-mail: $email<br>
Текст: $body<br><br>

——————————————————--<br>
—————IP отправителя: $ip<br>
—————Браузер отправителя: $brose<br>
";
$send = mail($to, $subject, $message, $headers);

if ($send == "true")
{
echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";
}
else
{
echo "Не удалось отправить сообщение, попробуйте снова!";
}

должно быть вместо

  //отправка сообщения

после

if(empty($email) or empty($name) or empty($body)){


вместо

  //отправка сообщения

после

else if(empty($tel) or empty($name) or empty($body)){

должен быть код который будет выполняться когда указан телефон, но не указан email (его я так понимаю у вас нет)

и вместо

  //не заполнены обязательные поля

после

else{

должен быть вывод информации, что ни одно из обязательных полей не заполнено (этого у вас тоже нет)

Link to comment
Share on other sites

  • 0

Теперь так:

<div id="openModal" class="modalDialog">
<div>
<a href="#close" title="Закрыть" class="close">X</a>
<h2>Обратная связь<br>с администрацией колледжа</h2>
<form name="MyForm" action="#openModal" method="post"><br>
<input name="name" style="width: 420px" type="text" placeholder="Ваши фамилия, имя, отчество" /><br>
<input name="tel" style="width: 420px" type="tel" placeholder="Ваш номер телефона" /><br>
<input name="email" style="width: 420px" type="email" placeholder="Ваша электронная почта" /><br>
<textarea name="body" style="width: 420px" placeholder="Ваше сообщение"></textarea><br>
<br>Нажимая на кнопку "Отправить", я даю согласие на обработку своих персональных данных в соответствии с <a href="politika.htm" target="_blank">Политикой конфиденциальности</a><br>
<p style="text-align: center"><input type="submit" value="Отправить" id="btnpng4" /></p>
</form>
<?php
if (isset($_POST["email"]) || isset($_POST["tel"])){
if (isset($_POST["name"])) {$name = $_POST["name"];}
if (isset($_POST["tel"])) {$tel = $_POST["tel"];}
if (isset($_POST["email"])) {$email = $_POST["email"];}
if (isset($_POST["body"])) {$body = $_POST["body"];}
if(empty($email) or empty($name) or empty($body)){
$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$to = "sos@boki32.ru"; // Ваш email адрес
$subject = "Сообщение c Вашего сайта"; // тема письма
$headers .= "Content-Type: text/html; charset=windows-1251";
$message = "
Пользователь: $name<br>
Телефон: $tel<br>
E-mail: $email<br>
Текст: $body<br><br>

——————————————————--<br>
—————IP отправителя: $ip<br>
—————Браузер отправителя: $brose<br>
";
$send = mail($to, $subject, $message, $headers);

if ($send == "true")
{
echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";
}
else
{
echo "Не удалось отправить сообщение, попробуйте снова!";
}
}
else if(empty($tel) or empty($name) or empty($body)){
  //отправка сообщения
}
else{
  //не заполнены обязательные поля
}
}
?>
</div>
</div>

 

10 часов назад, Switch74 сказал:

должен быть код который будет выполняться когда указан телефон, но не указан email

какой код, например, может быть?

10 часов назад, Switch74 сказал:

должен быть вывод информации, что ни одно из обязательных полей не заполнено

тут какой код нужен?

Link to comment
Share on other sites

  • 0

если у вас должно выполняться одно и то же действие если есть только email или tel
то

else if(empty($tel) or empty($name) or empty($body)){
  //отправка сообщения
}

и заменяете

if(empty($email) or empty($name) or empty($body)){

на

if((!empty($email) or  !empty($tel)) and !empty($name) and !empty($body)){

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy