Question:
Date: 05-02-2015 07:30:29
(In Spanish)
Modo de uso:
Ayuda para completar una función de sanitización[Resolved]
Hola, estoy completando un codigo que me servirá para satinizar variables de un formulario, quisiera que me ayuden a completar, el primero está, es para comprobar que en una variable solo tenga datos tipo enteros, la segunda necesito para comprobar que sea una cadena pero que solo contenga de la a a la z y la ñ, nada mas, y la tercera para comprobar que sea un correo electronico.Modo de uso:
$Var_Correo = "Hola@gmail.com"; if(sanitizar($Var_Correo, 3) { print("Si es valido"); }else print("No es valido el correo"); function sanitizar($valor,$clase) { if($clase ==1) { if(is_int($valor)) { //si el valor informado es integer, se retorna sin problemas return true; } else { //si no es integer, se hace un casting a integer, si no puedes hacer el casting devuelve 0 return false; } } else if($clase ==2) { //nombres de [A-Za-z]{3,24} minimo 3 caracteres maximo 24 } else if($clase ==3) { //ayudenme para comprobar un correo electronico de una variable. } }Votes: 0 - Answers: 11 - Views: 8 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 05-02-2015 18:04:30 Hola Jose,
Te recomiendo utilizar POO pues tu código puede ser más legible.
Te paso un ejemplo:
<?php /** * Clases y funciones de sanitización * Archivo: sanitize.php * @package Sanitize */ namespace Sanitize; class SanitizeClass{ const INT = 1; const STRING = 2; const EMAIL = 3; public static function checkInt($value){ return filter_var($value, FILTER_VALIDATE_INT); } public static function checkString($value){ $options = array('options'=>array('regexp'=>'/[a-zA-Z]{3,24}/')); return filter_var($value, FILTER_VALIDATE_REGEXP, $options); } public static function checkEmail($value){ return filter_var($value, FILTER_VALIDATE_EMAIL); } public static function checkValue($value, $type){ $returnValue = false; switch($type){ case self::INT: $returnValue = self::checkInt($value); break; case self::STRING: $returnValue = self::checkString($value); break; case self::EMAIL: $returnValue = self::checkEmail($value); break; default: break; } return $returnValue; } }
Ya teniendo la clase lista en tu código lo mandas a llamar así:
<?php require_once 'sanitize.php'; use \Sanitize\SanitizeClass as SanityClass; $checaEnteroForma1 = SanityClass::checkInt(5); $checaEnteroForma2 = SanityClass::checkValue(5, SanityClass::INT); $checaStringForma1 = SanityClass::checkString('miCadenaDeCaracteres'); $checaStringForma2 = SanityClass::checkValue('miCadenaDeCaracteres', SanityClass::STRING); $checaCorreoForma1 = SanityClass::checkEmail('anonimo@example.com'); $checaCorreoForma2 = SanityClass::checkValue('anonimo@example.com', SanityClass::EMAIL); var_dump($checaEnteroForma1,$checaEnteroForma2,$checaStringForma1,$checaStringForma2,$checaCorreoForma1,$checaCorreoForma2);
No probé el código porque no tuve tiempo pero debe de darte una idea. No hay mayor ciencia para filtrar valores.
Personalmente te recomiendo utilizar filter_var sobre todo para validar correos pues hay muchas regexp que aunque parecen funcionar no cubren totalmente la especificación de direcciones de correo válidas.
Espero que te sirva. Votes: 1 - Link answer -
Date: 06-02-2015 05:02:30 Gracias ernesto, muchas gracias, tendo dudas;
Puedo usar una de las dos? o las dos al mismo tiempo?
$checaCorreoForma1 = SanityClass::checkEmail('anonimo@example.com'); $checaCorreoForma2 = SanityClass::checkValue('anonimo@example.com', SanityClass::EMAIL);
Otra cosa, me explicas que funcion realiza esto?
var_dump($checaEnteroForma1,$checaEnteroForma2,$checaStringForma1,$checaStringForma2,$checaCorreoForma1,$checaCorreoForma2);
Te agradesco mucho. Votes: 0 - Link answer -
Date: 06-02-2015 06:05:17 Puedes utilizar cualquiera de las dos.
La parte de var_dump es como ejemplo para que veas lo que tiene cada variable. Votes: 1 - Link answer -
-
-
-
Date: 06-02-2015 08:43:26 De hecho no habia leido bien y me corrijo, no son nada similares printf y var_dump.
la funcion printf te permite darle formato a una cadena que vas a escupir mientras que var_dump te da informacion acerca de la/las variable(s) que le pasas. Generalmente var_dump se usa para propositos de debuggear un script Votes: 1 - Link answer -
-
Date: 06-02-2015 10:58:43 print y printf son parecidos, son para desplegar una cadena de texto.
var_dump te da informacion de los parametros que le pases Votes: 0 - Link answer -
Date: 06-02-2015 11:08:45 Ok, amigo muchisimas gracias, voy a ver como funciona, gracias por tu tiempo. Votes: 0 - Link answer
-
To actively participate in the community first must authenticate, enter the system.Sign In