Foros del Web » Programando para Internet » PHP »

Recibiendo formularios vacios

Estas en el tema de Recibiendo formularios vacios en el foro de PHP en Foros del Web. Muy buenas. Necesito vuestra ayuda ya que por algun motivo que desconozco me envian desde mi web formulario vacios, cuando por logica no se podria. ...
  #1 (permalink)  
Antiguo 06/07/2012, 04:51
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 2 meses
Puntos: 6
Recibiendo formularios vacios

Muy buenas.
Necesito vuestra ayuda ya que por algun motivo que desconozco me envian desde mi web formulario vacios, cuando por logica no se podria.
os dejo el codigo para ver si alguien me da una solución.
Formulario
Código:
<form id="pie" onSubmit="return validar(this)" action="enviar.php" method="post">
                    <input type="text" name="nombre" id="nombre" alt="Nombre" value="Nombre"  onfocus="cambiar(true,'nombre','Nombre')" onBlur="cambiar(false,'nombre','Nombre')"/>
                    <input type="text" name="mail" id="mail" alt="E-mail" value="E-mail" onFocus="cambiar(true,'mail','E-mail')" onBlur="cambiar(false,'mail','E-mail')" />
                    <input type="text" name="telefono" id="telefono" alt="Telefono" value="Telefono" onFocus="cambiar(true,'telefono','Telefono')" onBlur="cambiar(false,'telefono','Telefono')" />
                    <select name="tipo" id="tipo">
                    <option value="">¿Que necesitas?</option>
                    <option value="Diseño web completo">Diseño web completo</option>
                    <option value="Diseño web completo + Hosting y Dominio">Diseño web completo + Hosting y Dominio</option>
                    <option value="Diseño logotipo"> Diseño logotipo</option>
                    <option value="Diseño publicidad"> Diseño publicidad</option>
                    <option value="Diseño 2D tiendas, stand para ferias"> Diseño 3D tiendas, stand para ferias</option>
                    <option value="Diseño tienda virtual"> Diseño tienda online</option>
                    <option value="Depuración de codigo"> Depuración de codigo</option>
                    <option value="Actualización de codigo"> Actualización de codigo</option>
                    <option value="Personalización de blog"> Personalización de blog</option>
               		</select>
                    <select name="conocer" id="conocer">
                    <option value="">¿Como nos conociste?</option>
                    <option value="A traves de internet"> A traves de internet</option>
                    <option value="A traves de un amigo"> A traves de un amigo</option>
                    <option value="A traves de un foro"> A traves de un foro</option>
               		</select>
                    <label id="msg"><p>Describenos tú idea.</p></label>
                    <textarea name="msg" class="color" id="msg" alt="Comentario" value="Comentario" onFocus="cambiar(true,'msg','Comentario')" onBlur="cambiar(false,'msg','Comentario')"></textarea> 
                    <div id="btn_form">
                    <input type="submit" value="enviar" alt="enviar"  />
                    </div>
                    </form>
Este es el archivo de validacion
Código:
function validar(f){
			var error="";
			var f=document.forms[0];
			var nombre=f.nombre.value;
			var email=f.mail.value;
			var telefono=f.telefono.value;
			var tipo=f.tipo.value;
			var conocer=f.conocer.value;
			var msg=f.msg.value;
			
			if(!isString(nombre) || nombre=="Nombre"){
				error += "\n <br /><span> El nombre es obligatorio.</span>";
				document.getElementById("nombre").style.borderColor= "#f00";
			}	  	
			if(!isMail(email) || email=="E-mail"){
				error += "\n <br /><span> El mail no es correcto.</span>";
				document.getElementById("mail").style.borderColor= "#f00";
			}
			if(!isTelephone(telefono)){
				error += "\n <br /><span>  El telefono no es correcto.</span>";
				document.getElementById("telefono").style.borderColor= "#f00";
			}
			if(!isString(tipo) || tipo==""){
				error += "\n <br /><span> El tipo de servicios es necesario.</span>";
				document.getElementById("tipo").style.borderColor= "#f00";
			} 
			if(!isString(conocer) || conocer==""){
				error += "\n <br /><span>Como nos conociste es necesario.</span>";
				document.getElementById("conocer").style.borderColor= "#f00";
			}
			if(!isString(msg) || msg=="Comentario"){
				error += "\n <br /><span> El comentario es obligatorio.</span>";
				document.getElementById("msg").style.borderColor= "#f00";
			}
			if(error==""){
				return true;
			} else{
				formMsg("<span2>Revise los siguientes errores:</span2>" + error);
				
				return false;
			}
		}
		function limpia(objeto){
			objeto.style.borderColor="#978b7e";
		}
		
		function cambiar(b,campo,porDefecto){
	var input = document.getElementById(campo);
	if (b && (input.value == "" || input.value == porDefecto)) {
		input.value = "";
		input.style.color = "#5599cc";
	} else if (!b && input.value == "") {
		input.value = porDefecto;
		input.style.color = "#5599cc";
	} else {
		input.style.color = "#5599cc";
	}
}
function inicio(){
	var inputs = document.getElementsByTagName("input");
	for (var i = 0; i < inputs.length; i++ ){
		if (inputs[i].value != inputs[i].alt) {
			//inputs[i].style.color = "#000";
			inputs[i].value = inputs[i].alt;
		}
	}
}


