问题
在网站上,当我按提交电子邮件时,它现在正确地完成所有事情,但我没有收到电子邮件,有人请帮忙吗?
PHP
<?php
$first_name = $_POST ['first_name'];
$last_name = $_POST ['last_name'];
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From:" . $first_name . $last_name;
$to = "Relentile@gmail.com";
$subject = "New Message";
print_r($_POST);
mail ($to, $subject, $message, $headers);
echo "Your Message has been sent";
?>
HTML
<form action="contact.php" name="contact_form" method="post">
<p>
First name:
<input name="first_name" type="text"/>
</p>
<p>
Last name:
<input name="last_name" type="text"/>
</p>
<p>
<br>
E-Mail:
<input name="email" type="text"/>
</p>
<br>
<p>Type your enquiry</p>
<p><textarea name"message"></textarea></p>
<p>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="Reset">
</p>
</form>
旧错误消息+正在发送的数据(第二张图片)
答案 0 :(得分:0)
从方法post
设置如下。
<form action="contact.php" name="contact_form" method="post">
在地址栏中,您的数据默认发送get
方法。但是您在php文件中使用$_POST[]
。所以您没有获得值。
同样在contact.php
中使用$headers
,如下所示:
$headers = "From:" . $first_name . $last_name;
并且
mail ($to, $subject, $message,$headers);
也是$subject
变量末尾的分号。
$subject = "New Message";
并做以下......
$first_name = test_input($_POST ['first_name']);
$last_name = test_input($_POST ['last_name']);
$email = test_input($_POST['email']);
$message = test_input($_POST['message']);
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
其中
1.从用户输入数据中删除不必要的字符(额外的空格,制表符,换行符)(使用PHP trim()函数)
2.从用户输入数据中删除反斜杠()(使用PHP stripslashes()函数)
答案 1 :(得分:0)
更改您的PHP
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From: " . $email;
$to = "relentile@gmail.com";
$subject = "New Message";
print_r($_POST);
mail($to, $subject, $message, $headers);
echo "Your Message has been sent";
现在应该可行了。 标题必须采用适当的格式(间距)。 &#34;从&#34;标题包含发件人的电子邮件地址。 在PHP中访问数组时,不要使用空格:wrong = $ array [&#34; blah&#34;],good = $ array [&#34; blah&#34;]。这同样适用于功能。