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 или что-то еще?
Как вы можете видеть, 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"> </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']
,