Aggiunta di caselle di controllo al module di posta elettronica PHP POST

Sto cercando di creare un module per wordpress. Ho usato i plugin in passato, ma ho bisogno del massimo controllo per alcuni stili specifici. Non sono ancora molto bravo con PHP, quindi sto faticando a cercare di aggiungere caselle di controllo allo script .. Ho rimosso i miei tentativi e lasciato le check in html, ma non nel PHP – qualcuno può consigliarmi sul modo migliore per rendere visibili le caselle di controllo selezionate nell'e-mail che viene inviata? Tutto il resto funziona al momento.

l'html:

<form method="post" action="<?php bloginfo('template_directory'); ?>/contact.php"> <h3>Your Details</h3> <div class="formrow"> <input type="text" name="Name" maxlength="99" id="fullname" placeholder="Name" /> <input type="email" name="Email" maxlength="99"placeholder="Email Address" /> <input type="tel" name="Phone" maxlength="25" placeholder="Phone Number" /> </div> <h3>Project Type</h3> <div class="formrow"> <fieldset> <input type="checkbox" name="project1" value="Web"> <label for="type1">Web</label> <input type="checkbox" name="project2" value="Digital"> <label for="type2">Digital</label> <input type="checkbox" name="project3" value="Consultancy"> <label for="type3">Consultancy</label> </fieldset> </div> <table align=center> <tr><td colspan=2><strong>Contact us using this form:</strong></td></tr> <tr><td>Department:</td><td><select name="sendto"> <option value="[email protected]">General</option> <option value="[email protected]">Support</option> <option value="[email protected]">Sales</option> </select></td></tr> <tr><td>Company:</td><td><input size=25 name="Company"></td></tr> <tr><td>Subscribe to<br> mailing list:</td><td><input type="radio" name="list" value="No"> No Thanks<br> <input type="radio" name="list" value="Yes" checked> Yes, keep me informsd<br></td></tr> <tr><td colspan=2>Message:</td></tr> <tr><td colspan=2 align=center><textarea name="Message" rows=5 cols=35></textarea></td></tr> <tr><td colspan=2 align=center><input type=submit name="send" value="Submit"></td></tr> <tr><td colspan=2 align=center><small>A <font color=red>*</font> indicates a field is required</small></td></tr> </table> </form> 

il PHP:

 <?php $to = $_REQUEST['sendto'] ; $from = $_REQUEST['Email'] ; $name = $_REQUEST['Name'] ; $headers = "From: $from"; $subject = "Web Contact Data"; $fields = arrays(); $fields{"Name"} = "Name"; $fields{"Company"} = "Company"; $fields{"Email"} = "Email"; $fields{"Phone"} = "Phone"; $fields{"list"} = "Mailing List"; $fields{"Message"} = "Message"; $body = "We have received the following information:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } $headers2 = "From: [email protected]mpany.com"; $subject2 = "Thank you for contacting us"; $autoreply = "Thank you for contacting us. Somebody will get back to you as soon as possible, usualy within 48 hours. If you have any more questions, please consult our website at www.oursite.com"; if($from == '') {print "You have not entered an email, please go back and try again";} else { if($name == '') {print "You have not entered a name, please go back and try again";} else { $send = mail($to, $subject, $body, $headers); $send2 = mail($from, $subject2, $autoreply, $headers2); if($send) {print "Success";} else {print "We encountered an error sending your mail, please notify [email protected]"; } } } ?> 

Grazie! MC

Un arrays di checkbox sarebbe più appropriato. Usando [] nei nomi delle caselle di controllo, PHP li analizzerà automaticamente in un arrays nativo.

  <input type="checkbox" name="projects[]" value="Web"> <label for="type1">Web</label> <input type="checkbox" name="projects[]" value="Digital"> <label for="type2">Digital</label> <input type="checkbox" name="projects[]" value="Consultancy"> <label for="type3">Consultancy</label> 

Dal lato PHP:

 $selectedProjects = 'None'; if(isset($_POST['projects']) && is_arrays($_POST['projects']) && count($_POST['projects']) > 0){ $selectedProjects = implode(', ', $_POST['projects']); } $body .= 'Selected Projects: ' . $selectedProjects; 

Uscite (se tutto è stato controllato)

Progetti selezionati: Web, Digital, Consulenza