2011-12-11 33 views
0

我的表單正在發送所有數據,而不是僅填寫填寫的字段。 我已經搜索了一個解決方案,並找到了一些,但我將它應用到我自己的形式,因爲我是PHP新手。 有人可以幫我解決這個問題嗎?如何僅在電子郵件中顯示填充字段

編輯PHP代碼:

<?php 


$to = '[email protected]'; 
$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>"; 
} 




?> 
+1

哇。這是某種形式。 –

+0

是的,它是一個非常大的代碼..特別是因爲這是我的第一個形式!希望有人能解決這個問題。 – kim

+1

我很想知道一個好辦法做到這一點......我會嘗試刪除所有的空輸入字段客戶端之前發送到服務器,但必須有一個更好的方法。 –

回答

2

形式是發送的所有字段到服務器,即使它們是空的,所以你有兩個選擇在這裏:

  • 檢查所有在服務器上的值,以防止空值,或
  • 做同樣的檢查由JS前端,將提交表單之前
+1

或兩者的組合;)保存的帶寬+容易解析的服務器端。 –

+0

是的:)它會更好 – haynar

+0

必須真的,因爲你不能完全依靠JavaScript被激活。 – DanMan

1

這是預期的行爲。一個HTML表單發送所有的字段,並且PHP腳本應該驗證所有內容。如果某些值爲空,那麼就忽略它:

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

如果是空白,是必需的,則顯示錯誤消息。

未發送的唯一字段值是未選中的checboxes和未選中的單選按鈕的值。

0

這是我會怎麼做這個(在服務器端,因爲反正有人可能繞過你在前端JavaScript驗證),以保持我的代碼DRY(不要重複自己):

$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 
+0

你能幫我把這個添加到我的代碼嗎?我編輯上面的PHP代碼並將代碼添加到它。謝謝! – kim

相關問題