Foros del Web » Programando para Internet » PHP »

mail form envia campos vacios

Estas en el tema de mail form envia campos vacios en el foro de PHP en Foros del Web. Saludos, Estoy desarrollando un formulario en donde al darle enviar y aun asi teniendo mi validacion de campos si le doy "enviar" con los campos ...
  #1 (permalink)  
Antiguo 24/09/2012, 08:43
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Pregunta mail form envia campos vacios

Saludos,
Estoy desarrollando un formulario en donde al darle enviar y aun asi teniendo mi validacion de campos si le doy "enviar" con los campos en blanco sigue enviando el formulario...

Estaba buscando la solución en JS pero al parecer no me funciona ya que el envio de datos es ordenado y verificado en php.... Como podria hacer para que no me enviara nada si mis campos son = vacio?

aqui les dejo el código

Código PHP:
<?php
$direccion_envio
'[email protected]';                                 

$url'http://www.fullrapido.com/publicate/prueba';     

$cantidad_archivos10;                                                         
?>
<?php 
    
/*
     * Permite enviar y/o subir múltiples archivos, usando PHP, javascript y PHP Mailer para  el envío de mails
     * Autor: Alexander Concha Abarca <alex[@]buayacorp.com>
     * http://www.buayacorp.com/
     * 
     * Este script está bajo licencia de Creative Commons 
     * http://creativecommons.org/licenses/by/2.0/
     */
    // Para el envío de mails
    
include_once('class.phpmailer.php');
    
// Indica si los datos provienen del formulario
    
$postback = isset($_POST['postback']) ? true false;
    
    if (
$postback) {
        
extract($_POST);
        
$mail = new phpmailer (); # Crea una instancia
        
$mail -> From $to;
        
$mail -> FromName "FullRapido Publicate"# Puede obtenerse del formulario, por facilidad se hace de esta manera
        
$mail -> AddAddress ($direccion_envio);
        
$mail -> Subject "Nuevo Anunciante en FullRapido.come";
        
$contenido '<html><body>';
$contenido .= '<h2>Publicate FullRapido.com</h2>';
$contenido .= '<p>Enviado el '.  date("d M Y").'</p>';
$contenido .= '<hr />';
$contenido .= '<p>Nombre: <strong>'.$to.'</strong></p>';
$contenido .= '<p>RIF: <strong>'.$rif.'</strong></p>';
$contenido .= '<p>Dirección: <strong>'.$to3.'</strong></p>';
$contenido .= '<p>Teléfonos: <strong>'.$to2.'</strong></p>';
$contenido .= '<p>Teléfonos: <strong>'.$to4.'</strong></p>';
$contenido .= '<p>Teléfonos: <strong>'.$to5.'</strong></p>';
$contenido .= '<p>FAX: <strong>'.$to6.'</strong></p>';
$contenido .= '<p>Página Web: <strong>'.$to7.'</strong></p>';
$contenido .= '<p>Email: <strong>'.$to8.'</strong></p>';
$contenido .= '<p>Email: <strong>'.$to9.'</strong></p>';
$contenido .= '<p>Sub-Dominio: http://www.<strong>'.$to10.'</strong>.fullrapido.com</p>';
$contenido .= '<p>Seccióm: <strong>'.$seccion1.'</strong></p>';
$contenido .= '<p>Seccióm: <strong>'.$seccion2.'</strong></p>';
$contenido .= '<p>Seccióm: <strong>'.$seccion3.'</strong></p>';
$contenido .= '<p>Misión: <strong>'.$mision.'</strong></p>';
$contenido .= '<p>Visión: <strong>'.$vision.'</strong></p>';
$contenido .= '<p>Servicios: <strong>'.$servicios.'</strong></p>';
$contenido .= '<p>Red Social 1: <strong>'.$to11.'</strong></p>';
$contenido .= '<p>Red Social 2: <strong>'.$to12.'</strong></p>';
$contenido .= '<hr />';
$contenido .= '</body></html>';
        
$mail -> Body $contenido;
        
$mail -> IsHTML (true);
        
$archivos '';
        
$msg "<span class='titulos2'>Sus datos fueron enviados correctamente</span>";
        
           if (isset (
$_FILES["archivos"])) { # Si es que se subió algún archivo
            
$msg .= "<ul>";
            foreach (
$_FILES["archivos"]["error"] as $key => $error) { # Iterar sobre la colección de archivos
                
if ($error == UPLOAD_ERR_OK) { // Si no hay error
                    
$tmp_name $_FILES["archivos"]["tmp_name"][$key];
                    
$name $_FILES["archivos"]["name"][$key];
                    
$msg .= "<li>$name</li>";
                    
$name uniqid('bc') . '_' $name# Generar un nombre único para el archivo
                    
$mail -> AddAttachment ($tmp_name$name); # Añade el archivo adjunto
                    /*
                    Si se van a guardar los archivos en un directorio, deberían descomentarse
                    las siguientes líneas, si se van a guardar los nombres 
                    de los archivos en una base de datos, aquí debería realizarse algo...                    
                       
                    move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicación, debe tener los permisos necesarios
                    */
                
#if
               
# foreach
            
$msg .= '</ul>';
        } 
# if
        
if (!$mail -> Send ()){
            
$msg "No se pudo enviar la carga de datos";
        }
    }
?>
Gracias
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 24/09/2012, 09:39
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 18 años, 1 mes
Puntos: 16
Respuesta: mail form envia campos vacios

Si la Validación JS no te funciona, de seguro es por algún WARNING en JS, prueba con IE y si te sale el ALERT en la parte inferior izquierda, es que debes de darle una revisada a tu código.

Saludos
__________________
Msn: [email protected]
  #3 (permalink)  
Antiguo 24/09/2012, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: mail form envia campos vacios

Es simple, con un if() lo puedes hacer, verificas la variable y si esta vacía, marcas un error:
Código PHP:
Ver original
  1. if (empty($myvar)) {
  2.      echo "¡myvar esta vacía!";
  3. } else {
  4.      // mail
  5. }

Etiquetas: campos, envia, formulario, html, mail, vacios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:09.