Foros del Web » Programando para Internet » PHP »

Error validar datos?

Estas en el tema de Error validar datos? en el foro de PHP en Foros del Web. Antes de nada pedir disculpas por si este post no esta en la sección correcta, yo creo que si pues es de php. Bueno, al ...
  #1 (permalink)  
Antiguo 12/08/2010, 10:15
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Error validar datos?

Antes de nada pedir disculpas por si este post no esta en la sección correcta, yo creo que si pues es de php. Bueno, al lio :

Bien, resulta que tengo una web alojada en 1and1 y tengo programadas varias funciones php para la gestión y envio de datos desde un formulario por via mail.El caso es que se supone que antes de enviar el correo pasa un script de validación para asegurarme de que los datos se hayan introducido de forma correcta, todo funciona aparentemente bien, no permite enviar correos en blanco ni que se pongan datos incorrectos en los campos,envia los correos y me llegan genial, pero digo aparentemente porque resulta que de vez en cuando me llegan correos en blanco.

He revisado una y otra vez las funciones php y los script de validación, he hecho pruebas directamente desde los formularios colgados en la página web y en ninguno me permite enviar los datos sin rellenar. Pero aun así algunos correos me llegan en blanco.

Aqui les dejo una muestra del Form y otra del php que uso, a ver si es fallo mio y no soy capaz de verlo o es otra cosa.
--------------------------------------------------------------------------------------------------------
form html
--------------------------------------------------------------------------------------------------------
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
#Layer1 {
position:absolute;
width:390px;
height:445px;
z-index:1;
}
#Layer2 {
position:absolute;
width:477px;
height:620px;
z-index:2;
left: 473px;
top: 45px;
}
#Layer3 {
position:absolute;
width:208px;
height:34px;
z-index:3;
left: 577px;
top: 8px;
}
-->
</style>
<script LANGUAGE="JavaScript">
<!-- Begin
function checkFields() {
missinginfo = "";
if (document.form.name.value == "") {
missinginfo += "\n - Nombre";
}
if (document.form.Apellidos.value == "") {
missinginfo += "\n - Apellidos";
}
if ((document.form.from.value == "") ||
(document.form.from.value.indexOf('@') == -1) ||
(document.form.from.value.indexOf('.') == -1)) {
missinginfo += "\n - Dirección de correo";
}
if (document.form.tlf.value == "") {
missinginfo += "\n - Teléfono";
}
if (document.form.tlf.value.length <= 8){missinginfo += "\n - Teléfono debe tener 9 cifras";}
if (document.form.tlf.value.length > 9){missinginfo += "\n - Teléfono debe tener 9 cifras";}
if (document.form.tlf.value == " "){missinginfo += "\n - Teléfono no puede contener espacios en blanco";}
if (isNaN(document.form.tlf.value)){
missinginfo += "\n - Teléfono debe tener solo cifras";
}
if (document.form.Poblacion.value == "") {
missinginfo += "\n - Población";
}
if (document.form.cp.value == "") {
missinginfo += "\n - Código Postal";
}
if (document.form.cp.value.length <= 4){missinginfo += "\n - Código Postal debe tener 5 cifras";}
if (document.form.cp.value.length > 5){missinginfo += "\n - Código Postal debe tener 5 cifras";}
if (isNaN(document.form.cp.value)){
missinginfo += "\n - El código postal debe tener solo cifras";
}
if (document.form.SL.value == "") {
missinginfo += "\n - Situación laboral";
}
if (document.form.cursos.value == "") {
missinginfo += "\n - Cursos";
}


if (missinginfo != "") {
missinginfo ="_____________________________\n" +
"Te ha faltado introducir los siguientes datos:\n" +
missinginfo + "\n_____________________________" +
"\n¡Por favor pulsa enter, rellena los datos y prueba de nuevo!";
alert(missinginfo);
return false;
}
else return true;
}
// End -->
</script>
</head>

<body bgcolor="#FFFFFF">
<font color="#FF0000">
<div id="Layer1">
<form name="form" onSubmit="return checkFields();" action="form_creatividad_locales.php" method="post">
<div align="left">
<pre>
<br> Nombre: <input type="text" name="name" size="30">
<br> Apellidos:<input type="text" name="Apellidos" size="30">
<br> E-mail: <input type="text" name="from" size="30">
<br> Tel&eacute;fono: <input type="text" name="tlf" size="30">
<br> Poblaci&oacute;n:<input type="text" name="Poblacion" size="30">
<br> C.P. : <input type="text" name="cp" size="30">
<br> <u>Curso/oposici&oacute;n</u>
<br> Escribe el nombre del
curso/oposici&oacute;n que
quieres realizar:
<input type="text" name="cursos" size="30">
<br> <u> Situaci&oacute;n Laboral</u>
<br> <input type="radio" name="SL" value="trabajando">Trabajando
<br> <input type="radio" name="SL" value="Parad@">Parado/a
<br> <input type="radio" name="SL" value="Estudiando">Estudiando
<br> Comentarios: <textarea rows="3" cols="40" name="comments"></textarea>

