代码之家  ›  专栏  ›  技术社区  ›  dlee23

联系方式-用户名和电子邮件以“未知”形式发送

  •  2
  • dlee23  · 技术社区  · 7 年前

    很抱歉,我知道这个问题已经在这个网站上被问了好几次了,但是我已经尝试去实现其他人的建议,但没有成功。

    和其他人一样,我有一个非常简单的联系人表单,为了这个示例,我将PHP编码剥离到了最低限度,因此更容易查看。

    从我在GMail中收到带有消息的电子邮件的意义上来说,它工作得很好,但是用户填写的电子邮件和姓名从未显示。

    • 我已尝试将“\r”取出,然后离开“\n”\
    • 其他方法要么导致电子邮件成为垃圾邮件,要么同样(以未知方式发送)。

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

    如果有人能解释一下这个案子,我将不胜感激。

    非常感谢

    1 回复  |  直到 7 年前
        1
  •  3
  •   Mohammed Alhanafi    7 年前

    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
    }