Email 回复标题未选取php变量
我正在创建一个页面,该页面从邮件中的联系人表单发送响应,但Email 回复标题未选取php变量,email,header,php,Email,Header,Php,我正在创建一个页面,该页面从邮件中的联系人表单发送响应,但回复到不起作用(我使用的变量有值,但未添加到标题中) 这是我的密码: <?php //$uname=$_REQUEST['uname']; if(isset($_REQUEST['name'])) { $name=$_REQUEST['name']; } if(isset($_REQUEST['email'])) { $email=$_REQUEST['email']; } if(isset($_REQU
回复到
不起作用(我使用的变量有值,但未添加到标题中)
这是我的密码:
<?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没有打印任何类似于我面临的回复案例的内容
请帮我一点忙。提前感谢。检查您是否启用了php警告和通知。当您回显$name、$email等时,您正在使用其后的标题进行重定向。如果您的php通知等没有打开,您的头重定向将失败,因为已经回显了一些内容,您将不知道您有无效的输入。这是您不应该在逻辑期间回显内容的部分原因,但应该在以后存储并输出值。实际上上面的代码有一点错误。比较时,我错误地添加了
=
,而不是=
这一行:
if($name=="" || $email="" || $phone="" || $message="")
应改为:
if($name=="" || $email=="" || $phone=="" || $message=="")
因为=
用于等式,而不是用于比较的条件=
在问题中修复了它这不会解决您的问题,但是您可以通过简单地使用
if(isset($\u POST['submit'])
并将提交按钮命名为“submit”来避免所有这些if-isset
然后把变量放在下面,我想在你开始写东西到输出后,你不能在头上设置任何东西。您的echo
会写入输出。所以把标题设置放在前面。哦,好主意@Fred ii-我会用它。你的回复行在冒号和电子邮件地址开头之间缺少空格。@SaurabhSharma Plus,它甚至可以部分解决你的问题。您甚至可以使用此代码段获取所有POST值=>foreach($\u POST as$key=>$value){$message.=$key.:“$value.\n”;}
Yup@Zak我知道,我只是用它来测试:)