繁体   English   中英

添加额外的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>';
}?>

效果很好! 但是我需要在表单中添加一些输入。 我知道如何将这些添加到html。 例如,我添加了这个:

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

但是我只是找不到将输入内容添加到我在邮箱中收到的电子邮件中的好方法...在PHP中的何处添加此输入? 我尝试了很多事情

希望你们能帮助我!

大卫

这些行之后:

    $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 />";

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

"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']);

其他选项也起作用,它实际上仅取决于您希望这些额外信息进入电子邮件的“位置”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM