【问题标题】:$name, $email, and $message variables show as text in email [duplicate]$name、$email 和 $message 变量在电子邮件中显示为文本 [重复]
【发布时间】:2017-01-20 13:00:39
【问题描述】:

我对 PHP 知之甚少,并试图为我正在帮助开发的网站制作联系表格。 PHP 表单发送电子邮件,但无论出于何种原因,都不会将变量替换为联系人页面中的输入字段。该网站是SWFDA。这是我创建的 PHP 表单:

<?php

if(!isset($_POST['submit'])) {

$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];

$email_from = 'myemail@website.com';

$email_to = 'myemail@website.com';

$email_subject = 'Contact Form Submission (Under testing)';
$email_body = 'You have received a form submission from $name .
Email: $visitor_email .
Here is the message: $message'.;

mail($email_to,$email_subject,$email_body);

header('Location: contact-sent.html');

}

?>

这是表单的 HTML。

<form method="post" action="contactForm.php">
    <div class="row uniform">
        <div class="6u 12u$(large) 6u(medium) 12u$(xsmall)">
            <label for="name">Name</label>
            <input type="text" name="name" id="name" required/>
        </div>
        <div class="6u$ 12u$(large) 6u$(medium) 12u$(xsmall)">
            <label for="email">Email</label>
            <input type="email" name="email" id="email" required/>
        </div>
        <div class="12u$">
            <label for="message">Message</label>
            <textarea name="message" id="message" rows="5" required></textarea>
        </div>
        <div class="12u$">
            <ul class="actions">
                <li><input type="submit" value="Send Message" class="special" /></li>
                <li><input type="reset" value="Reset" /></li>
            </ul>
        </div>
    </div>
</form>

收到的邮件如下:

您收到了来自 $name 的表单提交。
电子邮件:$visitor_email。
这是消息:$message。

【问题讨论】:

  • 您只需要将单引号切换为双引号!只需阅读此SO question。所以你的邮件正文应该有双引号
  • 我试试看。更新:它奏效了。谢谢!

标签: php email variables contact


【解决方案1】:

这样试试吧,

$email_body = 'You have received a form submission from '.$name.'
Email: '.$visitor_email.'
Here is the message: '.$message;

或使用双引号“”

$email_body = "You have received a form submission from $name
Email: $visitor_email
Here is the message: $message";

【讨论】:

    【解决方案2】:

    只需将$email_body 中的单引号(') 更改为双引号("),您的电子邮件应该如下所示:

    <?php
    
    if(!isset($_POST['submit'])) {
    
    $name = $_POST['name'];
    $visitor_email = $_POST['email'];
    $message = $_POST['message'];
    
    $email_from = 'myemail@website.com';
    
    $email_to = 'myemail@website.com';
    
    $email_subject = 'Contact Form Submission (Under testing)';
    $email_body = "You have received a form submission from $name .
    Email: $visitor_email .
    Here is the message: $message".;
    
    mail($email_to,$email_subject,$email_body);
    
    header("Location: contact-sent.html");
    
    }
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 2020-12-17
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多