PHP не работает правильно?

У меня есть этот код PHP здесь, который должен отправить имена, электронную почту и комментарий пользователя на электронную почту. Хотя, похоже, больше не работает. Я использовал этот код в качестве основы для моей контактной формы в течение многих лет. Теперь они просто не работают.

Your message is being sent...
<?php


$emailSubject = 'A message from: '.$_POST['name'] .' '.'-'.' ' .'Email Adress: ' .$_POST['email'];
$webMaster = 'webmaster@gmail.com';


$name1 = $_POST['name1'];
$name2 = $_POST['name2'];
$email = $_POST['email'];
$sub = $_POST['sub'];
$comments = $_POST['comments'];

$body = <<<EOD
<br><hr><br>
<b>First Name: $name1 </b><br> 
<b>Last Name: $name2 </b><br>
Email: $email <br>
Subject: $sub <br>
Comments: $comments <br>
EOD;

$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body,
$headers);

$theResults = <<<EOD
<html>
<head>
<title>Your message is being sent...</title>
<meta http-equiv="refresh" content="4;URL=http://www.google.co.uk">
<style type="text/css">
<!--

body {
background-color: #25EA5F;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 20px;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #30489E;
text-decoration: none;
padding-top: 350px;
margin-left: 550px;
width: 800px;
}
-->
</style>
</head>

</html>
</body>
EOD;
echo "$theResults";
?>

Это очень смущает и раздражает. Сообщения, отправленные в Hotmail, даже не появляются, поэтому вынуждают клиентов получать новое письмо из-за него, а при отправке в Google... Он не принимает $_POST или что-то еще?

Это то, что происходит, когда я отправляю сообщение в Google

Как вы можете видеть, SCRIPT работает, просто с G-mail не появляется никакой важной информации, а на Hotmail сообщения даже не отправляются / не появляются!! Спасибо за вашу помощь. Вот HTML, если это необходимо.

<div class="contactwrap">
<div class="ContactInner">
<div class="ContactTitle">CONTACT US</div>

<form action="Scripts/contact.php" method="post">
  <div class="containboxes">

<span id="sprytextfield1">
<label for="text1"></label>
<input name="text1" type="text" class="inputstyle" id="name1" value="First Name"     size="5" maxlength="5" />
<span class="textfieldRequiredMsg"></span></span>

<span id="sprytextfield2">
<label for="text2"></label>
<input name="text2" type="text" class="inputright" id="name2" value="Last Name" />
<span class="textfieldRequiredMsg"></span></span>

<span id="sprytextfield3">
<label for="text3"></label>
<input name="text3" type="text" class="inputstyleBelow" id="email" value="E-mail Address" />
<span class="textfieldRequiredMsg"></span><span     class="textfieldInvalidFormatMsg">Invalid format.</span></span>

<span id="sprytextfield4">
<label for="text4"></label>
<input name="text4" type="text" class="inputrightBelow" id="sub" value="Message Subject" />
<span class="textfieldRequiredMsg"></span></span>

<span id="sprytextarea1">
<label for="textarea1"></label>
<textarea name="textarea1" cols="45" rows="5" class="inputstyleMsg" id="comments">Message Here</textarea>
<span id="countsprytextarea1">&nbsp;</span><span class="textareaRequiredMsg"></span>    <span class="textareaMinCharsMsg">Minimum number of characters not met.</span><span     class="textareaMaxCharsMsg">Exceeded maximum number of characters.</span></span>


<div class="sendbtn"><input name="Submit message" type="submit" class="submitmail" value="" /></div>
</div>
</form>

</div>
</div>

1 ответ

Решение

Ваши поля формы неверны. id НЕ используется при отправке формы. name Параметр Поскольку вы назвали свои поля формы как text1, text2и т.д... но ищем name1 и аналогично в вашем PHP-коде вы пытаетесь получить несуществующие поля.

например, у вас есть:

<input name="text1" type="text" class="inputstyle" id="name1" value="First Name"     size="5" maxlength="5" />
$_POST['name1'];

нет, это поле на самом деле будет $_POST['text1'],

Другие вопросы по тегам