Как показать только заполненные поля в электронной почте - PullRequest
0 голосов
/ 11 декабря 2011

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

изменить код PHP:

<?php


$to = 'info@kiimsphotography.nl'; 
$onderwerp = " Kerstbestelling "; 

$Naam = htmlspecialchars($_POST['Naam']); 
$Adres = htmlspecialchars($_POST['Adres']);
$Tel = htmlspecialchars($_POST['Tel']);  
$Afhaaldatum = htmlspecialchars($_POST['Afhaaldatum']);

//Rolades
$HOH_rollade = htmlspecialchars($_POST['HOH_rollade']);  
$Runderrollade = htmlspecialchars($_POST['Runderrollade']);
$Entre_cote = htmlspecialchars($_POST['Entre_cote']);
$Varkensrollade = htmlspecialchars($_POST['Varkensrollade']);
$Spekrollade = htmlspecialchars($_POST['Spekrollade']);
$Schoftrollade = htmlspecialchars($_POST['Schoftrollade']);
$Filetrollade = htmlspecialchars($_POST['Filetrollade']);
$Primerib = htmlspecialchars($_POST['Primerib']);

//Rundvlees
$Ossenhaas = htmlspecialchars($_POST['Ossenhaas']);  
$Entre_cote_rollade = htmlspecialchars($_POST['Entre_cote_rollade']);
$Rosbief = htmlspecialchars($_POST['Rosbief']);
$Staartstuk = htmlspecialchars($_POST['Staartstuk']);
$Kogelbiefstuk = htmlspecialchars($_POST['Kogelbiefstuk']);
$Rib_eye_nat = htmlspecialchars($_POST['Rib_eye_nat']);
$Picania = htmlspecialchars($_POST['Picania']);
$Poulet = htmlspecialchars($_POST['Poulet']);

//Lamsvlees
$Lamsbout = htmlspecialchars($_POST['Lamsbout']);  
$Lamskoteletten = htmlspecialchars($_POST['Lamskoteletten']);
$Lamshaas = htmlspecialchars($_POST['Lamshaas']);
$French_rack = htmlspecialchars($_POST['French_rack']);
$Lamspoulet = htmlspecialchars($_POST['Lamspoulet']);
$Lamsworstjes = htmlspecialchars($_POST['Lamsworstjes']);
$Lamsbout_gekr = htmlspecialchars($_POST['Lamsbout_gekr']);

//Varkensvlees
$Varkenshaas = htmlspecialchars($_POST['Varkenshaas']);  
$Varkensfilet = htmlspecialchars($_POST['Varkensfilet']);
$Fricandeau = htmlspecialchars($_POST['Fricandeau']);
$Varkensschnitzel = htmlspecialchars($_POST['Varkensschnitzel']);
$Gep_schnitzel = htmlspecialchars($_POST['Gep_schnitzel']);
$Haaskarbonade = htmlspecialchars($_POST['Haaskarbonade']);
$Ribkarbonade = htmlspecialchars($_POST['Ribkarbonade']);
$Sch_Karbonade = htmlspecialchars($_POST['Sch_Karbonade']);
$Spareribs = htmlspecialchars($_POST['Spareribs']);
$Gebr_Spareribs = htmlspecialchars($_POST['Gebr_Spareribs']);

//Worstsoorten
$Drogeworst_3x = htmlspecialchars($_POST['Drogeworst_3x']);  
$Leverworst_r = htmlspecialchars($_POST['Leverworst_r']);
$Leverworst_s = htmlspecialchars($_POST['Leverworst_s']);
$Ossenworst_st = htmlspecialchars($_POST['Ossenworst_st']);
$Grillworst_st = htmlspecialchars($_POST['Grillworst_st']);
$Chorizo_st = htmlspecialchars($_POST['Chorizo_st']);
$Merquez = htmlspecialchars($_POST['Merquez']);
$Verse_worst = htmlspecialchars($_POST['Verse_worst']);
$Saucijzen = htmlspecialchars($_POST['Saucijzen']);
$Rookworst = htmlspecialchars($_POST['Rookworst']);
$R_rookworst = htmlspecialchars($_POST['R_rookworst']);
$Knoflook_w_3x = htmlspecialchars($_POST['Knoflook_w_3x']);
$Paardenworst = htmlspecialchars($_POST['Paardenworst']);

