Calendario emergente Date-Picker. ¡Muy bueno!

El calendario emergente que os propongo se llama “Date-Picker”, y os puedo asegurar que es bastante profesional.  Os paso un enlace que muestra una demo en funcionamiento del calendario: Demo Date-Picker

Podeis descargarlo desde la web del autor, pero el enlace de descarga está un poco escondido, así que si lo preferis, podeis hacerlo desde aqui directamente:  Descargar date-picker

Instalar PHP sobre IIS7 y Windows Server 2008.

La versión de PHP utilizada en este “manualito” es la 5.2.11. Puedes descargarla directamente desde la web del autor: PHP 5.2.11

El proceso de instalación es muy sencillo:

  • La ruta donde vamos a instalar PHP será c:\PHP.
  • Seleccionamos instalar como módulo CGI de IIS:instalar-php-como-modulo-cgi
  • Seleccionar “Register *.php files to open automatically with PHP“, tal y como vemos en la siguiente imagen:Instalar PHP
  • Dentro del apartado Extensions deberemos seleccionar aquellas librerías que vamos a utilizar. Por ejemplo, si vamos a trabajar con Microsoft SQL Server, deberemos instalar la libreria php_mssql.dll. Si no estamos seguros, instalaremos todas las librerías.
  • Por último, pulsamos “install” y esperamos a que termine el proceso de instalación.

Creación del sitio web en IIS7

Una vez que hemos intalado php como modulo CGI en IIS, procedemos a crear el sitio web en IIS7. Para ello, abrimos IIS7, pulsamos sobre “sitio” con el botón derecho del ratón y a continuación pulsamos en “Agregar sitio web…”Crear sitio web IIs7-1

Se abrirá una ventana como la siguiente:Crear sitio web IIS7-2

En esta ventana tenemos que introducir el nombre del sitio web que estamos creando, la ruta donde se encuentran los ficheros del sitio web, el puerto sobre el que queremos que trabaje el sitio web… Si es la primera vez que creas un sitio web en IIS7, te recomiendo que rellenes únicamente el nombre y le especifiques la ruta de tus ficheros.

En mi caso, he llamado al sitio web “sitio web de prueba” y los ficheros de dicho sitio web se encuentran en c:\prueba

Una vez que hemos creado el sitio web, tenemos que asignar el controlador de php a IIS7, con esto, lo que estamos haciendo es que todos los ficheros con extension “.php” sean procesados por PHP, para ello, seleccionamos el sitio web que acabamos de crear (aparecerá en el arbol de sitios web) y hacemos doble click en “asignaciones de controlador”, tal y como muestra la siguiente imagen:crear sitio web IIS7-3

A continuación, pulsamos sobre “Agregar asignacion de script…” (arriba a la derecha)Crear sitio web IIS7-4

Se nos abrirá una ventana como la siguiente, con los campos en blanco. Recomiendo rellenar los campos tal y como yo los he rellenado. Cuando pulsemos en aceptar, recibiremos un mensaje de aviso. En dicho mensaje, pulsaremos en “si”:Crear sitio web IIS7-5.jpeg

Con todo esto ya tenemos nuestro sitio Web PHP trabajando sobre IIs7, pero por si acaso, realizaremos una última comprobación.Vamos a crear un fichero dentro de la carpeta c:\prueba (o la ruta especificada para el sitio web) y dentro de la misma crearemos un fichero llamado pruebaPHP.php con el siguiente contenido:

<?php
phpinfo();
?>

Por último, abrimos nuestro navegador y accedemos al fichero que acabamos de crear. Si vemos una pantalla como la siguiente, significa que todo funciona correctamente:
 

Crear sitio web IIS7-6.jpeg

Saber tipo de dato en PHP

Una función que nos resultará de gran utilidad a la hora de programar en PHP es la función gettype().

Con gettype() podemos conocer el tipo de dato de una variable en PHP. Pero, ¿¿como te utiliza?? Veamos un ejemplo:

$variable="Hola";
echo gettype($variable);
//mostrara: string

Además de la función gettype(), existen otras funciones que se utilizan de forma similar a gettype(), pero sirven para comprobar si una variable es de un tipo determinado. Algunas de estas funciones son:

Creo que no hace falta explicar que tipo de dato comprueba cada función!

