2016-04-26 135 views
0

希望有人可以提供幫助。我在表單中添加了一些額外的字段,但是我無法在提交的表單電子郵件中填充字段。所有標準字段都可以正常工作(電子郵件,姓名,評論)。無法通過php文件獲取其他表單域

試圖讓id'bandname'和'osflow'正常工作。

HTML代碼:

<div class="percent-one-half column-last box fadeInRight"> 
      <div id="contactform"> 
       <div id="message"></div> 
       <form method="post" action="php/contact.php" name="cform" id="cform"> 
        <fieldset class="percent-one-half"> 
         <input name="name" type="text" id="name" placeholder="Name*"/> 
        </fieldset> 
        <fieldset class="percent-one-half column-last"> 
         <input type="email" name="email" id="email" placeholder="Email*"/> 
        </fieldset> 
        <fieldset class="percent-one-half"> 
         <input name="bandname" type="text" id="bandname" placeholder="Name of Band*"/> 
        </fieldset> 
        <fieldset class="percent-one-half column-last"> 
        <select name="interested" id="osflow" onchange="java_script_:show(this.options[this.selectedIndex].value)"> 
         <option name="interested" value="interestedin"> Interested In </option> 
         <option name="interested" value="diecut"> Die-Cut Decal </option> 
         <option name="interested" value="static"> Static Cling Decal </option> 
         <option name="interested" value="banner"> Vinyl Banner </option> 
         <option name="interested" value="dieban"> Die-Cut Decal & Banner </option> 
         <option name="interested" value="statban"> Static Cling & Banner </option> 
        </select> 
        </fieldset> 

PHP代碼:

<?php 

if(!$_POST) exit; 

// Email address verification, do not edit. 
function isEmail($email) { 
return(preg_match("/^[-_.[:alnum:]][email protected]((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email)); 
} 

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n"); 

$name  = $_POST['name']; 
$email = $_POST['email']; 
$bandname = $_POST['bandname']; 
$comments = $_POST['comments']; 
$verify = $_POST['verify']; 

if(trim($name) == '') { 
echo '<div class="error_message">Attention! You must enter your name.</div>'; 
exit(); 
} else if(trim($email) == '') { 
echo '<div class="error_message">Attention! Please enter a valid email address.</div>'; 
exit(); 
} else if(!isEmail($email)) { 
echo '<div class="error_message">Attention! You have enter an invalid e-mail address, try again.</div>'; 
exit(); 
} 


if(trim($comments) == '') { 
echo '<div class="error_message">Please enter your message.</div>'; 
exit(); 
//} else if(!isset($verify) || trim($verify) == '') { 
// echo '<div class="error_message">Please enter the verification number.</div>'; 
// exit(); 
//} else if(trim($verify) != '4') { 
// echo '<div class="error_message">The verification number you entered is incorrect.</div>'; 
// exit(); 
} 

if(get_magic_quotes_gpc()) { 
$comments = stripslashes($comments); 
} 


// Configuration option. 
// Enter the email address that you want to emails to be sent to. 
// Example $address = "[email protected]"; 

//$address = "[email protected]"; 
$address = "[email protected]"; 


// Configuration option. 
// i.e. The standard subject will appear as, "You've been contacted by John Doe." 

// Example, $e_subject = '$name . ' has contacted you via Your Website.'; 

$e_subject = 'Decal Inquiry from ' . $name . ''; 


// Configuration option. 
// You can change this if you feel that you need to. 
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here. 

$e_body = "You have been contacted by $name. The additional message is as follows." . PHP_EOL . PHP_EOL; 
$e_custom = "Band Name: $bandname" . PHP_EOL . PHP_EOL . "\r\n"; 
$e_custom2 = "Interest In: $osflow" . PHP_EOL . PHP_EOL . "\r\n"; 
$e_content .="Content-Disposition: attachment; filename=$file-7" . "\r\n"; 
$e_content = "Comments: $comments" . PHP_EOL . PHP_EOL; 
$e_reply = "You can contact $name via email at $email."; 

$msg = wordwrap($e_body . $e_content . $e_custom . $e_custom2 . $e_reply, 70); 

$headers = "From: $email" . PHP_EOL; 
$headers .= "Reply-To: $email" . PHP_EOL; 
$headers .= "MIME-Version: 1.0" . PHP_EOL; 
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL; 
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL; 

if(mail($address, $e_subject, $msg, $headers)) { 

// Email has sent successfully, echo a success page. 

echo "<fieldset>"; 
echo "<div id='success_page'>"; 
echo "<h1>Email Sent Successfully.</h1>"; 
echo "<p>Thank you <strong>$name</strong>, we've received your inquiry and will be in touch shortly.</p>"; 
echo "</div>"; 
echo "</fieldset>"; 

} else { 

echo 'ERROR!'; 

} 

預先感謝您的幫助!

回答

0

編輯

有2個問題,下面的PHP一個和你的JS。

在jquery.contact.js

您有:

$.post(action, { 
     name: $('#name').val(), 
     email: $('#email').val(), 
     comments: $('#comments').val(), 
     verify: $('#verify').val() 
    }, 

,你需要在你的2個額外的字段添加或他們不會公佈。

PHP問題:

$e_custom = "Band Name: $bandname" . PHP_EOL . PHP_EOL . "\r\n"; 

你已經沒有變量稱爲$bandname但你必須爲名稱$_POST['bandname']

通知,電子郵件等你:

$name  = $_POST['name']; 

這是創建電子郵件正文中使用的局部變量。 雖然你可以用同樣的方法創建一個本地的$bandname變量,但它不是必需的;你可以使用全球

+0

非常感謝你的幫助。我嘗試添加代碼:$ bandname = $ _POST ['bandname'];但是它似乎仍然沒有從表單中提取數據。偶然的任何進一步提示? – Promo

+0

奇怪..在contact.php的頂部,添加'print_r($ _ POST)',它會告訴你什麼值正在發送 – 2016-04-26 04:03:12

+0

是的,看起來它仍然只是從表單中的3個內置字段中提供信息模板。數組([名稱] =>測試名稱[email] => [email protected] [評論] =>測試消息) – Promo