Foros del Web » Programando para Internet » PHP »

Validación de datos

Estas en el tema de Validación de datos en el foro de PHP en Foros del Web. Hola chicos, aquí vengo con otra de mis burradas.. hice mi super mega clase de validación de datos, pero oh! sorpresa, no me acepta los ...
  #1 (permalink)  
Antiguo 07/08/2010, 12:49
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Validación de datos

Hola chicos,

aquí vengo con otra de mis burradas.. hice mi super mega clase de validación de datos, pero oh! sorpresa, no me acepta los acentos ¬¬' ni la eñe..

en fin lo estoy haciendo con preg_match, y siento que algo me estoy perdiendo.. será que mi expresión regular esta mal???

jejeje les dejo la clasesilla, cualquier ayuda, será bien recibida ^^

Código PHP:
Ver original
  1. <?php
  2. class valida{
  3.     private $rsp;
  4.     function __construct(){
  5.         $this -> rsp = null;
  6.     }
  7.     function vacio($campo="", $valor=""){
  8.         if(empty($valor)){
  9.             $this -> rsp .= "<br>El campo <strong>".$campo."</strong> no puede estar vacio";
  10.             return true;
  11.         }
  12.         else
  13.             return false;
  14.     }
  15.     function numeros($campo="",$valor=""){
  16.         if(!$this -> vacio($campo,$valor))
  17.             if(!preg_match("/^([0-9 ]+)$/",$valor))
  18.                 $this -> rsp .= "<br>El campo <strong>".$campo."</strong> debe contener solo números"; 
  19.     }
  20.     function caracteres($campo="",$valor=""){
  21.         if(!$this -> vacio($campo,$valor))
  22.             if(!preg_match("/^([a-zA-ZáéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÄËÏÖÜäëïöü ]+)$/",$valor))
  23.                 $this -> rsp .= "<br>El campo <strong> ".$campo."</strong> debe contener solo caracteres".$valor;
  24.     }
  25.     function correo($campo="",$valor=""){
  26.         if(!$this -> vacio($campo,$valor))
  27.             if(!preg_match("/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/",$valor))
  28.                 $this -> rsp .= "<br>El campo <strong>".$campo."</strong> no contiene un correo electronico valido";
  29.     }
  30.     function alfanumerico($campo,$valor){
  31.         if(!$this -> vacio($campo,$valor))
  32.             if(!preg_match("/^([0-9a-zA-ZáéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÄËÏÖÜäëïöüñÑ;\.,-_{}*!\"&%()=¿?¡<>\/ ]+)$/",$valor))
  33.                 $this -> rsp .= "<br>El campo <strong>".$campo."</strong> contiene caracteres invalidos";
  34.     }
  35.     function telefono($campo,$valor){
  36.         if(!$this -> vacio($campo,$valor))
  37.             if(!preg_match("/^([0-9- ]+)$/",$valor))
  38.                 $this -> rsp .= "<br>El campo <strong>".$campo."</strong> contiene caracteres invalidos";
  39.     }
  40.     function comprobarDatos($campos){
  41.         foreach($campos AS $clave => $valor){
  42.             switch($valor['tipo']){
  43.                 case 'numerico':
  44.                         $this -> numeros($clave, $valor["valor"]);
  45.                 break;
  46.                 case 'caracter':
  47.                         $this -> caracteres($clave, $valor["valor"]);
  48.                 break;
  49.                 case 'correo':
  50.                         $this -> correo($clave, $valor["valor"]);
  51.                 break;
  52.                 case 'alfanumerico':
  53.                         $this -> alfanumerico($clave, $valor["valor"]);
  54.                 break;
  55.                 case 'telefono':
  56.                         $this -> telefono($clave, $valor["valor"]);
  57.                 break;
  58.                 default:
  59.                     die("Falta tipo de dato para comprobar");
  60.             }
  61.         }
  62.         return $this -> rsp;
  63.     }  
  64. }
  65. ?>
  #2 (permalink)  
Antiguo 07/08/2010, 13:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Validación de datos

los acentos, así como tildes los puedes cubrir usando \p{L}

osea... que no es necesario listar los acentos, ni nada... tan solo esto:
Cita:
/[\s\w\p{L}]+/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/08/2010, 13:33
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Validación de datos

super!

pateketrueke ya te debo una ;) so many tks!

sabía lo de\s, pero no lo de \p{L} jojo! tks! ^^
  #4 (permalink)  
Antiguo 07/08/2010, 14:14
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Validación de datos

Cita:
Iniciado por silvanha Ver Mensaje
super!

pateketrueke ya te debo una ;) so many tks!

sabía lo de\s, pero no lo de \p{L} jojo! tks! ^^
Tantas felicitaciones y no dar Karma es casi motivo de detención y cacheo en este foro, yo solo aviso
  #5 (permalink)  
Antiguo 12/08/2010, 12:01
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Validación de datos

jajajaja Vun, recién leo tu mensaje, si tienes la razón del mundo, precisamente hoy por la mañana estaba pensando en eso jajaajajaja ya voe pueee ;)

Edito: Vengome dando cuenta de que en temas viejos nunca di las gracias, ni mostraba cuando las cosas me salían, ni los resultados, responder ahorita, sería una grosería son temas de hace años!! O.O pero daré Karma, si señor mi conciencia me lo reclama u.u
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)

Última edición por silvanha; 12/08/2010 a las 12:07

Etiquetas: validar
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:07.