【发布时间】:2013-08-20 02:49:23
【问题描述】:
我正在创建一个页面,该页面在邮件中发送来自联系表单的响应,但 reply-to 不起作用(我使用的变量具有值,但未添加到标题中)
这是我的代码:
<?php
//$uname=$_REQUEST['uname'];
if(isset($_REQUEST['name']))
{
$name=$_REQUEST['name'];
}
if(isset($_REQUEST['email']))
{
$email=$_REQUEST['email'];
}
if(isset($_REQUEST['phone']))
{
$phone=$_REQUEST['phone'];
}
if(isset($_REQUEST['message']))
{
$message=$_REQUEST['message'];
}
// TESTING IF VARIABLES HAVE VALUES
echo "$name $email $phone $message";
// RESULT: TRUE TILL HERE
if($name=="" || $email=="" || $phone=="" || $message=="")
{
header("location:../?inst=invalid");
}
else
{
// ---------------- SEND MAIL FORM ----------------
// send e-mail to ...
$to="mail@example.com";
// Your subject
$subject="$name Contacted you via Contact Form";
// From
$headers = "From: ME <no-reply@example.com>\r\n";
$headers .= 'Reply-To:' . $email . "\r\n";
$headers .= "Return-Path: info@example.com\r\n";
$headers .= "X-Mailer: PHP\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
print $message;
// send email
$sentmail = mail($to,$subject,$message,$headers);
//$sentmail = mail($to1,$subject,$message,$header);
}
// if your email succesfully sent
if($sentmail){
echo "Mail Sent.";
}
else {
header("location:../landing/?status=verification-pending");
}
?>
现在,当我在我的 gmail 中检查标题时,$email 的值不会出现在标题信息中,也没有收到任何消息。我得到的只是一条空白消息,或者可能是 $message 没有打印任何类似于我在回复时遇到的情况。
请帮帮我。提前致谢。
【问题讨论】:
-
这不会解决您的问题,但您可以避免使用所有这些
if isset,只需使用if(isset($_POST['submit']))并将您的提交按钮命名为“提交”并将您的变量放在其下方。跨度> -
我认为在您开始向输出写入内容后,您无法为标题设置任何内容。而您的
echo确实会写入输出。所以把标题设置放在前面。 -
哦好主意@Fred-ii-我会用它
-
您的回复行在冒号和电子邮件地址的开头之间缺少一个空格。
-
@SaurabhSharma Plus,它甚至可以部分解决您的问题。你甚至可以使用这个 sn-p 来获取你所有的 POST 值 =>
foreach ($_POST as $key=>$value) { $message.=$key.": " . $value . "\n"; }