2013-11-20 4 views
0

Я новичок в PHP, и я пытаюсь создать поле формы PHP, и у меня есть четыре «Check Boxes» с именами Output1, Output2, Output3 и Output4, но когда я выбираю все четыре проверки Коробки он посылает мне только одно и не все четыре значения.PHP Mailer не отправляет все поля

ПРИМЕЧАНИЕ У меня есть другие поля на этом, но я просто хотел предоставить вам информацию о форме HTML для Output.

Вот HTML:

<form id="surveyForm" class="form" action="mailsurvey.php" method="post" name="surveyForm" enctype="multipart/form-data" onsubmit="return ValidateContactForm2();"> 
<input id="Output1" type="checkbox" name="Output1" value="Isolated" /> 
<input id="Output2" type="checkbox" name="Output2" value="Isolated" /> 
<input id="Output3" type="checkbox" name="Output3" value="Isolated" /> 
<input id="Output4" type="checkbox" name="Output4" value="Isolated" /> 
</form> 

PHP код:

<?php 

require("includes/class.phpmailer.php"); 
require("includes/class.smtp.php"); 
require("includes/class.pop3.php"); 

if($_FILES['headshot']['name']!="") 
{ 

$imgtype=explode('.',$_FILES['headshot']['name']); 
$len=sizeof($imgtype); 
$image_file=uniqid().'.'.$imgtype[$len-1]; 

$tmppath='uploads/'; 

move_uploaded_file($_FILES['headshot']['tmp_name'],$tmppath.$image_file); 
$file_path=$tmppath.$image_file; 
} 
else 
{     
     $file_path=""; 
} 

if($_FILES['bodyshot']['name']!="") 
{ 

     $imgtype=explode('.',$_FILES['bodyshot']['name']); 
     $len=sizeof($imgtype); 
     $image_file=uniqid().'.'.$imgtype[$len-1]; 

     $tmppath='uploads2/'; 

     move_uploaded_file($_FILES['bodyshot']['tmp_name'],$tmppath.$image_file); 
     $file_path2=$tmppath.$image_file; 
} 
else 
{     
     $file_path2=""; 
} 


$mail = new PHPMailer(); 
$mail->Host = "localhost"; 
$mail->Mailer = "smtp"; 

$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$comments = $_POST['Comments']; 
$totalpower = $_POST['Total_Power']." ".$_POST['Total_Power2']."   ".$_POST['Total_Power3']." ".$_POST['Total_Power4']." ".$_POST['Total_Power5']; 
$input = $_POST['Input']." ".$_POST['Input2']." ".$_POST['Input3']."  ".$_POST['Input4']; 
$strings = $_POST['Strings4']." ".$_POST['Strings3']." ".$_POST['Strings2']."  ".$_POST['Strings']; 
$output = $_POST['Output1']." ".$_POST['Output2']." ".$_POST['Output3']."  ".$_POST['Output4']; 
$dimming = $_POST['Dimming4']." ".$_POST['Dimming3']." ".$_POST['Dimming2']."  ".$_POST['Dimming']; 
$packaging = $_POST['Packaging4']." ".$_POST['Packaging3']." ".$_POST['Packaging2']."  ".$_POST['Packaging']; 

$subject = "New Product Inquiry/Survey"; 
$body = "Name: " .$name. "<br> ". 
"Company: " .$company. "<br>". 
"Phone: " .$phone."<br>". 
"Email: " .$email."<br><br><hr>". 
"Total Power: " .$totalpower."<br>". 
"Input: " .$input."<br>". 
"Strings: " .$strings."<br>". 
"Output: " .$output."<br>". 
"Dimming: " .$dimming."<br>". 
"Packaging: " .$packaging."<br>". 
"Comments: " .$comments."<br>" 
; 

$mail->IsSMTP(); 
$mail->From = '[email protected]'; 
$mail->FromName = '[email protected]'; 
$mail->Subject = "New Product Inquiry"; 
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";    // optional, comment out and test 

if($file_path!="") 
{ 
$mail->AddAttachment($file_path); 
} 

if($file_path2!="") 
{ 
     $mail->AddAttachment($file_path2); 
} 

$mail->MsgHTML($body); 

$mail->AddAddress('[email protected]'); 

if(!$mail->Send()) 
{ 
     $msg = "Unable to send email"; 
} 
else 
{ 
     $msg = header("location: thank-you2.php"); 
} 
?> 

Может кто-то пожалуйста, скажите мне, почему эта форма не будет посылать ALL поля вывода, если пользователь выбирает все четыре коробки. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.

Спасибо,

Frank

+1

Идентификаторы должны быть уникальными, вы не можете использовать 'id =" Output1 "для всех флажков. – Barmar

+0

Barmar Я обновил мою публикацию и изменил идентификаторы, чтобы быть уникальными, но форма по-прежнему не отправляет мне все данные для поля «Вывод». Я получаю только одно значение из всех четырех ящиков. Любые другие предложения? Благодаря! –

+1

Я не ожидал, что это исправить, вот почему это комментарий, а не ответ. Я не вижу причин, по которым вы получаете только один флажок, вы должны получить все те, которые были проверены. Можете добавить вопрос к 'var_dump ($ _ POST)' к вопросу? Может ли функция проверки изменить их? – Barmar

ответ

0

я понял, что моя проблема была и причина, почему я хотел опубликовать этот ответ для других, чтобы быть в курсе.

Моя проблема в том, что я работал над неправильным файлом PHP. У меня есть два одинаковых PHP-файла на моем сайте, которые были обрушены под парой папок, а один из них был в корне сайта. Единственное, на что я должен был работать, это внести изменения, потому что это был файл LIVE. Пока я загружал файл, который не работал, потому что он был неправильным. Я понял, что дважды проверьте путь в элементе формы страницы формы.

<form id="surveyForm" class="form" **action="subfolder/formmailer_scripts/mailsurvey.php"** method="post" name="surveyForm" enctype="multipart/form-data" onsubmit="return ValidateContactForm2();"> 

Таким образом, морель сюжета обращает на себя внимание и следит за тем, чтобы вы не смотрели простые вещи. Я потратил около часа на эту перезагрузку файла, который не был им нужен. Надеюсь, это поможет другим!

Смежные вопросы