//Overig
$Cowboyvlees = htmlspecialchars($_POST['Cowboyvlees']);  
$Maharadjavlees = htmlspecialchars($_POST['Maharadjavlees']);
$Gebr_Rollade = htmlspecialchars($_POST['Gebr_Rollade']);
$Beenham_vers = htmlspecialchars($_POST['Beenham_vers']);
$Zeeuwsspek = htmlspecialchars($_POST['Zeeuwsspek']);
$English_bacon = htmlspecialchars($_POST['English_bacon']);
$Pancetta = htmlspecialchars($_POST['Pancetta']);
$Rookspek = htmlspecialchars($_POST['Rookspek']);
$Filet_americain = htmlspecialchars($_POST['Filet_americain']);
$Rolpens = htmlspecialchars($_POST['Rolpens']);

//Kalfsvlees
$Kalfsentrecote = htmlspecialchars($_POST['Kalfsentrecote']);  
$Kalfsschnitzel = htmlspecialchars($_POST['Kalfsschnitzel']);
$Kalfsschenkel = htmlspecialchars($_POST['Kalfsschenkel']);
$Kalfszwezerik = htmlspecialchars($_POST['Kalfszwezerik']);
$Kalfspoulet = htmlspecialchars($_POST['Kalfspoulet']);

//Gourmet / Fondue
$Gourmet_de_Luxe = htmlspecialchars($_POST['Gourmet_de_Luxe']);  
$Gourmet_Populair = htmlspecialchars($_POST['Gourmet_Populair']);
$Fondue = htmlspecialchars($_POST['Fondue']);


