PHP не смотрит на id
элемента, вместо этого, когда отправляется метод POST
или GET
, он смотрит на атрибут name
. В коде, который вы написали, у вас есть два элемента ввода, textarea
и radio input
с тем же именем, "message". Когда оба отправляются, переменная $_POST
становится массивом и использует атрибут name
в качестве индекса для переданного значения, а массивы PHP не могут иметь повторяющиеся индексы, поэтому для преодоления этой проблемы вы переименовываете один. Для вашего radio input
я предлагаю установить атрибут name
на type
.
<?php
$send = "matt@explosivetitles.com";
$subject = "Civitas Message";
$details = array (
"first" => @$_POST["first"],
"surname" => @$_POST["surname"],
"email" => @$_POST["email"],
"message" => @$_POST["message"]
);
foreach ($details as $index => $value) {
$details[$index] = trim ( stripslashes ($value));
}
if (@$_POST["type"] == "register") {
// Whatever happens when they select "register"
} else if (@$_POST["type"] == "msgs") {
$header = "From 'Civitas website' <info@civitas.com>";
$body = $details["first"] . " " . $details["surname"] . " "
. "<" . $details["email"] . ">"
. "Message: \n"
. $details["message"];
$mail = mail ($send, $subject, $body, $header);
if ($mail) {
return true;
} else {
return false;
}
}
?>
Кроме того, ваш код причиняет мне боль, поэтому я переписал его.