Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/06/2014, 07:14
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: filter_input_array o filter_input y duda con FILTER_SANITIZE

No debes pasarle el array con los datos ($_POST), si no un array con la definición de los datos (la forma que deben tener):
Código PHP:
Ver original
  1. $post = filter_input_array(INPUT_POST, array(
  2.     'email' => FILTER_VALIDATE_EMAIL,
  3.     'password' => FILTER_DEFAULT,
  4.     'otro_campo_de_tu_form' => FILTER_...
  5. ));

Lo mejor es que leas la documentación para saber cómo funciona concretamente, para que sepas cuando devuelve false o null (false cuando no ha pasado el filtro y null cuando una variable no ha sido definida).

Respecto al segundo punto, de cuando utilizar validate o sanitize, hay un mal concepto y muy generalizado, nunca deberías sanitizar la entrada, jamás!
Qué pasa si mi contraseña es "jdsakdl<sd>sds" (que desde luego, tengo derecho a elegir la contraseña que a mi me dé la gana) y tu antes de compararla con la que tienes en la base de datos me haces un strip_tags o FILTER_SANITIZE_SPECIAL_CHARS? pues que compararás esto: "jdsakdl<sd>sds" (lo que yo he introducido) con esto: "jdsakdlsds" (strip_tags) o esto: "jdsakdllt;sdgt;sds" (FILTER_SANITIZE_SPECIAL_CHARS).

Es decir, deberías sanitizar los datos, convertir las entidades html o eliminar tags sólo cuando vayas a mostrarlos en el navegador, de lo contrario no tiene sentido y estarías trabajando con datos truncados.