所以我现在正在一个网站上工作,我希望客户能够通过联系表单直接发送到我的电子邮件。我现在正在通过wamp服务器3运行所有文件,现在我正在测试邮件功能是否与侦听端口25的Test Mail Server一起使用。
这是表单的PHP代码:
<?php
$myemail = "test.xample@xample.com";
if (isset($_POST['email']))
{
echo "Thank you for contacting us!";
/* Set e-mail recipient */
/* Check all form inputs using check_input function */
$name = ($_POST['name']);
$subject = ($_POST['subject']);
$email = ($_POST['email']);
$message = ($_POST['message']);
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
}
if ($name = "")
{
show_error("You need to write your name...");
}
if ($email = "")
{
show_error("You need to enter a email...");
}
if ($message = "")
{
show_error("A message is required if you wish to have out help...");
}
/* Let's prepare the message for the e-mail */
$mail = "Hello!
Your contact form has been submitted by:
Name: $yourname
E-mail: $email
Message:
$Message
End of message
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Functions we used */
function check_input($data, $problem='error')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Please correct the following error:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
}
?>
这是表单的HTML部分:
<form class="mt-5 ml-5 mr-5" method="_POST" action="handler.php" id="reused_form">
<p id="contactForm" class="h4 text-center mt-5"><strong>Kontakta oss</strong></p>
<!-- input text(Name) -->
<div class="md-form">
<i class="fa fa-user prefix">*</i>
<input type="text" name="name" id="name" class="form-control">
<label for="name">Ditt namn</label>
</div>
<!-- input email -->
<div class="md-form mt-5">
<i class="fa fa-envelope prefix">*</i>
<input type="email" name="email" id="email" class="form-control validate">
<label for="email" data-error="Fel" data-success="Rätt">Din email</label>
</div>
<div class="md-form mt-5">
<i class="fa fa-user prefix"></i>
<input type="text" id="subject" class="form-control">
<label for="subject">Ämne</label>
</div>
<!-- input message -->
<div class="md-form mt-5">
<i class="fa fa-pencil prefix">*</i>
<textarea type="text" name="message" id="message" maxlength="5000" class="form-control md-textarea" rows="3"></textarea>
<label for="textareaPrefix">Meddelande</label>
</div>
<div class="text-center mt-4 mb-4">
<button class="btn danger-color" type="submit">Skicka</button>
</div>
</form>
当我按下提交按钮时,唯一发生的事情就是将其添加到URL:
我对此测试的输入:
/handler.php?name=asd&email=asd%40ad&message=asd
所以它只是在URL中添加输入的值......
我需要帮助的是如何解决这个问题并能够发送邮件。如果有人可以提供帮助,我会很高兴。
答案 0 :(得分:1)
Yo正在使用method=_POST
这是不正确的方法,所以默认情况下,表单使用GET method
来发送数据。
请尝试使用method=POST
代替method=_POST
,它会完美运作。
<form method="POST">
.........
</form>