Programacion

Como Validar Una Fecha Con La Fecha De Hoy

La validación de cualquier dato de entrada de nuestro formulario es de suma importancia para la usabilidad este pueda tener en nuestro sistema. Evitar que se introduzca cualquier dato incorrecto en un sistema es uno de los requisitos exigidos a la informática y se ha convertido en una de las funciones mejor implementada por la sencilla razón de que la fiabilidad de un sistema informático depende de la información que contiene. Por ello, la validación constituye una función imprescindible en cualquier aplicación informática.

En este caso veremos como validar una fecha de una manera sencilla pero muy practica y útil. Con estas funciones conseguiremos manipular más comodamente los datos de la fecha (dia, mes, año), y después podremos crear una clase para nuestras funciones de validación como lo vimos en el tutorial ("Como crear una clase en PHP").

Primero necesitamos crear un nuevo registro en nuestro formulario y en nuestra base de datos con el nombre fecha.

Nota 1: aclaro que esta validación se hace en el serviidor, es decir,  que el programador tiene el control de cualquier susceso con la función y los datos respectivamente.

Aqui les presento la primera función que utilizaremos para la validación de la fecha:

 $str = '25/12/1986';
 $fecha = (explode('/', $str, 3));
 //valido dia
 $fecha[0] = $dia;
 $fecha[1] = $mes;
 $fecha[2] = $año;
 if($dia<= 31){
 echo 'es correcto';
 }else{
 echo 'es incorrecto';    
 }
 //valido mes
 if($mes< 13){
 echo 'es correcto';
 }else{
 echo 'es incorrecto';    
 }
 //valido año
 if($año< $today["year"]){
 echo 'es correcto';
 }else{
 echo 'es incorrecto';    
 }

En la primer linea tenemos la fecha, la coloco como tipo string y lo almaceno en una variable "$str" para poder utilizar la función explode.
En la segunda utilizo la función explode() para separar los 3 elementos ($dia, $mes, $año) y asignarlos a la variable tipo arreglo $fecha.
Después, ya separados los elementos puedo validar cada unos de ellos; el día siempre y cuando sea menor igual que 31, el mes que sea menor que 13 o menor igual que 12.
En el caso de la validación del año es diferente pues el año introducido se compara con el actual, por ejemplo: 1969 < 2010; esto lo consigo por medio de otra función que me devuelve la fecha actual, pero de donde se extrae solo el año.

La función utilizada es la siguiente:

 function today($timezone='America/Monterrey'){
 date_Default_Timezone_Set($timezone);
 //establece la zona horaria;segun el parametro.
 $datestr = date("j/n/Y/g/i",strtotime("now"));
 $arrDay = array ("","Ene", "Feb", "Mar", "Abr", "May", "Jun","Jul","Ago","Sep","Oct","Nov","Dic");
 $datearr = explode('/', $datestr);
 $today = array('year'=>$datearr[2],
 'month'=>$arrDay[9],
 'month_num'=>$datearr[1],
 'day'=>$datearr[0],
 'hour'=>$datearr[3],
 'minute'=>$datearr[4]);
 return $today;
 }

Esta función además de extraer solo el valor de año para nuestra comparación, también nos sirve para otro tipo de cuestiones, ya que nos devuelve la fecha y hora  en dicha zona horaria ($timezone='America/Monterrey'), además el número del mes , y si es el caso, hasta los segundos. Esta función se puede adaptar a muchos casos, por ejemplo : si queremos que nuestra página tenga por default la fecha y hora  al momento que accedemos.

 

Nota2:esta función en conjunto con las demás que vayamos creando para nuestras validaciones las podemos poner en una clase para tener una mejor organización.

Como hacer una validacion del RFC

 


 

En esta ocacion haremos una validacion al rfc con una funcion , ya que es muy util dentro de un sistema de altas, bajas cambios y listado(ABCL), en PHP; en el que porsupuesto incluimos el RFC como dato de entrada.

 

