2015-04-03 25 views
0

我使用了一些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", '[email protected]'); 

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?我嘗試了很多東西...

希望你們能幫助我!

大衛

+0

您需要將所有額外參數放在$ subject或$ message中。它取決於您發送的是哪種類型的內容。這是新的輸入是正確的消息或主題身體 – 2015-04-03 14:53:04

回答

1

這些行後:

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

的Et瞧!

編輯:如果你想使用的消息此輸入,你有$message變量,你可以這樣做:

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

是的,這工作!我該如何編輯一個輸入以顯示在電子郵件正文中的php? – user1737979 2015-04-04 17:15:50

+0

我剛剛編輯了我的答案。 – 2015-04-05 17:19:29

0

如果你不希望它會在電子郵件標題爲除了「發件人」或「主題」之外,您還可以將信息附加到電子郵件正文或$消息中。例如:

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

其他選項以及工作,它真的只是取決於「其中」在電子郵件中你想要這種額外的信息去。