联系表格 - 用户名和电子邮件显示为"未知"



抱歉,我知道这个问题已经在这个网站上被问过很多次了,但是我试图实现其他人的建议,但没有运气。

和其他人一样,我有一个非常简单的联系表格,为了这个例子,我已经将PHP编码剥离到最低限度,所以它更容易看。

从某种意义上说,它工作正常,因为我在 GMail 中收到带有消息的电子邮件,但是用户填写的电子邮件和姓名从未显示。

  • 我试过去掉"\r",只留下"\
  • 其他方法要么导致电子邮件进入垃圾邮件,要么相同(未知(。

      <form action="contact.php" method="post">
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="email">Email address</label>
                                        <input type="email" class="form-control" id="email" placeholder="Enter email">
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="name">Name</label>
                                        <input type="text" class="form-control" id="name" placeholder="Name">
                                    </div>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="message">Message</label>
                                <textarea name="message" id="message" class="form-control" rows="3"></textarea>
                            </div>
                            <button type="submit" class="btn tf-btn btn-default">Submit</button>
                        </form>
    

PHP代码

<?php
$to = 'mymail@gmail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = 'RE: RMW interest';
$headers .= 'From:' .$name. " ".'<'.$email.'>'."rn";
$headers .= 'Reply-To: ' . $email . "rn";
mail($to, $subject, $message, $headers);
echo "Thank you for contacting us, we will respond shortly!";
?>

如果有人能对这个特殊情况有所了解,我将不胜感激。

非常感谢

HTML 代码中的问题不在 PHP 中,

您忘记命名输入,因此当您致电联系人print_r().php文件时,您将只找到消息。

联系中.php当您写信print_r($_POST);输出将是

Array ( [message] => message) 

现在您知道了问题所在,因此要命名所有输入。

<input name="email" type="email" class="form-control" id="email" placeholder="Enter email">
...
<input name="name" type="text" class="form-control" id="name" placeholder="Name">
...
<button name="submit" type="submit" class="btn tf-btn btn-default">Submit</button>

所以现在的输出是

Array ( [email] => test@test.test [name] => test [message] => test message [submit] => ) 

在这里,我命名了按钮,因为您可以检查按钮是否单击了发送消息。

if(isset($_POST['submit'])){
    //your code here
}

希望这有帮助

最新更新