2016-05-07 6 views
2

У меня есть форма, которая запрашивает выполнение PHP файлаКак получить значение имени формы, который запросил выполнение PHP файла

Вот код формы:

<form name="First Form" method="post" action="email_script.php"> 
    <input type="text" name="name" placeholder="Ваше Имя"> 
    <input type="text" name="telephone" placeholder="Ваш Телефон"> 
    <input type="submit" value="ОСТАВИТЬ ЗАЯВКУ"> 
    </form> 

Вот код PHP :

<?php 
    // the message 
    $message .= $_POST["name"]; 
    $message .= $_POST["telephone"]; 

    // use wordwrap() if lines are longer than 70 characters 
    $message = wordwrap($message,70); 

    // send email 
    mail("[email protected]","Заказ Парня",$message); 
    ?> 

Как добавить название формы в состав сообщения, которое я отправляю по электронной почте? Как я могу присвоить значения имени, телефона, имени формы в разных строках тела электронной почты?
(Rigt теперь, что я получаю, как электронная почта это:
Имя + 1234567890
, но я скорее хочу, чтобы это было так:
Имя
+1234567890)
Я спрашиваю потому, что я хочу, чтобы создать несколько html-файлов с несколькими формами, которые все запрашивают выполнение одного и того же файла email_script.php, и я хочу знать, как каждая отдельная страница выполняет сбор заказов. Благодаря

Так что я редактировал код и здесь:

<form name="First_Name" method="post" action="email_script.php"> 
<input type="hidden" name="First Name"> 
<input type="text" name="name" placeholder="Ваше Имя"> 
<input type="text" name="telephone" placeholder="Ваш Телефон"> 
<input type="submit" value="ОСТАВИТЬ ЗАЯВКУ"> 
</form> 

PHP код:

<?php 
if(isset($_POST["name"]) and isset($_POST["telephone"])){ 
    $message = $_POST["name"]."<br>"; //use <br> and set the email headers to: Content-type: text/html 
    $message .= $_POST["telephone"]."<br>"; 
    $message .= key($_POST); //form name 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    mail("[email protected]", "Заказ Парня", $message, $headers); 
} 
?> 

А вот то, что я получил в результате: http://postimg.org/image/4gj5gh22p/ К сожалению, я до сих пор получил «имя "вместо" First_Name "

+0

Чтобы получить имя формы, используйте '$ formName = key ($ _ POST);'. Не могли бы вы пояснить: *** «Как я могу присвоить значения имени, телефона, имени формы в разных строках тела электронной почты?«*** Можете ли вы привести пример того, что вам нужно, –

+0

Прочтите разъясненное сообщение –

+0

Что у вас есть и что вам нужно - это то же самое. –

ответ

1

Получение формы name формы невозможен, поскольку она не отправляется как часть данных POST.

Альтернативой из this post предлагает добавить скрытый элемент ввода внутри формы с тем же именем, что и форма:

<form name="First Form" method="post" action="email_script.php"> 
<input type="hidden" name="First Form"> 
<input type="text" name="name" placeholder="Ваше Имя"> 
<input type="text" name="telephone" placeholder="Ваш Телефон"> 
<input type="submit" value="ОСТАВИТЬ ЗАЯВКУ"> 
</form> 

Вы можете использовать $_POST['First Form'];, чтобы получить имя.

+0

*** «Получение имени формы невозможно, поскольку оно не отправляется как часть данных POST». *** 'print_r ($ _POST); 'Output:' Array ([First_Form] => [name] => jack [phone] => 123456) ' –

+0

@PedroLobito _" Имя формы не отправляется на сервер как часть данных POST . "_ - http://stackoverflow.com/a/846025/5798798 _" Нет, атрибут имени формы никогда не установлен для отправки на сервер как часть данных POST. "_ - http://stackoverflow.com/a/4003336/5798798 –

+0

Неверно, '$ formName = key ($ _ POST);' –

0
<form name="First Form" method="post" action="emailscript.php"> 
<input type="hidden" name="form" value="First Form"> 
<input type="text" name="name" placeholder="Ваше Имя"> 
<input type="text" name="telephone" placeholder="Ваш Телефон"> 
<input type="submit" value="ОСТАВИТЬ ЗАЯВКУ"> 
</form> 

и использовать его с помощью

$message .= $POST['form'] 
0

Итак, наконец, у меня есть решение (Мой брат помог мне с этим).

вот мой HTML код:

<form name="First_Name" method="post" action="email_script.php"> 
<input type="hidden" name="form_name" value="First Name"> 
<input type="text" name="name" placeholder="Ваше Имя"> 
<input type="text" name="telephone" placeholder="Ваш Телефон"> 
<input type="submit" value="ОСТАВИТЬ ЗАЯВКУ"> 
</form> 

вот мой PHP код:

<?php 
if(isset($_POST["name"]) and isset($_POST["telephone"])){ 
$message = $_POST["name"]."<br>"; //use <br> and set the email headers to: Content-type: text/html 
$message .= $_POST["telephone"]."<br>"; 
$message .= $_POST["form_name"]."<br>"; 
//$message .= key($_POST); //form name 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
mail("[email protected]", "Заказ Парня", $message, $headers); 
} 
?> 

Он работает через скрытый вход и привел электронная почта выглядит следующим образом:


Назар
+380953648591
Имя: