当谈到php时,我是一个完全的新手,我得到了下面的php,它会向我发送"消息"并向用户发送自动响应,以及将他们重定向到"谢谢"页面。我遇到的问题是它不会返回他们在表格上填写的用户名,有什么想法吗?
<?php
$youremail = "ally.baird81@gmail.com"; //this is where the email will be sent to
@extract($_POST);$name = filter_var($name, FILTER_SANITIZE_STRING);
$message = filter_var($message, FILTER_SANITIZE_STRING);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
if (mail($youremail, 'Message from website.', $message, "From: Krew Kut Hair<$email>")) {
$autoreply = "Thank you for enquiring at Krew Kut Hair, we will be in contact shortly";
$subject = "Thank you for your enquiry!";
mail($email, $subject, $autoreply, "From: Krew Kut Hair<$email>");
}
} else {
echo "Please enter a valid email address";
}
header("Location: thanks.html");
假设名称在其中一个表单字段中,您应该能够检索到它。正如Barmar所说,您所要做的就是在正文或消息中的某个位置使用它。如果你不在某个地方回声,你怎么能知道这个名字不见了。试试这个:
$autoreply = "Thank you ".$name." for ...
如果名称仍然"丢失"-您可以尝试查看所有的post变量,如下所示:
echo "<PRE>Post Vars'n"; print_r($_POST);
如果您有一个名为"name"的输入,如:
<input type="text" name="name" value="" />
检查它是否包含数据,例如:
echo 'The value of name is ['.$name.']';
如果它包含数据,您可以在消息中使用$name
变量。如果不是这样,你的HTML表单可能有问题。
<?php
$youremail = "ally.baird81@gmail.com"; //this is where the email will be sent to
@extract($_POST);$name = filter_var($name, FILTER_SANITIZE_STRING);
$message = filter_var($message, FILTER_SANITIZE_STRING);
$content = "<strong>Name:<strong><br />".$name."<br />";
$content .= "<strong>Message:<strong><br />".$message."<br />";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
if (mail($youremail, 'Message from website.<br />', $content, "From: Krew Kut Hair<$email>")) {
$autoreply = "Hi ".$name.". Thank you for enquiring at Krew Kut Hair, we will be in contact shortly";
$subject = "Thank you for your enquiry!";
mail($email, $subject, $autoreply, "From: Krew Kut Hair<$email>");
}
} else {
echo "Please enter a valid email address";
}
header("Location: thanks.html");
还请阅读对您问题的评论。我强烈建议您找到其他方法,而不是使用extract()
。