keepkuler 0 Denunciar post Postado Abril 24, 2012 Boa noite! Estou adaptando uma página de um template que contém uma arquivo de contato. Duplicando este arquivo e mantendo as referências básicas, tudo funcionava sem maiores problemas. Meu problema iniciou ao adicionar 3 campos checkboxs, por algum motivo que não encontro, o Post não reconhece os valores como array. Abaixo coloco parte do código que estou utilizando, se alguém puder me ajudar e apontar as possíveis falhas que estou deixando passar, agradeço a ajuda. Código HTML Label 01 <input id="form_opt" type="checkbox" name="chk[]" value="Valor 01" /> Label 02 <input id="form_opt" type="checkbox" name="chk[]" value="Valor 02" /> Label 03 <input id="form_opt" type="checkbox" name="chk[]" value="Valor 03" /> Código no post //campos do formulario $input_name = strip_tags($_POST['name']); $input_email = strip_tags($_POST['email']); $input_perfil = strip_tags($_POST['perfil']); if(isset($_POST['chk'])) { $input_opt = $_POST['chk']; $chave = array_keys($input_opt); echo '<script language=javascript>alert("Input_Opt: '. sizeof($chave) .'");</script>'; } else { echo '<script language=javascript>alert("Input_Opt vazio: '. sizeof($chave) .'");</script>'; } Fiz o mesmo código em um arquivo teste e o resultado foi satisfatório. Mas, ao fazer a mesma lógica no WP, não tenho resultado. Agradeço a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Abril 26, 2012 Pode postar o form completo? Compartilhar este post Link para o post Compartilhar em outros sites
keepkuler 0 Denunciar post Postado Abril 29, 2012 Ted, desculpe a demora do retorno, estive meio enrolado... Então, segue o form do template que estou adaptando... <?php if(isset($_POST['name']) && empty($_POST['spam_check'])) { require 'email-validator.php'; $validator = new EmailAddressValidator(); //enviando e-mail com aviso de novo cadastro $mailto = utf8_decode("conta@provedor.com.br"); $input_subject = 'assunto'; $errors = array(); //campos do formulario $input_name = strip_tags($_POST['name']); $input_email = strip_tags($_POST['email']); $input_perfil = strip_tags($_POST['perfil']); if(isset($_POST['chk'])) { $input_opt = $_POST['chk']; $chave = array_keys($input_opt); echo '<script language=javascript>alert("Input_Opt: '. sizeof($chave) .'");</script>'; } else { echo '<script language=javascript>alert("Input_Opt vazio: '. sizeof($chave) .'");</script>'; } //campo de anexo $file_temp = $_FILES["anexo"]["tmp_name"]; $file_nome = $_FILES["anexo"]["name"]; $file_size = $_FILES["anexo"]["size"]; $file_tipo = $_FILES["anexo"]["type"]; //msg formata para email if($file_temp){ $fp = fopen($file_temp, "rb"); $anexo = fread($fp, $file_size); $anexo = base64_encode($anexo); fclose($fp); $anexo = chunk_split($anexo); $boundary = "XYZ - ". date("dmYis") . "-ZYX"; $msg = "--$boundary\n"; $msg .= "Content-Transfer-Encoding: 8bits\n"; $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n\n"; $msg .= "<b>Nome:</b> ". $input_name; $msg .= "<br /><b>e-mail:</b> <a href=\"mailto:". $input_email ."\">". $input_email ."</a>"; $msg .= "<br /><b>Assunto: </b> ". $input_subject; $msg .= "<br /><br /><b>Mensagem:</b> <br />". $input_message; $msg .= "--$boundary \n"; $msg .= "Content-Type: ". $file_tipo ."\n"; $msg .= "Content-Disposition: attachment; filename=\"". $file_nome ."\"\n"; $msg .= "Content-Transfer-Encoding: base64 \n\n"; $msg .= "$anexo\n"; $msg .= "--$boundary--\r\n"; //cabeçalho $headers = "MIME-Version: 1.1\n"; $headers .= "Content-Type: multipart/mixed; charset=utf-8; boundary=\"$boundary\"\r\n"; $headers .= "$boundary\n"; $headers .= "From: ". $input_name ."<". $input_email .">\n"; $headers .= "Return-Path: ". $input_email ."\n"; } $required = array('Campo nome' => 'name', 'Campo e-mail' => 'email'); foreach($required as $key=>$value) { if($_POST[$value] != 'Nome' && isset($_POST[$value]) && $_POST[$value] !== '') { continue; } else { $errors[] = $key . ' é obrigatório'; } } if (!$validator->check_email_address($input_email)) { $errors[] = 'O endereço de e-mail não é válido'; } if(sizeof($input_opt) == 0) { $errors[] = 'É necessário selecionar uma opcao.'; } if(empty($errors)) { if(mail($mailto, "[studiotag][rh] $input_name - $input_subject", $msg, $headers)) { echo 'Obrigado! Sua mensagem foi enviada com sucesso.'; } else { echo 'Ops! Sua mensagem não foi enviada. Tente novamente.'; } } else { echo implode('<br />', $errors); } } else { die('Você não pode acessar esta página diretamente.'); } <form id='rh-form' method='post' action='<?php bloginfo('url'); ?>/wp-content/themes/satoshi/scripts/rh-process.php'> <fieldset> <input id='form_name' type='text' name='name' value='Nome' onfocus="if(this.value=='Nome'){this.value=''};" onblur="if(this.value==''){this.value='Nome'};" /> <input id='form_email' type='text' name='email' value="Email" onfocus="if(this.value=='Email'){this.value=''};" onblur="if(this.value==''){this.value='Email'};" /> <input id='form_file' type='file' name='anexo' value='Anexar PDF' /> <div id="label_opt"> Opcao 01 <input id="form_opt" type="checkbox" name="chk[]" value="Opcao 1" /> Opcao 2 <input id="form_opt" type="checkbox" name="chk[]" value="Opcao 2" /> Opcao 3 <input id="form_opt" type="checkbox" name="chk[]" value="Opcao 3" /> </div> <textarea id='form_perfil' rows='10' cols='40' name='perfil' onfocus="if(this.value=='Informações adicionais'){this.value=''};" onblur="if(this.value==''){this.value='Informações adicionais'};">Informações adicionais</textarea> <input id='rh_submit' class="submit" type='submit' name='submit' value='' /> <div class='hide'> <label>Do not fill out this field</label> <input name='spam_check' type='text' value='' /> </div> </fieldset> </form> Compartilhar este post Link para o post Compartilhar em outros sites