$details = "
   Onderwerp: $onderwerp\n\n\n
   Naam: $Naam\n\n
   Adres: $Adres\n\n
   Tel.: $Tel \n\n
   Afhaaldatum: $Afhaaldatum \n\n
   \n\n



   HOH rollade: $HOH_rollade \n\n
   Runderrollade: $Runderrollade \n\n
   Entre-cote rollade: $Entre_cote_rollade \n\n
   Varkensrollade: $Varkensrollade \n\n
   Spekrollade: $Spekrollade \n\n
   Schoftrollade: $Schoftrollade \n\n
   Filetrollade: $Filetrollade \n\n
   Primerib: $Primerib \n\n
   \n\n




   Ossenhaas: $Ossenhaas \n\n
   Entre-cote: $Entre_cote \n\n
   Rosbief: $Rosbief \n\n
   Staartstuk: $Staartstuk \n\n
   Kogelbiefstuk: $Kogelbiefstuk \n\n
   Rib eye (nat): $Rib_eye_nat \n\n
   Picania: $Picania \n\n
   Poulet: $Poulet \n\n
   \n\n




   Lamsbout: $Lamsbout \n\n
   Lamskoteletten: $Lamskoteletten \n\n
   Lamshaas: $Lamshaas \n\n
   French rack: $French_rack \n\n
   Lamspoulet: $Lamspoulet \n\n
   Lamsworstjes: $Lamsworstjes \n\n
   Lamsbout gekr.: $Lamsbout_gekr \n\n
   \n\n

   Varkenshaas: $Varkenshaas \n\n
   Varkensfilet: $Varkensfilet \n\n 
   Fricandeau: $Fricandeau \n\n
   Varkensschnitzel: $Varkensschnitzel \n\n
   Gep. schnitzel: $Gep_schnitzel \n\n
   Haaskarbonade: $Haaskarbonade \n\n
   Ribkarbonade: $Ribkarbonade \n\n
   Sch. Karbonade: $Sch_Karbonade \n\n
   Spareribs: $Spareribs \n\n
   Gebr. Spareribs: $Gebr_Spareribs \n\n
   \n\n


   Drogeworst 3x: $Drogeworst_3x \n\n 
   Leverworst (r): $Leverworst_r \n\n
   Leverworst (s): $Leverworst_s \n\n
   Ossenworst st: $Ossenworst_st \n\n
   Grillworst st: $Grillworst_st \n\n
   Chorizo st: $Chorizo_st \n\n
   Merquez: $Merquez \n\n
   Verse worst: $Verse_worst \n\n
   Saucijzen: $Saucijzen \n\n
   Rookworst: $Rookworst \n\n
   R. rookworst: $R_rookworst \n\n
   Knoflook w. 3x: $Knoflook_w_3x \n\n
   Paardenworst: $Paardenworst \n\n
   \n\n

   Cowboyvlees: $Cowboyvlees \n\n
   Maharadjavlees: $Maharadjavlees \n\n
   Gebr. Rollade: $Gebr_rollade \n\n
   Beenham/vers: $Beenham_vers\n\n
   Zeeuwsspek: $Zeeuwsspek \n\n
   English bacon: $English_bacon \n\n
   Pancetta: $Pancetta \n\n
   Rookspek: $Rookspek \n\n
   Filet americain: $Filet_americain \n\n
   Rolpens: $Rolpens \n\n
   \n\n


   Kalfsentrecote: $Kalfsentrecote \n\n
   Kalfsschnitzel: $Kalfsschnitzel \n\n
   Kalfsschenkel: $Kalfsschenkel \n\n
   Kalfszwezerik: $Kalfszwezerik \n\n
   Kalfspoulet: $Kalfspoulet \n\n
   \n\n




   Gourmet de Luxe: $Gourmet_de_Luxe \n\n 
   Gourmet Populair: $Gourmet_Populair \n\n
   Fondue: $Fondue \n\n

  ";








      $post_data = array('Naam', 'Adres', 'Tel', 'Afhaaldatum', 'HOH_rollade', 'Runderrollade', 'Entre_cote_rollade', 'Varkensrollade', 'Spekrollade', 'Schoftrollade', 'Filetrollade', 'Primerib', 'Ossenhaas', 'Entre_cote', 'Rosbief', 'Staartstuk', 'Kogelbiefstuk','Rib_eye_nat', 'Picania', 'Poulet', 'Lamsbout', 'Lamskoteletten', 'Lamshaas', 'French_rack', 'Lamspoulet',  'Lamsworstjes', 'Lamsbout_gekr', 'Varkenshaas', 'Varkensfilet', 'Fricandeau', 'Varkensschnitzel', 'Gep_schnitzel', 'Haaskarbonade', 'Ribkarbonade', 'Sch_Karbonade', 'Spareribs', 'Gebr_Spareribs', 'Drogeworst_3x', 'Leverworst_r', '$Leverworst_s', 'Ossenworst_st', 'Grillworst_st', 'Chorizo_st', 'Merquez', 'Verse_worst', 'Saucijzen', 'Rookworst', 'R_rookworst', 'Knoflook_w_3x', 'Paardenworst', 'Cowboyvlees', 'Maharadjavlees', 'Gebr_rollade', 'Beenham_vers', 'Zeeuwsspek', 'English_bacon', 'Pancetta', 'Rookspek', 'Filet_americain', 'Rolpens', 'Kalfsentrecote', 'Kalfsschnitzel', 'Kalfsschenkel', 'Kalfszwezerik', 'Kalfspoulet', 'Gourmet_de_Luxe', 'Gourmet_Populair', 'Fondue'); // put all the variables you expect here

$translations = array('Naam', 'Adres', 'Tel', 'Afhaaldatum', 'HOH rollade', 'Runderrollade', 'Entre-cote rollade', 'Varkensrollade', 'Spekrollade', 'Schoftrollade', 'Filetrollade', 'Primerib', 'Ossenhaas', 'Entre-cote', 'Rosbief', 'Staartstuk', 'Kogelbiefstuk','Rib eye (nat)', 'Picania', 'Poulet', 'Lamsbout', 'Lamskoteletten', 'Lamshaas', 'French rack', 'Lamspoulet', 'Lamsworstjes', 'Lamsbout gekr.', 'Varkenshaas', 'Varkensfilet', 'Fricandeau', 'Varkensschnitzel', 'Gep. schnitzel', 'Haaskarbonade', 'Ribkarbonade', 'Sch. Karbonade', 'Spareribs', 'Gebr_Spareribs', 'Drogeworst_3x', 'Leverworst_r', '$Leverworst_s', 'Ossenworst_st', 'Grillworst_st', 'Chorizo_st', 'Merquez', 'Verse_worst', 'Saucijzen', 'Rookworst', 'R. rookworst', 'Knoflook w. 3x', 'Paardenworst', 'Cowboyvlees', 'Maharadjavlees', 'Gebr. rollade', 'Beenham vers', 'Zeeuwsspek', 'English bacon', 'Pancetta', 'Rookspek', 'Filet americain', 'Rolpens', 'Kalfsentrecote', 'Kalfsschnitzel', 'Kalfsschenkel', 'Kalfszwezerik', 'Kalfspoulet', 'Gourmet de Luxe', 'Gourmet Populair', 'Fondue' ) // put your translations into another array