function formMsg(t){
	$("#formMsg").stop(true,true).html(t).show().delay(4000).fadeOut(4000);
}
Y este el php de envio
Código:
<?php
$nombre  = $_POST['nombre'];
$mail 	= $_POST['mail'];
$telefono 	= $_POST['telefono'];
$proyecto 	= $_POST['tipo'];
$conocer 	= $_POST['conocer'];
$mensaje 	= $_POST['msg'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este correo electronico fue enviado por " .$nombre." \r\n";
$mensaje .= "Realizando una consulta sobre el siguiente proyecto : " .$proyecto. " \r\n";
$mensaje .= "Su numero de telefono es el: " .$telefono. " \r\n";
$mensaje .= "Su e-mail es: " .$mail. " \r\n";
$mensaje .= "Como nos conociste:".$conocer."\r\n";
$mensaje .= "Mensaje: " .$_POST['msg']. " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Desde PaxarinDesing inicio';

mail($para, $asunto, utf8_decode($mensaje), $header);
/**
	Validate an email address.
	Provide email address (raw input)
	Returns true if the email address has the email 
	address format and the domain exists.
	*/
	function isValidEmail($email) {
		$isValid = true;
		if (strstr($_SERVER['HTTP_HOST'],'localhost') == FALSE) {
			$atIndex = strrpos($email, "@");
			if (is_bool($atIndex) && !$atIndex) {
			  $isValid = false;
			} else {
			  $domain = substr($email, $atIndex+1);
			  $local = substr($email, 0, $atIndex);
			  $localLen = strlen($local);
			  $domainLen = strlen($domain);
			  if ($localLen < 1 || $localLen > 64) {
				 // local part length exceeded
				 $isValid = false;
			  } else if ($domainLen < 1 || $domainLen > 255) {
				 // domain part length exceeded
				 $isValid = false;
			  } else if ($local[0] == '.' || $local[$localLen-1] == '.') {
				 // local part starts or ends with '.'
				 $isValid = false;
			  } else if (preg_match('/\\.\\./', $local)) {
				 // local part has two consecutive dots
				 $isValid = false;
			  } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) {
				 // character not valid in domain part
				 $isValid = false;
			  } else if (preg_match('/\\.\\./', $domain)) {
				 // domain part has two consecutive dots
				 $isValid = false;
			  } else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) {
				 // character not valid in local part unless 
				 // local part is quoted
				 if (!preg_match('/^"(\\\\"|[^"])+"$/',str_replace("\\\\","",$local))) $isValid = false;
			  }
			  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) {
				 // domain not found in DNS
				 $isValid = false;
			  }
			}
		}
		return $isValid;
	}

 echo "<script>window.location='http://www.paxarindesign.es/resp_formu.html'</script>";
?>
La dirección de mi web por si quereis probar algo es http://www.paxarindesign.es
Los formularios me los envian desde el formulario que hay en el inicio
Un saludo y gracias
__________________
http://www.paxarindesign.es
  #2 (permalink)  
Antiguo 06/07/2012, 05:39
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 16 años, 3 meses
Puntos: 8
Respuesta: Recibiendo formularios vacios

Creo que tu problema está en el archivo de envío prueba modificando esta parte:

Código PHP:
<?php
$nombre  
'$_POST[nombre]';
$mail     '$_POST[mail]';
$telefono     '$_POST[telefono]';
$proyecto     '$_POST[tipo]';
$conocer     '$_POST[conocer]';
$mensaje     '$_POST[msg]';

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje 'Este correo electronico fue enviado por '.$nombre.' \r\n';
$mensaje .= 'Realizando una consulta sobre el siguiente proyecto : '.$proyecto.' \r\n';
$mensaje .= 'Su numero de telefono es el: '.$telefono.' \r\n';
$mensaje .= 'Su e-mail es: '.$mail.' \r\n';
$mensaje .= 'Como nos conociste:'.$conocer.'\r\n';
$mensaje .= 'Mensaje: '.$_POST['msg'].' \r\n';
$mensaje .= 'Enviado el 'date('d/m/Y'time());

$para '[email protected]';
$asunto 'Desde PaxarinDesing inicio';
  #3 (permalink)  
Antiguo 06/07/2012, 09:09
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Recibiendo formularios vacios

Cita:
Iniciado por Panicav Ver Mensaje
Creo que tu problema está en el archivo de envío prueba modificando esta parte:

Código PHP:
<?php
$nombre  
'$_POST[nombre]';
$mail     '$_POST[mail]';
$telefono     '$_POST[telefono]';
$proyecto     '$_POST[tipo]';
$conocer     '$_POST[conocer]';
$mensaje     '$_POST[msg]';

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje 'Este correo electronico fue enviado por '.$nombre.' \r\n';
$mensaje .= 'Realizando una consulta sobre el siguiente proyecto : '.$proyecto.' \r\n';
$mensaje .= 'Su numero de telefono es el: '.$telefono.' \r\n';
$mensaje .= 'Su e-mail es: '.$mail.' \r\n';
$mensaje .= 'Como nos conociste:'.$conocer.'\r\n';
$mensaje .= 'Mensaje: '.$_POST['msg'].' \r\n';
$mensaje .= 'Enviado el 'date('d/m/Y'time());

$para '[email protected]';
$asunto 'Desde PaxarinDesing inicio';
Muchas gracias por tu respuesta pero necesitaria algo más de información.
Un saludo
__________________
http://www.paxarindesign.es

Etiquetas: formulario, html, recibiendo, 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 18:55.