Author: Francko Martinez Language: php
Description: Validaciones Timestamp: 2009-04-02 19:40:44 -0400
View raw paste Child paste by: Not specified Reply
  1. <?php
  2.  
  3. class Validar {
  4.  
  5.     // Mensaje
  6.     protected $_mensaje;
  7.  
  8.     // Errores
  9.     protected $_errors;
  10.  
  11.     // Patron de expresion regular
  12.     protected $_patron;
  13.  
  14.     // Constantes para los tipos de validacion
  15.  
  16.     protected $VALIDA_TEXTO   = 1;
  17.     protected $VALIDA_NUM     = 2;
  18.     protected $VALIDA_EMAIL   = 4;
  19.  
  20.  
  21.    /**
  22.     * validar()
  23.     *
  24.     * función principal, donde se mandaran a llamar los diferentes tipos
  25.     * de validaciones.
  26.     *
  27.     * @param string $campo Nombre del campo el cual se validara
  28.     * @param string $valor valor del campo a validar
  29.     * @param int    $tipo de valicación a ejecutar
  30.     * @param int    $noEmpty bandera para verificar que no este vacio el campo.
  31.     *
  32.     **/
  33.     public function validar($campo, $valor, $tipo)
  34.     {
  35.        
  36.         if ($tipo == $this->VALIDA_TEXTO )
  37.         {
  38.           $valida = $this->_texto($valor);
  39.           if($valida != true ) {
  40.              $this->_mensaje['error'] .= "Campo {$campo}, debe contener solo texo%%";
  41.           }
  42.         }
  43.  
  44.         if ($tipo == $this->VALIDA_NUM)
  45.         {
  46.           $valida = $this->_numero($valor);
  47.           if($valida != true ) {
  48.              $this->_mensaje['error'] .= "Campo {$campo}, debe contener solo Numeros%%";
  49.           }
  50.  
  51.         }
  52.  
  53.        if ($tipo == $this->VALIDA_EMAIL)
  54.        {
  55.          $valida = $this->_email($valor);
  56.          if($valida != true ) {
  57.             $this->_mensaje['error'] .= "Campo {$campo}, debe contener una cuenta valida%%";
  58.          }
  59.  
  60.        }
  61.     }
  62.     /**
  63.      * getErrors()
  64.      *
  65.      * Regresa los errores que puedan existir
  66.      *
  67.      * return string $errors errores encontrados
  68.      */
  69.     public function getErrors()
  70.     {
  71.  
  72.         $this->_errors = $this->_mensaje['error'];
  73.        
  74.         if ($this->_errors)
  75.         {
  76.           //hago espli de los %% que se generan cada que escribo un mensaje de error.
  77.           $errores = split("%%", $this->_errors);
  78.  
  79.           foreach ($errores as $error):
  80.                    $errors .= "<p class='error'>".$error."</p>";
  81.           endforeach;
  82.  
  83.           $this->_errors = $errors;
  84.        }
  85.      
  86.       return $this->_errors;
  87.     }
  88.  
  89.     /**
  90.      * _texto
  91.      *
  92.      * Valida que el valor sea solo texto
  93.      *
  94.      * @param string $valor a validar
  95.      *
  96.      * @return true
  97.      */
  98.     private function _texto($valor)
  99.     {
  100.         $expresion = true;
  101.        
  102.         $this->_patron = "/^[a-zA-Z ,.áéíóúÁÉÍÓÚñÑ\- 0-9]*$/";
  103.         $expresion     = preg_match($this->_patron, $valor);
  104.        
  105.         return $expresion;
  106.     }
  107.  
  108.     /**
  109.      * _numero
  110.      *
  111.      * Valida que solo se contengan numeros
  112.      *
  113.      * @param string $valor a validar
  114.      *
  115.      * @return true
  116.      */
  117.     private function _numero($valor)
  118.     {
  119.         $this->_patron = "/^[0-9]*$/";
  120.         $expresion     = preg_match($this->_patron, $valor);
  121.  
  122.         return $expresion;
  123.     }
  124.    /**
  125.     * _email()
  126.     *
  127.     * Valida que el valor sea una cuenta de correo electronico
  128.     *
  129.     *
  130.     * @param string $valor a validar
  131.     *
  132.     * @return true
  133.     *
  134.     **/
  135.     private function _email($valor)
  136.     {
  137.         $this->_patron = "/^([-A-z0-9\.])+@(([-A-z0-9]+\.){1,3})([-A-z0-9]{2,4})$/";
  138.         $expresion     = preg_match($this->_patron, $valor);
  139.  
  140.         return $expresion;
  141.     }
  142. }
  143. ?>
View raw paste Child paste by: Not specified Reply