Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2010, 12:49
Avatar de silvanha
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. ?>