Validar boolean en php con FILTER_VALIDATE_BOOLEAN

Para validar una variable de tipo boolean utilizaremos el filtro FILTER_VALIDATE_BOOLEAN. Este filtro lo utilizaremos junto con la función filter_var, y nos devolverá:

  • TRUE: si la variable toma valor 1, on, true o yes.
  • FALSE: en caso contrario.

Veamos un ejemplo:

$var=$_POST['var'];
$resultado=filter_var($var,FILTER_VALIDATE_BOOLEAN);

Se puede usar junto con la opción FILTER_NULL_ON_FAILURE. En este caso, la función devolverá:

  • TRUE: si la variable toma valor 1, on, true o yes.
  • FALSE: si la variable toma valor 0, off, false, no.
  • NULL: en caso contrario.

Aquí tenemos otro ejemplo utilizando la opción FILTER_NULL_ON_FAILURE:

$var=$_POST['var'];
$resultado=filter_var($var,FILTER_VALIDATE_BOOLEAN,FILTER_NULL_ON_FAILURE);

Para ver un ejemplo en funcionamiento: Ver ejemplo del filtro FILTER_VALIDATE_BOOLEAN

Filtrar entradas de un formulario en PHP

Es normal realizar formularios en los que algunos campos tienen que tener un determinado formato (por ejemplo, un correo electrónico siempre será x@xxx.x, o una edad siempre será un valor entre 1 y 110, salvo el que salió en la tele que tenia 120 años…). Una forma de realizar estas comprobaciones, o incluso, de corregir los posibles errores en los datos obtenidos de manera rápida y sencilla consiste en utilizar las funciones para filtros de php.

vale, en que consisten estos filtros?

Los filtros que vamos a utilizar se resumen en dos:

  1. Filtros de validación.
  2. Filtros de saneamiento.

Los filtros de validación sirven, como habrás podido imaginar, para comprobar.  Un ejemplo claro: Si tenemos un campo en el que el usuario inserta su DNI, tenemos que COMPROBAR que el valor introducido en el campo cumpla con el formato del DNI  (8 números seguidos de una letra->15423672D).

Los filtros de saneamiento, sirven para corregir, por ejemplo, voy a CORREGIR que un usuario escriba en el campo nombre solo letras. Si escribe números, estos serán borrados: Rubita19->Rubita.

ok, lo entiendo, pero, ¿como se utilizan?

Para recibir los datos de un formulario, utilizamos $_GET['nombre_del_campo'] o $_POST['nombre_del_campo'] dependiendo de como se envien los datos del formulario(método GET o POST…).

Una vez que hayamos recibido los datos, tenemos que filtrarlos. Para ello utilizaremos la función filter_var. La funcion filter_var recibe tres parámetros:

  • El primer parámetro se refiere a la variable que vamos a filtrar.
  • El segundo parámetro se refiere al filtro a aplicar, y es opcional. En caso de no indicarlo, se aplicará el filtro por defecto.
  • El tercer parámetro se refiere a las opciones del filtro. Solo se indicará para ciertos filtros.

El siguiente ejemplo, muestra como se válida un correo electrónico. Si el correo que tenemos en la variable $correo no fuese correcto, se mostraría por pantalla el mensaje de error:

<?php
$correo=$_GET['correo_electronico'];//$_POST si los datos se envian por POST
if(!filter_var($correo,FILTER_VALIDATE_EMAIL))
   echo "El correo introducido no es válido";
?>

¿Y qué tipos de filtros existen?

Pues como ya se ha comentado anteriormente, existen filtros para validar y filtros para corregir:

Filtros para validar

Filtros para sanear (corregir)

  • FILTER_SANITIZE_EMAIL
  • FILTER_SANITIZE_ENCODED
  • FILTER_SANITIZE_MAGIC_QUOTES
  • FILTER_SANITIZE_NUMBER_FLOAT
  • FILTER_SANITIZE_NUMBER_INT
  • FILTER_SANITIZE_SPECIAL_CHARS
  • FILTER_SANITIZE_STRING
  • FILTER_SANITIZE_STRIPPED
  • FILTER_SANITIZE_URL
  • FILTER_UNSAFE_RAW

Los nombres de los filtros son bastante intuitivos, de todas formas, iré actualizando este artículo con enlaces de ejemplos de cada uno de los filtros.