添加额外的INPUT来联系表单电子邮件PHP


Add extra INPUT to contact form email PHP

我正在使用我找到的一些php从我的网站发送联系表格。

HTML如下所示:

<div id="wrap">
    <div id='form_wrap'>
        <form id="contact-form" action="javascript:alert('success!');">
    <p id="formstatus"></p>
            <input type="text" name="name" value="" id="name" placeholder="Voornaam" required/>
            <input type="text" name="email" value="" id="email" placeholder="E-mail adres" required/>
            <textarea  name="message" value="Your Message" id="message" placeholder="Uw vraag of projectomschrijving" required></textarea>
            <input type="submit" name ="submit" value="Offerte aanvragen" />
        </form>
    </div>
</div>

PHP看起来像这样:

<?php
define("WEBMASTER_EMAIL", 'your@emailadress.com');
error_reporting (E_ALL ^ E_NOTICE);
function ValidateEmail($email)
{
    $regex = '/([a-z0-9_.-]+)'. # name
    '@'. # at
    '([a-z0-9.-]+){2,255}'. # domain & possibly subdomains
    '.'. # period
    '([a-z]+){2,10}/i'; # domain extension 
    if($email == '') 
        return false;
    else
        $eregi = preg_replace($regex, '', $email);
    return empty($eregi) ? true : false;
}
$post = (!empty($_POST)) ? true : false;
if($post)
{
    $name    = stripslashes($_POST['name']);
    $email   = trim($_POST['email']);
    $subject = stripslashes($_POST['subject']);
    $message = stripslashes($_POST['message']);
    $error = '';
    // Check name
    if(!$name || $name == "Name*")
        $error .= 'Please enter your name.<br />';
    // Check email
    if(!$email || $email == "Email*")
        $error .= 'Please enter an e-mail address.<br />';
    if($email && !ValidateEmail($email))
        $error .= 'Please enter a valid e-mail address.<br />';
    // Check message
    if(!$message)
        $error .= "Please enter your message. <br />";
    if(!$error)
    {
        $mail = mail(WEBMASTER_EMAIL, $subject, $message,
             "From: ".$name." <".$email.">'r'n"
            ."Reply-To: ".$email."'r'n"
            ."X-Mailer: PHP/" . phpversion());
        if($mail)
            echo 'OK';
    }
    else
        echo '<div class="formstatuserror">'.$error.'</div>';
}?>

它工作得很好!但我需要在我的表单中再添加一些INPUT。我知道如何将它们添加到html中。例如,我添加了一个:

<input type="text" name="lastname" value="" id="lastname" placeholder="Achternaam" required/>

但我就是找不到把这些输入添加到我邮箱中收到的电子邮件中的好方法。。。我该把它添加到PHP的哪里?我尝试了很多东西。。。

希望你们能帮我!

David

在这些行之后:

    $name    = stripslashes($_POST['name']);
    $email   = trim($_POST['email']);
    $subject = stripslashes($_POST['subject']);
    $message = stripslashes($_POST['message']);

您安装了一个包含字段(姓氏)值的变量:

    $lastname = stripslashes($_POST['lastname']);

然后,如果输入为空或其他内容,则验证输入:

 // Check message
    if(!$lastname )
        $error .= "Please enter your lastname. <br />";

最后,您使用您的变量姓氏将其显示在电子邮件中:

"From: ".$name." ".$lasname." <".$email.">'r'n"

等等!

编辑:如果你想在消息上使用这个输入,你有$message变量,你可以这样做:

if(!$error)
    {    
         $message .= "<p>Message sent by $lastname";
...

如果您不希望它作为"发件人"或"主题"的附加项出现在电子邮件标题中,您也可以继续将信息附加到电子邮件正文或$message中。例如:

$name    = stripslashes($_POST['name']);
$email   = trim($_POST['email']);
$subject = stripslashes($_POST['subject']);
$message = "Last Name: " . stripslashes($_POST['lastname']) . "'r'n";
$message .= "Message: " . stripslashes($_POST['message']);

其他选项也适用,这实际上只是取决于你希望这些额外信息在电子邮件中的"位置"。