PHP联系表格来自管理员的电子邮件

时间:2015-08-21 03:41:41

标签: php

我使用this tutorial创建了一个PHP联系表单,但效果很好,但我遇到了一个潜在的安全风险/不便之处。我收到的每封电子邮件都来自我的管理员登录名。

我添加$headers作为this thread指示,但无济于事。

我当前的PHP:

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $from = $_POST['email']; 
    $to = 'myClientsEmail@gmail.com';
    $subject = 'Estimate Contact Form';

    $headers = "From: $email\r\n";                 /* I added this */
    $headers .= "Reply-To: $email\r\n";            /*     and this */

    $body = "From: $name\n Phone: $phone\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit']) {
        if (mail ($to, $subject, $body, $from, $headers)) { 
            echo '<p>Your message has been sent!</p>';
        } else { 
            echo '<p>Something went wrong, go back and try again!</p>'; 
        }
    }
?>

我到底错过了什么?任何帮助是极大的赞赏。谢谢!

1 个答案:

答案 0 :(得分:4)

您的mail()函数调用有一个额外的参数。正确的mail()电话应该是:

if (mail($to, $subject,$body,$headers)) {
  ....
}

所以只需删除$from部分就可以了。