El Registro Federal de Contribuyentes (RFC) es una clave que tiene toda Persona física en México que realice alguna actividad licita que este obligada a pagar impuestos o toda Persona moral sin excepción. A estas personas se les llama contribuyentes. Esta clave debe llevar datos personales del contribuyente o persona física como su nombre y fecha de nacimiento; o nombre y fecha de origen de la persona moral.

Y se determina de la siguiente manera:

 

Para la Persona física: VECJ880326 XXX

Las primeras dos letras (VE) son el apellido paterno más la primera vocal interna del apellido paterno.

El tercer dígito (C) es la inicial del apellido materno. De no existir un apellido materno se utiliza una (X).

El cuarto dígito (J) es la inicial del primer nombre.

Los primeros dos dígitos son el año de nacimiento (88).

Los segundos dígitos son el mes de nacimiento (03 o marzo).

Los terceros dígitos son el día de nacimiento (26).

Por lo tanto la persona nació el veintiséis de marzo de 1988.

Los últimos dígitos (XXX) se le conoce como homoclave, esta la designa el SAT, dependiendo de algunos factores que realiza el SAT por medio de sistemas numéricos o alfanuméricos.

Esta homoclave la designará el SAT, revisando la petición a través de papel oficial ya designado...


Entonces para nuestra validación del rfc creamos la siguiente funcion:

function validaRfc($rfc){
 $okRfc = 0;
 $rfc = str_replace("-", "", $rfc);
 if(strlen($rfc)>=10 and strlen($rfc)<=13){
 $subsLetras = substr($rfc, 0, 4);
 $subsNumeros = substr($rfc, 4, 10);
 if ( !is_numeric($subsLetras) ){
 if(is_numeric($subsNumeros)){
 $okRfc = 1;  
 }else{
 $okRfc = 0;
 }
 }else{
 $okRfc = 0;
 }
 }else{
 $okRfc = 0;
 }
 
 
 }

Dentro de la funcion defino $okRfc = 0; para tomarlo por default.

Suele pasar que al momento de que el usuario introduzca su rfc coloca guiones para separar letras de los numeros etc. Pues este mismo puede estar acostumbrado a escribirlo asi, por eso es importante  que dentro de la función se reemplazen guiones por espacios en blanco con str_replace(), como lo hago en la segunda linea del codigo.

En la siguiente linea utilizo una sentencia de condición para la longitud de del rfc.

Despues en las lineas de codigo posteriores, almaceno la primera parte de letras y por ende en la segunda la de numeros.

Nota 1: es interesante el uso de la funcion substr porque te facilita el trabajo de tener que dividirlo y despues hacerle una serie de operaciones para llegar al mismo fin, ya que con esta función substraemos la parte del string que ocupamos y le hacemos la operación final como en este caso.

Ahora como el valor devuelto por la función es string ocupamos una sentencia de condicional para evaluar las dos ultimas lineas de codigo en donde comprobamos si el contenido de la variable es string o es numeric.

Asi obtenemos la validacion del rfc.


Nota 2: hago enfasis en la definicion de $okRfc = 0; pues si una de estas condiciones no se llegara a cumplir, por default la funcion devolvera false o “0”. Y tambien les comento  


 

 

 

 

 

Como acceder  a una base de datos desde PHP

Comenzaré mencionando que PhpMyAdmin es un programa de libre distribución en PHP. Es una herramienta muy completa que permite acceder a todas las funciones típicas de la base de datos MySQL a través de una interfaz web muy intuitiva.

 

La herramienta nos permite crear tablas, insertar datos en las tablas existentes, navegar por los registros de las tablas, editarlos y borrarlos, borrar tablas y un largo etcétera, incluso ejecutar sentencias SQL y hacer un backup de la base de datos.

 

Lo primero que debemos hacer es accesar a MySQL y en la parte izquierda encontraremos enlistadas las bases de datos que iremos creando. En la parte del centro de la pantalla encontramos un apartado que tiene titulo de MySQL localhost y nos ofrece la posibilidad de crear una nueva base de datos, despues de nombrarla le damos clic en crear y nos transportará dentro de la base de datos donde crearemos una tabla y el numero de campos . Ejemplo: base de datos : comercializadora->tabla: clientes->campos: 5->registros: id_cliente, nombre, direccion, rfc, telefono.

 

