2016-04-26 128 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