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

PHP の警告と通知が有効になっていることを確認します。$name、$email などをエコーアウトするときは、その後ヘッダーを使用してリダイレクトを行っています。PHP の通知などがオンになっていない場合、既に何かをエコーし​​ているためにヘッダーのリダイレクトが失敗し、無効な入力があったことを認識できません。これは、ロジック中に物事をエコーアウトしてはならず、後で値を保存して出力する必要がある理由の一部です。

于 2013-08-19T18:32:45.903 に答える