donglaohua1671
donglaohua1671
2015-02-26 07:41
浏览 38
已采纳

PHP邮件程序脚本不在电子邮件中打印变量

The issue I am having is in the message portion of the email. The email sends just fine, the outline is there but no name email or message is printed from the variable. I can't seem to see what the issue is. Any help is appreciated.

<?php session_start();
$name=$_POST['name'];
$email=$_POST['email'];
$text=$_POST['text'];
$to= 'noreply@noreply.com';
$subject = 'Request';
$message='Hello, my name is:' . $name . "
" . 'My Email is: ' . $email . "
" . 'My Message is: '. $text;
$headers = 'From: Request' . "
" .
    'Reply-To: noreply@noreply.com' . "
" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
echo 'Mail Sent';
?>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • donglefu6195
    donglefu6195 2015-02-26 07:45
    已采纳

    From the comment you are passing the data as query string not as payload in the POST. SO change

    $name=$_POST['name'];
    $email=$_POST['email'];
    $text=$_POST['text'];
    

    to

    $name=$_GET['name'];
    $email=$_GET['email'];
    $text=$_GET['text'];
    

    And should work !

    点赞 评论
  • dongzhan5943
    dongzhan5943 2015-02-26 07:46

    You sent form using GET method, data are in $_GET:

    <?php 
    
    session_start();
    
    $name  = $_GET['name'];   // here
    $email = $_GET['email'];  // here
    $text  = $_GET['text'];   // here
    $to    = 'noreply@noreply.com';
    $subject = 'Request';
    $message='Hello, my name is:' . $name . "
    " . 'My Email is: ' . $email . "
    " . 'My Message is: '. $text;
    $headers = 'From: Request' . "
    " .
        'Reply-To: noreply@noreply.com' . "
    " .
        'X-Mailer: PHP/' . phpversion();
    
    mail($to, $subject, $message, $headers);
    echo 'Mail Sent';
    ?>
    

    To use your current script version, just change method attribute in form to post, like <form method=post ...>

    点赞 评论

相关推荐