<input type="submit" name="submit" value="Enviar formulario">


El envio del correo supone la aceptaci&oacute;n
de los t&eacute;rminos de Ley de proteci&oacute;n de datos
y la pol&iacute;tica de privacidad
<a href="http://www.emaroposiciones.es/aviso_legal.html" style="color:#000000">Ver t&eacute;rminos y condiciones legales de Emar Oposiciones S.L.</a>
</pre>
<div id="Layer1"> </div>
</div>
</form>
</div>
<div id="Layer2"><img src="http://www.emaroposiciones.es/imagenes/imagenes creatividades/oposiciones_cuerpos_seguridad_2.jpg" width="550" height="650" /></div>
<div id="Layer3">
<input type="button" name="enviar_amigo" value="Enviar a un amigo" onclick="window.location.href='http://www.emaroposiciones.es/enviar_amigo/Enviar_cuerpos_seg_2.html'" />
</div>
</body>
</html>
--------------------------------------------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++
--------------------------------------------------------------------------------------------------------
Funcion php
--------------------------------------------------------------------------------------------------------
<?php
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $_POST["name"] . "\n";
$cuerpo .= "Apellidos: " . $_POST["Apellidos"] . "\n";
$cuerpo .= "Email: " . $_POST["from"] . "\n";
$cuerpo .= "Teléfono: " . $_POST["tlf"] . "\n";
$cuerpo .= "Población: " . $_POST["Poblacion"] . "\n";
$cuerpo .= "C.P.: " . $_POST["cp"] . "\n";
$cuerpo .= "Nombre curso: " . $_POST["cursos"] . "\n";
$cuerpo .= "Situación Laboral: " . $_POST["SL"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);
?>
--------------------------------------------------------------------------------------------------------

Gracias de antemano por la ayuda que me puedan prestar.
  #2 (permalink)  
Antiguo 12/08/2010, 10:24
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Error validar datos?

pues a tu correo aumentale el (document.form.from.value.length == 0); y en PHP por si las dudas aumentale la funcion

if (empty($_POST["from"])) {echo 'Ingresa tu correo.'; die ();}
__________________
Quitenme la vida pero no la bebida.
  #3 (permalink)  
Antiguo 12/08/2010, 10:30
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error validar datos?

Gracias por tu respuesta , lo voy a probar a ver si no vuelven a aparecer correos en blanco ya os contaré.
  #4 (permalink)  
Antiguo 13/08/2010, 04:05
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error validar datos?

Pués no ha funcionado, me siguen llegando algun mensaje en blanco.

Miren si pudiese ser esta teoria, y es que sea el host server que al caerse y reiniciars como una forma automatizada de poner los correos en marcha envie a modo de prueba, pero como no viene de los formularios ( que siguen validandome y no me dejan enviar mensaje sin datos cuando lo he intentado para verificar si falla algo) no puede adjuntarme ningun dato.

Creen que esto es posible?.

Gracias
  #5 (permalink)  
Antiguo 13/08/2010, 04:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error validar datos?

no tiene mucho sentido lo que planteas, pero...

¿que sucede si en lugar de enviar el correo haces lo siguiente?
Código PHP:
die($cuerpo); 
¿igualmente sale sin valores?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 13/08/2010, 05:16
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error validar datos?

Hola compañero, la verdad es que estoy anodadado con lo que esta sucediendo y es posible que mi teoría no tenga sentido, la verdad es que no entiendo que sucede.

Mis php, funcionan y me envian los correos con los datos relativos del formulario.Y en los formularios no me permite en ningun caso enviar correos vacios, pero aun así me llegan correos en blanco, como si hubiesen podido sortear el script de validacion de datos.

Esto es lo que me tiene tan desencajado y esque todas las pruebas que realizo no me deja enviar correos sin valores en los campos del formulario, y en verdad muchos correos llegan normalmente rellenados, pero no así un pequeño porcentaje que llegan en blanco.

en cuanto a matar el cuerpo del mensaje no le veo relación con el problema en sí, puesto que en realidad la gran mayoria de los mensajes llega, y llegan con el cuerpo desarrollado en la función php.

De todas formas lo voy a probar , que ya me tiene estos mensajes en blanco mosqueado.

y muchas gracias por tu respuesta.

ya os cuento sobre como funciona.

GRACIAS a todos
  #7 (permalink)  
Antiguo 13/08/2010, 07:03
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: Error validar datos?

A ver, a mi me pasó algo parecido...

Si almacenas las función Javascript en un archivo aparte y luego la incluyes haciendoalgo parecido a esto

<script LANGUAGE="JavaScript" src="funcion.js"></script>

En donde "funcion.js" es todo el código javiscript que estás implementando.
  #8 (permalink)  
Antiguo 17/08/2010, 02:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error validar datos?

Gracias amigo, es una buena idea. voy a probar.

aunque la verdad es que no creo que sea problema d codigo sino de maquina. pero enfin.

Gracias por vuestra ayuda.

Etiquetas: Ninguno
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 05:36.