Foros del Web » Programando para Internet » PHP »

Ayuda con validación...

Estas en el tema de Ayuda con validación... en el foro de PHP en Foros del Web. Saludos, Tengo un formulario de envío de Email en HTML que envía la información a PHP. El formulario funciona bien, incluso la página de agradecimiento ...
  #1 (permalink)  
Antiguo 09/05/2007, 04:13
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Ayuda con validación...

Saludos,

Tengo un formulario de envío de Email en HTML que envía la información a PHP. El formulario funciona bien, incluso la página de agradecimiento después de cumplimentarlo y llega a su destino sin problemas.

He leído algunas cosas en el foro sobre validar a través de PHP y no de Javascript (por aquello del lado del servidor y no del cliente). Mi código php es el siguiente:

Cita:
<?php
$IP = $_SERVER['REMOTE_ADDR'];
$date = date("d-M-y H:i");
$nombre= $_POST['nombre];
$apellido = $_POST['apellido'];
$empleo = $_POST['empleo'];
$pais = $_POST['pais'];
$Email= $_POST['Email'];
$formsent = mail ('[email protected]', contacto',
------ Aquí hay una información en HTML ------------------------------------------------------ "Content-Type: text/html");
if ($formsent==true);{
header("Location:http://www.midominio.es/MuchasGracias.htm");
}
?>
No sé si es por la última parte del PHP (if ($formsent==true);{...) que no puedo validar como lo he hecho habitualmente o en algo estoy fallando.

Me podríais indicar dónde tendría que incluír las variables de validación dejando la posibilidad de abrir una página html si hay un error o la pagina actual si todo esta bien?

Gracias y cordiales saludos.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 10/05/2007, 07:52
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Ayuda con validación...

El problema con los campos no validados es principalmente la inyección de cabeceras.

Funciona así: alquien en el campo "Nombre" o en "EMAil" pone un salto de línea, algo como:

LoqueSea\nCC:[email protected],otramas@dom inio2.com

(en realidad no se hace con \n sino con un código hexadecimal que no recuerdo)

Y entonces estarías enviando el correo a [email protected] y a [email protected]. Resultado: usan tu formulario y tu ancho de banda para enviar correo basura (ya que también se puede, si los campos no están validados, sustituir el contenido del correo). Con la posible consecuencia de que la empresa de alojamiento te cancele la cuenta por enviar correo basura.


Solución:
Comprobar que no haya secuencias "\n" o "\r" en los campos de texto, y tener algunos cuidados también con las áreas de texto, por ejemplo no pegar el contenido junto a las cabeceras del correo.

Una regla de oro: Jamás confíes en la entrada del usuario, validá siempre. Y revisá los errores de seguridad más comunes en el tipo de sistema que estás programando (sea correo, bases de datos, o quizás sesiones).


Saludos.
  #3 (permalink)  
Antiguo 14/05/2007, 00:18
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Ayuda con validación...

Alvlin, Muchas gracias por tu consejo... Si es cierto que hay que seguir unos pasos para validar con la normativa w3c o sencillamente volver tu página más segura.

No obstante, y quizá es mi error, no me dejé explicar bien. Cuando hablo de validación me refería a de Qué manera puedo hacer que el usuario incluya toda la información en el formulario sin dejar en blanco ningún campo?

En general no busco que el usuario vea una pantalla o un aviso que diga "este campo es obligatorio, debe llenarlo"... Lo que busco es que si uno solo de los campos esta vacío el formulario no se envíe.

Saludos y gracias.
__________________
Andrew :P
  #4 (permalink)  
Antiguo 14/05/2007, 15:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Ayuda con validación...

Eso lo podés hacer con Javascript, fijate en las FAQ de ese foro, seguro encontrás lo que necesitás.
Aún deberías seguir comprobando las cosas con PHP, ya que es fácil desactivar Javascript y saltarse la protección.


Saludos.
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 06:02.