Jump to content
  • 0

Настройка отправки формы.


Нарек
 Share

Question

Помогите пожалуйста настроить форму отправки на почту.

В php пока никак не разбираюсь, но пытаюсь разобраться.

На сайте имеются 2 формы. Первая:

<form class="form-inline form-register form-register-small" method="post" action="send.php">		    <div class="form-group">        <input size="30" type="text" class="form-control required" name="fullname" id="fullname" placeholder="Имя">    </div>    <div class="form-group">	<input size="25" type="email" class="form-control required email" name="email" id="email" placeholder="E-mail">    </div>    <div class="form-group tel-wrapper">	<input type="tel" class="form-control required" name="tel" id="tel" placeholder="Телефон">    </div>    <div class="form-group submit-wrap">	<input type="hidden" name="small-form"/>	<button type="submit" class="btn btn-primary btn-md">Записаться</button>    </div></form>

И вторая:

<form class="form" action="send.php" method="post">    <div class="form-group form-inline">        <input size="15" type="text" class="form-control required" id="NewsletterName" name="NewsletterName" placeholder="Имя" />         <input size="25" type="tel" class="form-control required" id="callme" name="callme" placeholder="Телефон" /> 	<input type="submit" class="btn btn-default" value="Позвоните мне" />    </div></form>

Можно ли одним файлом send.php сделать так, что бы обе формы работали?

 

Вот сам php

<?php$to = "email@email.com";if (!isset($_POST['small-form'])){	$subject = "Order";	$message = "Fullname: " . $_POST['fullname'];	$message .= "<br>Tel: " . $_POST['tel'];	$message .= "<br>Email: " . $_POST['email'];} else {	$subject = "Quick order";	$message = "Fullname: " . $_POST['NewsletterName'];	$message .= "<br>Tel: " . $_POST['tel'];};$headers  = "MIME-Version: 1.0" . "\r\n";$headers .= "Content-type: text/html; charset=utf-8" . "\r\n";$headers .= "From: " . $_POST['fullname'] . " <" . $_POST['email'] . ">". "\r\n";if( mail($to, $subject, $message, $headers) ) {	echo "ok";} else {	echo "error";}?>

Так вот, взявшись за свои очень маленькие ( их вообще нет :) ) знания и подобрав себе инструмент в виде Google я написал данную фигню которая не работает естественно) То есть как не работает - Первая форма отправляет вот такую структуру

 

От кого: Имя введенная при заполнении <почта@почта.ru> (в шапке письма а не в его содержании)

Fullname: тут пусто

Tel: тут все хорошо

 

То есть отправляет практически все, только все не на своих местах..

 

А вторая отправляет пустые скобки <>...

 

Мне показалось что я правильно сделал структуру, if и else типа или тот или тот, и если все на месте = отправлять.

 

Помогите пожалуйста найти ошибку) Или хотя бы скажите в какую сторону копать если код сплошная ошибка. Спасибо.

Edited by Нарек
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Как вариант можно сделать так

<form class="form-inline form-register form-register-small" method="post" action="send.php">		    	<div class="form-group">		<input size="30" type="text" class="form-control required" name="fullname" id="fullname" placeholder="Имя">	</div>	<div class="form-group">		<input size="25" type="email" class="form-control required email" name="email" id="email" placeholder="E-mail">	</div>	<div class="form-group tel-wrapper">		<input type="tel" class="form-control required" name="tel" id="tel" placeholder="Телефон">	</div>	<div class="form-group submit-wrap">		<button type="submit" class="btn btn-primary btn-md">Записаться</button>	</div></form><form class="form" action="send.php" method="post">    <div class="form-group form-inline">        <input size="15" type="text" class="form-control required" id="fullname" name="fullname" placeholder="Имя" />         <input size="25" type="tel" class="form-control required" id="tel" name="tel" placeholder="Телефон" /> 		<input type="submit" class="btn btn-default" value="Позвоните мне" />    </div></form><?php$to = "email@email.com";$subject = isset($_POST['email']) ? "Order" : "Quick order";$message = "Fullname: " . $_POST['fullname'];$message .= "<br>Tel: " . $_POST['tel'];if (!isset($_POST['email'])){	$message .= "<br>Email: " . $_POST['email'];}$headers  = "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\nFrom: ".$_POST['fullname']." <".(isset($_POST['email']) ? $_POST['email'] : 'emptymail@testmail.ru').">\r\n";if( mail($to, $subject, $message, $headers) ) {	echo "ok";} else {	echo "error";}?>
Edited by stars
  • Like 1
