1

我正在创建一个页面,该页面从邮件中的联系表单发送响应但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 没有打印任何类似于我在回复时面临的相同情况的内容。

请帮我解决这个问题。提前致谢。

4

2 回答 2

0

实际上上面的代码有一个小错误。我错误地添加=而不是==比较。

这一行:

if($name=="" || $email="" || $phone="" || $message="")

应该读作:

if($name=="" || $email=="" || $phone=="" || $message=="")

因为=是方程而不是比较的条件==

在问题中修复了它

于 2013-08-19T18:49:23.083 回答
0

检查您是否启用了 php 警告和通知。当您回显 $name、$email 等时,您正在使用标头进行重定向。如果您的 php 通知等未打开,您的标头重定向将由于已经回显某些内容而失败,并且您不会知道您的输入无效。这是您不应该在逻辑过程中回显事物的部分原因,而应该在以后存储和输出值。

于 2013-08-19T18:32:45.903 回答