De esta manera hemos creado nuestra base de datos.

 

Despues crearemos nuestra base de datos como lo aprendimos con MySQL.

 

El nombre de la base de datos será por ejemplo: comercializadora y dentro, una tabla (productos), con 5 campos(id_cliente, nombre, cantidad, descripcion, costo).

 

 

Ahora les diré como acceder a la base de datos desde PHP:

 

Como primer paso crearemos la conexión con el MySQL, el script correspondiente será conexión.php, el cual estará incluido utilizando la funcion include (nombre_archivo) de PHP, en todos los demás scripts del sitio que trabajen con la base de datos para establecer la conexión ahorrando líneas de código.

 

Nota_1: Sin una conexión establecida no se podrá trabajar con la base de datos.

 

Previamente creamos una clase modPRoductosDB();

 

En el caso de nuestro ejemplo el script tendrá el siguiente codigo:

 

 

 

$dbProductos = new modProductosDB("localhost", "root", "", "comercializadora"); //instanciamos la clase e indicamos lo parametros "localhost", "root" y “comercializadora” de la base de datos a la que accederemos y la almacenamos en la variable $dbProductos .

 

//$conexion=mysql_connect("localhost", "root", "");//En esta linea de codigo hacemos la conexion con MySQL, y guardamos en la variable $conexion.

 

//mysql_select_db("comercializadora", $conexion);//ahora por medio de esta funcion creamos la relacion entre la base de datos y el server.

 

Nota_2:En nuestro codigo podemos agregar opcionalmente codigo HTML para dar formato; podemos agregar un titulo y una tabla que almacene nuestros registros.

 

Y continuando con el ejemplo indicaré un caso:

case 'editar': 
 