Link to comment
Share on other sites

  • 0

 

Как вариант можно сделать так

<form class="form-inline form-register form-register-small" method="post" action="send.php">		    	<div class="form-group">		<input size="30" type="text" class="form-control required" name="fullname" id="fullname" placeholder="Имя">	</div>	<div class="form-group">		<input size="25" type="email" class="form-control required email" name="email" id="email" placeholder="E-mail">	</div>	<div class="form-group tel-wrapper">		<input type="tel" class="form-control required" name="tel" id="tel" placeholder="Телефон">	</div>	<div class="form-group submit-wrap">		<button type="submit" class="btn btn-primary btn-md">Записаться</button>	</div></form><form class="form" action="send.php" method="post">    <div class="form-group form-inline">        <input size="15" type="text" class="form-control required" id="fullname" name="fullname" placeholder="Имя" />         <input size="25" type="tel" class="form-control required" id="tel" name="tel" placeholder="Телефон" /> 		<input type="submit" class="btn btn-default" value="Позвоните мне" />    </div></form><?php$to = "email@email.com";$subject = isset($_POST['email']) ? "Order" : "Quick order";$message = "Fullname: " . $_POST['fullname'];$message .= "<br>Tel: " . $_POST['tel'];if (!isset($_POST['email'])){	$message .= "<br>Email: " . $_POST['email'];}$headers  = "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\nFrom: ".$_POST['fullname']." <".(isset($_POST['email']) ? $_POST['email'] : 'emptymail@testmail.ru').">\r\n";if( mail($to, $subject, $message, $headers) ) {	echo "ok";} else {	echo "error";}?>

 

К сожалению это работает так:

С первой формы (где имя, телефон, email) отправляет вот такую картинку http://joxi.ru/IxcoVIwyTJDiAms6fqg

Со второй формы (где только имя и телефон) вот такую http://joxi.ru/dRcoVIwyTJDSAqTcdV8

Link to comment
Share on other sites

  • 0

В общем потихоньку разбираюсь, теперь php имеет такой вид

<?php$to = "email@email.email";if (!isset($_POST['small-form'])){	$subject = "Order";	$message = "Fullname: " . $_POST['NewsletterName'];	$message .= "<br>Tel: " . $_POST['callme'];} else {	$subject = "Q Order";	$message = "Fullname: " . $_POST['fullname'];	$message .= "<br>tel: " . $_POST['tel'];	$message .= "<br>Email: " . $_POST['email'];};$headers  = "MIME-Version: 1.0" . "\r\n";$headers .= "Content-type: text/html; charset=utf-8" . "\r\n";$headers .= "From: " . $_POST['fullname'] . " <" . $_POST['email'] . ">". "\r\n";if( mail($to, $subject, $message, $headers) ) {	echo "ok";} else {	echo "error";}?>

Единственная проблема осталось вот маленькая фигня) При отправке с первой формы (первой в php где только NewsletterName и callme) не отправляет пункт "От кого". Я понимаю что так то в форме отсутствует пункт email, но можно ли делать так, что бы отправилось "Сообщение отсюдата" если пользователь жмет отправить со второй формы?

Link to comment
Share on other sites

  • 0

К сожалению это работает так:

С первой формы (где имя, телефон, email) отправляет вот такую картинку http://joxi.ru/IxcoVIwyTJDiAms6fqg

Со второй формы (где только имя и телефон) вот такую http://joxi.ru/dRcoVIwyTJDSAqTcdV8

 

 

Ну значит вы не все заменили. В моей версии изменен не только PHP код, но и html форма.

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