簡體   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