if(!$_POST){ 
//buscar un registro por id_cliente de la base de datos 
//$ssql= "select * from productos where id_cliente='".$_GET['id_cliente']."';"; 
 
//$registros = mysql_query($ssql, $conexion); 
//$datosproductos = mysql_fetch_array($registros); 
 
echo $datosProductos;
 }else{ 
$ssql= "update productos set cantidad='". $_POST["cantidad"] ."', nombre= '". $_POST["nombre"] ."', descripcion='". $_POST["descripcion"] ."', costo='". $_POST["costo"]."' where id_cliente ='".$_POST['id_cliente']."' ";
 
 if(mysql_query($ssql, $conexion)){
 if($dbProductos){ 
 echo"Actualizo correctamente<a href="/productos.php?action=insertar">agregar nuevo registro</a>".' '."retornar a la lista";
 
}else{ 
echo "No actualizo nada "; 
 
} 
 } 
break;

Les recuerdo que tener bien ordenado nuestro codigo nos ayuda a encontrar mas rápido datos u errores, por eso es importante la identación.

Otro tip es poner especial atención en las mayúsculas y minúsculas de nuestro codigo regularmente usadas en funciones.

 

 

 

 

Cómo crear clases en PHP



El concepto de programación de objetos es una técnica que intenta  asemejar la forma de pensar humana. Para comprender un poco más este concepto podemos pensar un aspecto de la vida real como un sistema basado en objetos: una silla , un coche, un boligrafo, unas sandalias, un vaso, y hasta un ser humano, y cada objeto con sus características que la describen, que, en programación las nombramos (propiedaes), y sus capacidades o tareas posibles a realizar (metodos) .

Continuando con el ejemplo , un coche resulta ser el objeto con propiedades como color, forma, puertas, llantas, motor y puede realizar tareas como arrancar, frenar, dar vuelta , retroceder, igual que el coche , un ser humano también puede ser un objeto es decir cumple con los requisitos para serlo, tiene forma, color, extremidades y tiene capacidad de correr, brincar, hablar, gritar, entre otras.

Cuando caminamos por algun lugar y observamos personas deiferentes, pues tenemos la idea de serlo y cada una de estas personas en terminos de programación seria una instancia de esa clase, con características iguales pero propiedades distintas por ejemplo todos tenemos piel pero cada uno puede tener la piel de distinto color.

Entonces en resúmen una clase es la idea que tenemos de los objetos con sus propiedades...

Bien, entonces comprendido el concepto le diré en términos de programación que una clase es una colección de variables y funciones que trabajan de forma de objetos. las variables se definen con var y las funciones utilizando function.

La sintaxis basica de una clase en PHP es la siguiente:

class nombre_clase {
var $propiedad_1;
var $propiedad_2;
var $propiedad_3;

function método_1($parametro) {
 instrucciones_del_método;
}
}
?>

1.-Primero colocamos la sentencia class.
2.-Después el nombre de la clase, sobre la misma línea les recomiendo abrír la  llave para el cuerpo de la clase para tener una mejor organización de su código.
3.-Y debajo declaramos las variables tipo objeto, las cuales tendrán un uso dinamico dentro de la clase, por ejemplo si colocamos dos o mas metodos que utilicen las mismas variables las podemos llamar al metodo facilmente con la seudo-variable $this la cual hará referencia a la variable tipo objecto anteponiéndose de la siguiente forma:  $this->variable_tipo_objeto o función;.En otro ejemplo: el ser humano puede tener piel como otro ser humano pero diferente color de piel.
4.-Continuamos ahora colocando un constructor el cual debe llevar el mismo nombre que la clase para su llamado automático, su función la explicamos mas adelante.
5.-Ahora ponemos las funciones que necesitemos para realizar tareas determinadas con un tema especifico(se recomienda colocar funciones de la misma indole para una mejor organizacion)
6.-Finalizamos cerrando la llave que abrimos en un inicio identándola con la sentencia class para que podamos tener una mejor vista rapida y un código mas organizado.

El Constructor
*Es la función principal en una clase que es llamada automáticamente cuando se crea una nueva instancia de una clase con new y esta se ejecuta al momento de crear la instancia o el objeto.
*Una función se convierte en un constructor cuando tiene el mismo nombre que la clase.
*Si tiene una clase que no tiene constructor, el constructor de la base sera llamado, si existe.

La seudo-variable $this.
Esta disponible cuando un objeto tipo función o tipo variable se llama desde adentro del contexto de la misma clase. $this es una referencia al objeto que se llama, de esta forma podemos utilizar estas variables y funciones que se encuentran dentro de la clase en otras funciones distintas de esta misma clase.

Despues de crear la clase para poderla utilizar requerimos crear una instancia(que es una variable tipo objeto referenciada como $variable) siguiendo el ejemplo de arriba supongamos que creamos a una persona, esto lo hacemos de la siguiente manera:

$nombre_instancia = new nombre_clase($parametros);
?>


1.-Comenzamos  con el nombre de la instancia.(debe tener el nombre de la clase, pues hace referencia de la ubicacion).
2.-Luego utilizamos un signo (=) seguido del operador (new) seguido del nombre de la clase, para asignar la clase a la instancia.
3.-Y por ultimo dentro de los parentesis van los parámetros, estos parámetros son los que fueron definidos en la función del constructor si es que se definieron algunos.

De esta manera instanciamos una clase.

Podemos instanciar dos veces  la misma clase en dos variables tipo objeto distintas, es decir, $nombre_instancia1 y $nombre_instalcia2, esto le dará la funcionalidad de tener dos objetos con distintas propiedades uno de otro pero utilizando la misma clase.

Nota.-notamos la diferencia entre clase y objeto, pues la clase es en resumen un conjunto de características y funcionalidades que podemos requerir en nuestro sistema dada nuestra necesidad, mientras que, un objeto ya las hemos definido y cuando sea requerido tendra por lo tanto sus propiedades definidas ya por un valor.

 

 

Página 2 de 2

2
Próximo
Fin

Encuesta de Hoy

Qué gadget te gustaria tener?

Acerca de: MG

Es un proyecto sobre un sitio web, donde los usuarios podrán leer noticias y artículos de relevancia sobre todo lo que envuelve a la Tecnología; Escritos por profesionales en los ramos de Diseño Web, Programacion Web, TI, etc.

Leer más...

MundoGeek

Comentarios y Sugerencias por favor a: contactoarroba_1mundogeek.com, Gracias por tu preferencia.

Login Form