у меня есть форма, после заполнения которой данные отправляются по почте. только вот данные вытащить не получается.
как можно исправить ситуацию?
index.html:
<form name="form1" action="send.php" method="post">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="name">
Name</label>
<input type="text" class="form-control" id="name" placeholder="Enter name" required="required" />
</div>
<div class="form-group">
<label for="email">
Email Address</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span>
</span>
<input type="email" class="form-control" id="email" placeholder="Enter email" required="required" /></div>
</div>
<div class="form-group">
<label for="subject">
Subject</label>
<select id="subject" name="subject" class="form-control" required="required">
<option value="na" selected="">Choose One:</option>
<option value="service">General Customer Service</option>
<option value="suggestions">Suggestions</option>
<option value="product">Product Support</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="name">
Message</label>
<textarea name="message" id="message" class="form-control" rows="9" cols="25" required="required"
placeholder="Message"></textarea>
</div>
</div>
<div class="col-md-12">
<button type="submit" class="btn btn-primary pull-right" id="btnContactUs">
Send Message</button>
</div>
</div>
</form>
send.php:
<?php
switch ($_POST['form1']) {
default:
{
$name=$_POST['name'];
$subject=$_POST['subject'];
$email=$_POST['email'];
$mes=$_POST['message'];
}
break;
}
$to="mymail";
$from_email="mail";
$tema="zayavka";
$pismo="Новый пользователь с именем $name отправил сообщение на тему $subject!\r\n
Вот его сообщение: $mes.<br>\r\n
E-mail: $email";
mail_utf8($to,'novaya zayavka',$from_email, $tema, $pismo);
function mail_utf8($to, $from_user, $from_email,$tema, $pismo)
{
$from_user = "=?UTF-8?B?".base64_encode($from_user)."?=";
$tema = "=?UTF-8?B?".base64_encode($tema)."?=";
$headers = "From: $from_user <$from_email>\r\n".
"MIME-Version: 1.0"."\r\n".
'Content-type: text/html; charset="UTF-8"'.'\r\n';
return mail($to, $tema, $pismo, $headers);
}
if($realname)
mail_utf8($to,$from_email, $tema, $pismo);
?>
Во первых, в вашем массиве $_POST просто не должно быть ключа form1. То что вы дали название своей форме form1 никак не влияет на структуру массива отправляемых данных. Во вторых, вы полям формы назначили ID'ы, вместо имен. Имена становятся ключами массива POST, а не ID'ы. То есть атрибут name нужно было назначать в полях, а не в форме. Как-то вот так
<input type="text" class="form-control" name="name" placeholder="Enter name" required="required" />
Если вы хотите чтобы в вашем массиве $_POST был еще один массив form1 а в нем были элементы (например email, name и так далее), и чтобы вы могли обращаться к ним как-то так
$_POST['form1']['name']
то вам нужно называть свои поля как-то вот так
<input type="text" class="form-control" name="form1[name]" placeholder="Enter name" required="required" />
Если же вам это не нужно, а нужно просто передать какую-то метку формы отдельным значением, то можно использовать скрытое поле
<input type="hidden" name="form1" value="1" />
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости