发送没有姓名、电子邮件和消息的电子邮件的联系表

Contact form sending emails without name, email and message

我正在构建的联系表单有问题,因为它发送的消息没有发件人信息(姓名和电子邮件),也没有消息。我需要那个。我尝试了我发现的另一个 post 中的 var_dump,但没有用。

HTML

<form action="form_process.php" class="contact_form" method= "post" onsubmit>
<ul>
 <li><label for="name">name:</label><input type="text" required /></li>
<li><label for="email">email:</label><input type="email" name="email" required /></li>
<li><label for="message">message:</label><textarea name="message" cols="40" rows="6" required ></textarea></li>
<li><button class="submit" type="submit">Enviar</button></li>
</ul>
</form>
</div>

PHP

<?php

$name = var_dump($_POST['name']);
$email = var_dump($_POST['email']);
$message = var_dump($_POST['message']);
$to = "mmechenique@gmail.com";
$subject = "Nuevo mensaje formulario de contacto";

mail ($to, $subject, $message, "From: " . $name);
echo "Tu mensaje ha sido enviado, muchas gracias!";

?>

试试这样使用您的表单:

<form action="form_process.php" class="contact_form" method= "post">
<ul>
 <li><label for="name">name:</label><input type="text" name="name" required /></li>
<li><label for="email">email:</label><input type="email" name="email" required /></li>
<li><label for="message">message:</label><textarea name="message" cols="40" rows="6" required ></textarea></li>
<li><button class="submit" type="submit">Enviar</button></li>
</ul>
</form>
</div>

PHP:

<?php

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $to = "mmechenique@gmail.com";
    $subject = "Nuevo mensaje formulario de contacto";

    mail ($to, $subject, $message, "From: " . $name);
    echo "Tu mensaje ha sido enviado, muchas gracias!";

  ?>

您的 HTML 应如下所示:

<form action="form_process.php" class="contact_form" method="post">
    <ul>
        <li>
            <label for="name">name:</label>
            <input type="text" name="name" required />
        </li>
        <li>
            <label for="email">email:</label>
            <input type="email" name="email" required />
        </li>
        <li>
            <label for="message">message:</label>
            <textarea name="message" cols="40" rows="6" required ></textarea>
        </li>
        <li>
            <button class="submit" type="submit">Enviar</button>
        </li>
    </ul>
</form>

您的 PHP 应如下所示:

<?php

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $to = "mmechenique@gmail.com";
    $subject = "Nuevo mensaje formulario de contacto";
    $headers  = "From: Enter something here < email@mail.com >\r\n";
    $headers .= "X-Sender: Enter something here < email@mail.com >\r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion();
    $headers .= "X-Priority: 1\r\n"; // Urgent message!
    $headers .= "Return-Path: email@mail.com\r\n"; // Return path for errors
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";

    mail ($to, $subject, $message, $headers);
    echo "Tu mensaje ha sido enviado, muchas gracias!";

?>

我不应该这么轻易地给出答案,因为您应该在发布问题之前进行研究,但这到底是怎么回事。现在您知道下次在发布您的问题之前做一些研究。

编辑:

<?php
    $headers  = "From: Enter your name < myemail@mail.com >\n"; //If you are the one sending the email enter your name here
    OR
    $headers  = "From: ".$name." < ".$email." >\n"; // If you are the one the email is being sent to then try this header

    $headers .= "X-Sender: Enter your name < myemail@mail.com >\n"; //Same logic applies for this guy
    OR
    $headers .= "X-Sender: ".$name." < ".$email." >\n"; //Same logic applies for this guy
?>