$output = 'Naam' 'Adres' 'Tel' 'Afhaaldatum' 'HOH_rollade' 'Runderrollade' 'Entre_cote_rollade' 'Varkensrollade' 'Spekrollade' 'Schoftrollade' 'Filetrollade' 'Primerib' 'Ossenhaas' 'Entre_cote' 'Rosbief' 'Staartstuk' 'Kogelbiefstuk''Rib_eye_nat' 'Picania' 'Poulet' 'Lamsbout' 'Lamskoteletten' 'Lamshaas' 'French_rack' 'Lamspoulet'  'Lamsworstjes' 'Lamsbout_gekr' 'Varkenshaas' 'Varkensfilet' 'Fricandeau' 'Varkensschnitzel' 'Gep_schnitzel' 'Haaskarbonade' 'Ribkarbonade' 'Sch_Karbonade' 'Spareribs' 'Gebr_Spareribs' 'Drogeworst_3x' 'Leverworst_r' '$Leverworst_s' 'Ossenworst_st' 'Grillworst_st' 'Chorizo_st' 'Merquez' 'Verse_worst' 'Saucijzen' 'Rookworst' 'R_rookworst' 'Knoflook_w_3x' 'Paardenworst' 'Cowboyvlees' 'Maharadjavlees' 'Gebr_rollade' 'Beenham_vers' 'Zeeuwsspek' 'English_bacon' 'Pancetta' 'Rookspek' 'Filet_americain' 'Rolpens' 'Kalfsentrecote' 'Kalfsschnitzel' 'Kalfsschenkel' 'Kalfszwezerik' 'Kalfspoulet' 'Gourmet_de_Luxe' 'Gourmet_Populair' 'Fondue';

for ($i=0, $len = count($post_data); $i < $len; $i++) {
  // you can do aditional validation here if you want, for example make required fields
  if (isset($_POST[$post_data[$i]]) && (trim($_POST[$post_data[$i]]) != '') {
    $output .= $translations[$post_data[$i]] . ": " . $_POST[$post_data[$i]];
  }
}
...
// $output will contain the message to be sent






// Send the message
$ok = mail($to, $onderwerp, $details);
if ($ok) {
  echo "<p>E-mail is verzonden</p>";


} else {
  echo "<p>E-mail is niet verzonden. Probeer opnieuw!</p>";
}




?> 

Ответы [ 3 ]

2 голосов
/ 11 декабря 2011

Форма для отправки всех полей на сервер, даже если они пусты, поэтому у вас есть 2 варианта здесь:

  • для проверки всех значений на сервере, для предотвращения пустых значений или
  • сделать ту же проверку в JS перед отправкой формы
1 голос
/ 11 декабря 2011

Это ожидаемое поведение.HTML-форма отправляет все поля, а PHP-скрипт должен проверять все.Если какое-либо значение пустое, просто проигнорируйте его:

if (strlen($onderwerp) > 0) {
    $details .= "Onderwerp: $onderwerp\n\n\n";
}
// ...

Если оно пустое и требуется, отобразите сообщение об ошибке.

Единственными значениями поля, которые не отправляются, являются значениянепроверенных чекбоксов и непроверенных переключателей.

0 голосов
/ 11 декабря 2011

Вот как я бы это сделал (на стороне сервера, так как в любом случае кто-то может обойти вас без проверки JavaScript на веб-интерфейсе), чтобы мой код оставался СУХИМ (не повторяйте себя):

$post_data = array('Naam', 'Adres', 'Tel', 'Afhaaldatum', 'HOH_rollade' ...); // put all the variables you expect here
$translations = array('Naam', 'Adres', 'Tel', 'Afhaaldatum', 'HOH rollade' ...) // put your translations into another array
$output = '';

for ($i=0, $len = count($post_data); $i < $len; $i++) {
  // you can do aditional validation here if you want, for example make required fields
  if (isset($_POST[$post_data[$i]]) && (trim($_POST[$post_data[$i]]) != '') {
    $output .= $translations[$post_data[$i]] . ": " . $_POST[$post_data[$i]];
  }
}
...
// $output will contain the message to be sent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...