hola, a continuación voy a poner una serie de patrones muy útiles para comprobar el valor de los campos enviados, ya que antes de realizar cualquier acción sobre la base de datos es muy aconsejable verificar su contenido, dichos patrones serán los que establezcan si un dato tiene los caracteres permitidos o no, por ejemplo si a través de un campo de email, alguien envía un formato incorrecto mail@.malo la ejecución del script se detiene en ese punto antes de establecer cualquier acción con la base de datos.
Alfabeto español -> /^[a-zA-ZñÑáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙ\s]+$/
Ejemplo de filtrado de datos con preg_match ...
$texto = "Canción"; $buscar= "/^[a-zA-ZñÑáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙ\s]+$/"; if (!preg_match($buscar, $texto)) { header("location: error.php"); return; } else { // Acciones correctas ... }
A través de la sentencia if se comprueba con la función preg_match() que los datos introducidos siguen un patrón de lo contrario se redirige a la dirección indicada en header y se retorna.
Siguiendo el mismo proceso anterior se pueden filtrar otros tipos de datos como los siguientes ...
$letras = "/^[a-zA-Z]+$/"; #sólo letras, pero esto no incluye los acentos, así que si introduces á no es correcto.
$letras_latinas = "/^[a-zA-ZñÑáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙ\s]+$/"; #para caracteres latinos(acentos) y espacios. el espacio se indica con \s.
$email = "/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,4}$/"; #para emails, válidos pueden ser: miemail@gmail.com, mi.email@gmail.es, ...
$password = "/^([a-z]+[0-9]+)|([0-9]+[a-z]+)/i"; #passwords que tienen que contener tanto números como letras
$url = "/^(ht|f)tps?:\/\/\w+([\.\-\w]+)?\.([a-z]{2,6})?([\.\-\w\/_]+)$/i"; #Para urls
$localhost = "/^http:\/\/(localhost|127\.0\.0\.1)/"; #para localhost
$codigo_postal = "/^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/"; #Para códigos postales
$NIF = "/^\d{8}[a-zA-Z]{1}$/"; #Para el Documento NIF
$CIF = "/^[a-zA-Z]{1}\d{7}[a-zA-Z0-9]{1}$/"; #Para el Documento CIF
$NIE = "/^[XxTtYyZz]{1}[0-9]{7}[a-zA-Z]{1}$/"; #Para el documento NIE
$VISA = "/^4[0-9]{3}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$/"; #Tarjetas de crédito VISA
$MASTERCARD = "/^5[1-5][0-9]{2}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$/"; #Tarjetas de crédito MASTERCARD
$fecha = "/^([0-9]{2}\/[0-9]{2}\/[0-9]{4})$/"; #Fecha formato: 12/12/2014
No hay comentarios:
Publicar un comentario