Comunidad de diseño web y desarrollo en internet online

no consigo enviar datos de checkbox a mi mail desde un formulario

Citar            
MensajeEscrito el 19 Ago 2011 04:52 am
Hola gente de lab.... llevo ya unos días intentando solucionar el siguiente tema googleando y probando pero no lo he conseguido espero me puedan dar una mano y hacerme entender bien con mi problema

tengo un formulario en el que tengo casillas tipo

Código HTML :

<input name="consultacheck" type="checkbox" id="consultacheck" value="logo" />


estas las envio a un archivo php ´para ser enviadas a mi mail coloco el php completo

Código PHP :

<?php
if(isset($_POST['email'])) {
     
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "[email protected]";
    $email_subject = "formulario de contacto desde la web";
     
     
    function died($error) {
        // your error code can go here
      ?>
      <script>
       alert ("<?php echo $error.""?>");
       window.location.href="javascript:history.back(1)";
      </script>
      <?php
      echo "Su formulario contiene algunos errores. ";
        echo "Debe revisar los siguientes datos: .<br />";
        echo $error."<br />";
        echo "Lo sentimos, su navegador no soporta Java para la redireccion, por favor de click en el boton atras e ingrese los datos nuevamente.<br />";
        die();
    }
     
    // validation expected data exists
    if(!isset($_POST['nombre']) ||
        !isset($_POST['empresa']) ||
      !isset($_POST['telefono']) ||
        !isset($_POST['email']) ||
      !isset($_POST['comentarios'])) {
        died('Lo sentimos, acurrio un problema al enviar su consulta.');       
    }
     
    $first_name = $_POST['nombre']; // required
    $campo_empresa = $_POST['empresa'];
   $campo_telefono = $_POST['telefono'];
   $email_from = $_POST['email']; // required 
    $comments = $_POST['comentarios']; // required
   
   $checkbox_html = '';
  // lets process them now.
  $checkboxes = $_POST['consultacheck'];
  if(empty($checkboxes)) {
    echo("");
    $checkbox_html = '';
  } else {
    $N = count($checkboxes);
     echo("");
     for($i=0; $i < $N; $i++) {
        echo($checkboxes[$i] . " ");
        // instead of echoing you could.. 
        $checkbox_html .= $checkboxes[$i]. "\n";
     }
  }
  
     
     
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'Ingrese un email valido.\n';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$nombre)) {
    $error_message .= 'Ingrese su nombre y apellido.\n';
  }
  if(strlen($comentarios) < 11) {
    $error_message .= 'Ingrese sus comentarios.\n';
  }
  
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Información solicitada.\n\n";
     
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
     
    $email_message .= "Nombre: ".clean_string($first_name)."\n";
   $email_message .= "Empresa: ".clean_string($campo_empresa)."\n";
   $email_message .= "Telefono: ".clean_string($campo_telefono)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
   $email_message .= "consulta:\n". $checkbox_html;
    $email_message .= "Comentarios: ".clean_string($comments)."\n";
     
     
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>
 
<!-- include your own success html here -->
 
<script>
 alert ("Su información ha sido enviada con éxito");
 window.location.href="index.php";
</script>
 
<?php
}
?>


mi problñema es que cuando envio el formulario me llega a mi correo algo asi

Código :

Nombre: nombre
Empresa: empresa
Telefono: tel
Email: [email protected]
consulta:
w
Comentarios: comentraios


todos los datos me llegan correctamente menos el de consulta que corresponde a los checkbox asi seleccione varios solo me llega la inicial del ultimo seleccionado...

cualquier ayuda o guia con este tema se los agradezco... no soy muy bueno con php medio lo voy entendiendo pero me ha sacado canas jejejej

saludos

Por jumoga

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Ago 2011 03:09 pm
A ver si entendí bien lo que quieres hacer.

En el name de los input tipo checkbox, ponlos así:

Código :

<input name="consultacheck[]" ...


Los paréntesis rectos harán que se cree un array, que es lo que estás esperando según se puede ver en el código que has posteado.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 Ago 2011 03:32 pm
Jajjajajaja definitivamente el que sabe sabe.. aun soy muy nob en este tema... muchisisisisisimas gracias a DriverOp.. funciona correctamente y el error estaba en el html no en el php que era el que yo modificaba....

Por jumoga

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.