DiaSQL generando esquema SQL apartir de un diagrama DIA

DiaSQL Dump es un plugin para el DIA que desarrolle en python bajo licencia GPLv3, que te permite crear un archivos en sintaxis SQL a partir de tu diagramas de base de datos.

Actualmente se encuentra en versión Beta pero ya es completamente funcional,  puedes obtener una copia y el código desde:

DiaSQL Dump nos ayuda a generar archivos con código SQL a partir de tus diagramas de base de datos desarrollados con la herramienta DIA, generando con esto una congruencia entre el modelado de tu base de datos con su definición en SQL, de esta forma si deseas generar algún cambio en el esquema de la base de datos basta con editar el diagrama.

Ejemplo

Previamente debes tener instalado el programa DIA, esto en ubuntu o debian linux lo puedes hacer con la siguiente instrucción.

sudo apt-get install -y dia

La siguiente figura muestra el diseño de un diagrama de base de datos en DIA.

ejemplo diagrama DIA definición de una tabla.

ejemplo diagrama DIA definición de una tabla.

De la figura se puede apreciar que la tabla Personas tiene las siguientes campos:

  • id: int(11), clave primaria, no puede ser nulo.
  • rfc: varchar(20), clave única, no puede ser nulo.
  • nombre: varchar(50), NO es clave, puede ser nulo.

Una ves que realizamos el diagrama nos vamos a archivo y del damos exportar seleccionamos al opción SQL Dump(*.sql) como se muestra en la siguiente imagen:

exportando volcado SQL del diagrama DIA

exportando volcado SQL del diagrama DIA

O bien desde linea de comando con la siguiente sentencia.

#h4x0r mode
dia  -e  ejemplo1.sql   ejemplo1.dia

Donde ejemplo1.dia es nuestro diagrama dia y ejemplos.sql es el archivo que queremos exportar(-e).

El cogido SQL generado por DiaSQL Dump para este ejemplo es:

-- Created by DiaSql-Dump Version 0.01(Beta)
-- Filename: ejemplo1.sql
-- Created: 2010-08-13

-- Personas --
CREATE TABLE IF NOT EXISTS `Personas` (
	`id` int(11) PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
	`rfc` varchar(20) NOT NULL UNIQUE,
	`nombre` varchar(50)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- End SQL-Dump

Nota: esto es solo parte de la documentación que espero levantar próximamente.

Instalar openoffice 3.2 totalmente en español en sistema Linux Ubuntu 9.10 Karmic Koala

instalacion openOffice3.2 en español

instalación openOffice3.2 en español

Introducción:

En esta ocasión quiero compartir las instrucciones para el instalar el openOffice.org 3.2 completamente en español en un sistema Linux Ubuntu ocupando la versión Ubuntu 9.10 Karmic Koala pero muchos de estos pasos por ejemplo la parte de la traducción se puede instalar cualquier sistema basado en Debian que ocupe el apt como administrador de paquetes.

Explicare cada paso de la instalación si gustas puedes instalar el openOffice.org de esta manera aunque al final comparto un script en Bash el cual automatiza toda la instalación.

Agregando los nuevos repositorios a mi sistema operativo

Como lo comentaba Ubuntu el cual al igual que Debian emplean la colección de programas apt para administrar los paquetes instalados/disponibles del sistema. Lo primero que necesitamos es decirle al sistema donde puedo encontrar nuevos paquetes y esto lo hacemos al editar el archivo sources.list que normalmente se localiza en /etc/apt/sources.list para agregar los nuevos repositorios hacemos:

sudo add-apt-repository ppa:openoffice-pkgs/ppa

Sincronizando los nuevos paquetes disponibles:

El comando apt-get con la opción update [1]se usa para sincronizar el índice de paquetes respecto a sus fuentes. Los índices de paquetes disponibles se obtienen de los lugares especificados en /etc/apt/sources.list.(en paso anterior modificamos el archivo sources.list).

sudo apt-get update

Instalando versiones nuevas de paquetes:

Una ves que se ha sincronizado la lista de repositorios procedemos a instalar los nuevos paquetes (en este caso openoffice.org-gnome openoffice.org-evolution) que requiramos para esto empleamos el comando apt-get de la colección apt.

#en sistemas gnome
sudo apt-get –force-yes -y build-dep openoffice.org-gnome openoffice.org-evolution
sudo apt-get –force-yes -y install openoffice.org-gnome openoffice.org-evolution

En ocasiones el programa apt-get requiere descargar paquetes de Internet y suele preguntarte si deseas hacerlo las opciones (-y –force-yes) con afirmativas es decir el programa entiende que la respuestas de dichas preguntas son positivas y simplemente no las hace.

La primera linea que contiene build-dep lo que hace es construir las dependencias de compilación para que posteriormente la segunda linea que contiene el install ya las tenga listas.

Poniendo la ayuda en español:

#poniendo los paquetes en español
apt-get –force-yes -y build-dep openoffice.org-help-es
apt-get –force-yes -y install openoffice.org-help-es

Internacionalización(l18n) en español:

Por ultimo internacionalizamos el openOffice.org con las siguientes sentencias.

#l18n
sudo apt-get –force-yes -y build-dep openoffice.org-l10n-es
sudo apt-get –force-yes -y install openoffice.org-l10n-es

Por ultimo al abrir el openOffice.org nos deberia mostrar el siguiente splash.


spash.openOffice3.2

splash openOffice3.2

Finalmente el Script.

Finalmente comparto el script que te automatiza todos los partes anteriores:

descargar script
descargar script

para descargarlo y ejecutarlo es necesario tener permisos del usuario root dejo aquí las instrucciones del como ejecutar el siguiente script

#descargamos el código fuente de la página de Gist
wget http://gist.github.com/raw/361242/f8ebe01ab0514bda69e01b59c71e99f2aa866e36/installOpenOffice3.2.sh
#le damos permisos de ejecución al archivo
chmod +x installOpenOffice3.2.sh
#Finalmente ejecutamos el script con permisos de administrador
sudo ./installOpenOffice3.2.sh

Referencias:

[1].- Manual Linux apt-get

Deteccion de intrusos en nuestra WI-FI

Introducción:

Como bien sabemos las redes inalámbricas tienen un problema de seguridad nativo del medio(capa 1 modelo OSI) y en este caso  es el espectro electromagnético dispersado por la atmósfera el cual es compartido por todos, por esta razón por las redes inalámbricas son(y serán inseguras) dadas la naturaleza del medio.

Hace unos días por parte del equipo de SICÁ tuvimos la oportunidad de participar en el evento Ingenia que tuvo lugar en la cuidad de Oaxaca, entre las conferencias y talleres que tuvieron lugar hubo una que me llamo mucha la atención y fue la que dieron los amigos Diego(bugcillo) y el Nierox en este taller explicaron el uso de la suite aircrack-ng del como detectar redes inalámbricas, inyectar paquetes a dicha red y del como por medio de eucarísticas encuentra la key deseada.

Todo esto me dejo pensando en una solución a la detección de intrusos en nuestra red, y se me ocurrió una idea!.

Análisis

En este caso suponemos que somos nosotros los propietarios del servicio y que hemos sido atacados por algún intruso (p.e. mi vecino).

También suponemos que el servicio es Prodigy Infinitum de Telmex y que el modem routeador es un 2wire (que es lo + común).

Modem 2 WIRE telmex

Fig-1- Modem 2 WIRE telmex

Ahora si accedemos a la URL http://gateway.2wire.net/xslt o bien  (http://home/) estaremos entrando a la configuración de nuestro modem en donde en el main page nos muestra un resumen del sistema si vemos en la parte inferior nos daremos cuenta que aparecen las maquinas colgadas a nuestro modem en este caso[fig2] solo la mía(fitorec) como activada y las maquinas pc_x y pc_y como parte del cache de las conexiones pero a su vez ambas están inactivas.

red domestica

Fig2 .- Se puede observar solo la maquina fitorec conectada

Solución propuesta:

Como podemos ver el router monitorea constantemente los hosts conectados y es posible visualizar quienes están conectado si accedemos al router traves de un navegador. Para detectar a un intruso o un nuevo hosts en nuestra red a travez de esta técnica puede resultar algo tedioso, pues tendríamos que visitar el sitio del router cada determinado tiempo para ver  a los nuevos hosts conectados.

Pero si nos ponemos a pensar un par de minutos esto mismo pasa con los canales RSS, el correo electrónico, los mismos podcast, todos ellos normalmente tienen un cliente el cual se conecta con el servicio cada determinado tiempo para ver si hay nueva información. Esto ultimo me puso a pensar que se trata de  realizar un script que sea una especie de cliente que sirva para automatizar este proceso cada determinado tiempo y que de alguna manera nos notifique quienes están conectados a nuestra red.

Fue entonces cuando se me ocurrió utilizar el Conky el cual es una programa que se integra al escritorio de Linux y nos sirve para monitorear distintas cosas de nuestro systema como: memoria consumida, procesador en uso, …,  y también se le pueden agregar scripts de red  para generar notificaciones  de gmail, twittter, .. entre otros servicios.

Por otra parte el Conky también nos ayuda a descolar nuestro escritorio a qui dejo una cara del Conky:

un ejemplo del conky

un ejemplo del conky

Sin mas la solución propuesta es hacer un script para detectar los usuarios conectados a nuestro router y mostrarlos en nuestro escritoria a través de conky.

Implementación:

Detección de Hosts: la deteccion de hosts la vamos hacer accediendo a la URL http://gateway.2wire.net/xslt en donde vamos a parsear para buscar la imagen (http://gateway.2wire.net/icons/icon_small_pc.gif) la cual corresponde a una maquina activa y de existir dicha imagen el nombre del host activo en este caso fitorec se encuentra localizada entre las etiquetas:

<span class="textmono">fitorec</span>
De esta idea he generado el siguiente script:



codigo 2wireHosts.py script en python

codigo 2wireHosts.py script en python

Implementación 2:

Via twitter el amigo @gnuget David Valdez me envio una versión mejorada del script, la verdad le quedo muy bien y se ve asta elegante el código(1 saludo man):

Codigo desarrollado por gnuget

Codigo desarrollado por gnuget

Configurando Conky: pues bien ahora que ya tenemos un script para detectar los hosts en nuestra wifi ahora solo nos falta configurar nuestro Linux para que nos muestre esta info.  en su Escritorio.

Instalación

1.- creamos la carpeta donde estaran los archivos del compiz e ingresamos a la carpeta:

mkdir  ~/.config/conky

cd ~/.config/conky

2.- Descargamos el siguiente archivo de configuración para el conky al cual he nombrado rightTop ya que se posiciona en la esquina superior derecha de nuestro desktop.

wget http://gist.github.com/raw/259995/e9c8538cb6c45b7b7f063798262ed1566581680f/rightTop

Nota:

El este archivo de config. del  conky manda a llamar las siguientes fuentes.

Las caules debes de descargar e instalar antes de seguir los siguientes pasos.

3.- Descargamos el código de python que nos detecta los host conectados:

wget http://gist.github.com/raw/259463/7af5d194d0829530cd5bbae6b7463e7f477e1014/2wireHosts.py

4.- Y finalmente Ejecutamos nuestro conky con la siguiente instrucción:

conky -c rightTop

Corrida de ejemplo:

Aqui les dejo una corrida de ejemplo de una maquina que configure con edubuntu para una niña de 9años (a mi como me hubiera gustado conocer linux a esa edad)

SICÁ Soluciones Integrales en Computación Aplicada

Logo Sica

Logo Sica

SICÁ (Soluciones Integrales en Computación Aplicada)  es(somos) un grupo de amig@s que trabajamos en lo que más nos gusta y apasiona: La tecnología y el desarrollo del mismo.

En lo personal no me gusta ver a SICÁ como una empresa si no más bien como un medio para poder mejorar/trasformar nuestro entorno, para expresarte, socializar,..,  en fin para ser.
Para ello echamos mano de tres ejes básicos que se representan en nuestro logotipo:

  1. Creatividad
  2. Libertad
  3. Esfuerzo y Solidaridad.

Además de esto creo que somos personas de valores e deas(alimentadas por el entorno en el que nos desarrollamos), creemos en las tecnologías “sanas” por esto adoptamos conceptos como los de la FSF cuando nos referimos al Software Libre, pero nos sentimos mas ligados a como decimos aquí en Oaxaca “tecnologías apropiadas” pues estas son socialmente justas, culturalmente apropiables, ecológicamente sensatas y económicamente viables.

Al mismo tiempo estamos concientes del momento histórico en el que vivimos y quiero pensar que la crisis económica y la caída de este modelo socioeconómico en el que nos rige, es una gran oportunidad para que miremos con nuevos ojos nuestro mundo.

Es por esto que tratamos de ser muy participes de los eventos culturares y tecnológicos de nuestro entorno. Nos tratamos de unir con otros compañeros para trabajar y compartir: software, conocimientos, vivencias, etc..

Respecto a la viabilidad económica de SICA es algo un poco complejo ya que muchas veces trabajamos con números rojos y la panza vacía, para nosotros el comercio es algo tan muy normal en el sentido que parte de necesidad de compartir, la de producir algo y compartir para obtener bien/servicio. Es por esto que no nuestros proyectos no son preponderantemente económicos, por eso muchas veces se terminan haciendo contratos del tipo Trueque que nos haga llegar a este bien/servicio que necesitamos y con esto tratamos de revindicar esta practica social del comercio.
En SICA llevamos un camino de 5 años trabajando con aciertos y tropiezos mismos que nos han enseñado que solo la chispa creativa puede ayudarnos a salir de diversos problemas o resolver alguna problemática de forma creativa, esta creatividad no sirve de nada si no podemos plasmar nuestra idea en un proyecto real, por tanto, sabemos que solo el trabajo nos ayuda a ser mejores personas. Es esto lo mas importante de estos 5 años las personas que han estado en SICA de cómo cada una de ellas nos han aportado algo y también sabemos que donde quiera que ellos estén también llevaran algo de SICA….

Por todo esto estamos concientes que el camino por seguir en SICA será difícil pero también sabemos que nunca estaremos solos.

CakePHP un buen FrameWork

Cakephp

Cakephp

CakePHP es un marco de desarrollo [framework] rápido para PHP, de código abierto. Se trata de una estructura que sirve de base a los programadores para que éstos puedan crear aplicaciones Web. El principal objetivo es que se pueda trabajar de forma estructurada y rápida, sin pérdida de flexibilidad.

Diagrama MVC (Model View Controller)

Diagrama MVC (Model View Controller)

Hace uso del patrón de diseño conocido como MVC (Modelo Vista Controlador), disminuyendo los costos de desarrollo y ayuda a los desarrolladores escribir menos código, además CakePHP tiene un equipo de desarrolladores y una comunidad activos, lo que añade valor al proyecto. Con CakePHP, además de no tener que reinventar la rueda.

En el sitio oficial existe un ejemplo de como construir un pequeño blog en solo un par de minutos, ademas dejo aqui un pequeño video de como configurar CakePHP espero sirva.

Donde obtener mas información:

sitio official: http://cakephp.org/

Documentacion Official: http://book.cakephp.org/

Traduccion esp. Doc. Official: http ://book.cakephp.org/es

Grupo usuarios google CakePHP:  http://groups.google.com/group/cakephp-esp

Creando un Buscador para Mozilla Firefox con OpenSearch

Normalmente cuando queremos realizar una búsqueda en alguna página para esto lo que hacemos es que primero introducimos la dirección de dicha pagina a nuestro navegador y posteriormente que cargue realizamos nuestra búsqueda y por ultimo nos esperamos a que nos devuelva el resultado, en cambio este proceso se reduce a la mitad si en cambio realizamos nuestra búsqueda desde los motores de búsqueda incluidos en el Firefox.

En general existen multiples buscadores creados por las compañias de busquedas p.e. google, yahoo, amazon, etc.. en la siguient liga podras agregar algunos a tu firefox.

https://addons.mozilla.org/en-US/firefox/browse/type:4/cat:all?sort=name

Sin embargo falta el nuestro hace apenas algunos días que hemos estado desarrollando la página de mundosica.com me puse a desarrollar un buscador para el Firefox.

Aquí en esta entrada expongo mi experiencia en el desarrollo de esta simple pero potente herramienta que nos ayuda mucho a reducir el tráfico.

buscador OpenSearch

buscador OpenSearch mundosica.com

Indice:

1. Generar nuestro archivo con especificación OpenSearch

2. Insertando el vinculo de instalación.

3.- Poniendo refenrencia de nuestro buscador en la cabecera del sitio.

Paso 1.- Generar nuestro archivo con especificación OpenSearch:

OpenSearch expecificación

OpenSearch expecificación

OpenSearch es un conjunto de formatos simples para el intercambio de resultados de búsqueda.

El documento de descripción OpenSearch formato se puede utilizar para describir un motor de búsqueda a fin de que pueda ser utilizada por las aplicaciones cliente de búsqueda (en nuestro Caso El firefox).

La respuesta OpenSearch elementos se pueden utilizar para ampliar los formatos de sindicación, como RSS y Atom, con el extra de metadatos necesarios para devolver los resultados de la búsqueda.

Para realizar esto nos basamos en el ejemplo de la siguente liga:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Examples

Regresar al Indice

De este ejemplo gener el siguiente archivo: http://mundosica.com/openSearchSICA.xml



 	 Buscador para Mozilla-Firefox code basado en la doc. de .opensearch.or

Buscador para Mozilla-Firefox code basado en la doc. de .opensearch.or

Como podemos ver existen algunos camops importantes tales como:

Los parámetros simples son:

ShortName  : Nombre abreviado de nuestro buscador
LongName   : Nombre de nuestro buscador.
Description: una descripción breve de nuestro buscador.
Contact    : Nuestro contacto como desarrollador.
Developer  : Nuestro contacto como desarrolladores
Attribution: Licencia
Language   : idioma es-mx para México
OutPutEncoding: Codificación de texto que genera como resultado nuestro sitio.
IntPutEncoding: Codificación de texto que recibe como entrada nuestro sitio.

Para los campos de URL
Para type=”text/html” aquí ponemos la dirección que responde cuando le enviamos una consulta en nuestro caso.

http://mundosica.com/09/index.php?searchword={searchTerms}&amp;ordering=&amp;searchphrase=all&amp;option=com_search

Nota: {searchTerms} es la consulta que le estamos enviando a nuestro sitio.
Por ejemplo si queremos hacer un openSearch para google solo pondriamos:
http://www.google.com.mx/search?q={searchTerms}
Pues si queremos buscar por ejemplo fitorec en google basta con acceder a la url:
http://www.google.com.mx/search?q=fitorec

Para los campos Image
Son las imágenes de 64 y 16 pixeles y llevan la ruta absoluta(URL) de las imagenes respectivamente (estas pueden ser png, gif, jpg,etc..).

si quieres tener la imagen como datos en el archivo xml esta herramienta te ayudara mucho.

http://software.hixie.ch/utilities/cgi/data/data

Al cual le mandamos una imagen de 16×16 (de nuestra maquina o una URL) la cual queremos que sea nuestro icono y nos devuelve los datos en la barra URL del navegador.

Para mayor referencia ir al sitio oficial (esta en ingles):

http://www.opensearch.org

Regresar al Indice

Paso 2 .- Insertando el vinculo de instalación.

Para esto nos basamos en una funcion en JavaScript la cual permite agregar un openSearch la documentación adecuada esta en el sitio oficial de firefox pongo la liga.

https://developer.mozilla.org/en/Adding_search_engines_from_web_pages

Este script debera ir en nuestra pagina web les recomiendo que se ponga entre las etiquetas head para que cargue la funcion antes que del boton la manda a llamar.

veamos el script.

IInstalador del openwebSearch en javascript

Instalador del openwebSearch en javascript

Nota: las URL que se le ponga a la funcion addSearchEngine deberan ser absolutas p.e. http://misitio.com/ruta-absoluta/file.xml

Ahora solo es necesario poner la llamada en la funcion a algun evento del usuario p.e. cuando le da click a una imagen, veamos como seria esto:


imagen con accion al instalador

codigo imagen con accion al instalador

Regresar al Indice

Paso 3.- Poniendo refenrencia de nuestro buscador en la cabecera del sitio.

Aunque en este momento ya es complemente funcional nuestro buscador, y desde un boton el usurio instalar en ocaciones no queremos poner mas botones en nuestro sitio o si lo que queremos es que el firefox se de cuenta que en nuestro sitio si es que existe una aplicacion para instalar como se puedeen el la siguiente imagen.

Instalacion desde el administrador de buscadores Firefox

Instalacion desde el administrador de buscadores Firefox

Para que el FireFox identifique los elementos instalables en nuestro sitio tenemos que incruir dicha informacion en nuestra página esto lo realizamos poniendo el siguiente codigo en la cabecera (<head> </head>) de nuestro sitio.


Codigo para que el navegador detecte el buscador

Codigo para que el navegador detecte el buscador

Nota: el parametro href lo debemos cambiar de igual forma por la ruta absoluta en donde se encuentra nuestro archivo xml al igual que el title por el titulo de nuestro buscador.

Realmente espero que esto le sirva a alguien, es por esto que subi el codigo en un archivo comprimido para la descarga directa desde la pagina de mundosica.com.

Deseo mejorar el mundo pero todavia no tengo su codigo fuente!.
Regresar al Indice

Errores HTTP

En algunas veces cuando realizamos una solicitud a un servidor web (http) resulta que sucede un error, cuando sucede dicho evento de error lo que hacen los servidores web (p.e. demonio apache) es muestrar una salida de error, por ejemplo el mas clásico error 404 page no found! lo ideal es tratar de reducir a mayor medida los errores en nuestro servidor sin embargo muchos errores son inevitables(como el 404) , en estas ocaciones la mejor solución(según mi opinión) es la de; tratar el error como una excepción veamos como hacer esto, asumiendo que estamos trabajando en un servidor Apache con soporte PHP.

Errores a implementar:

Errores de cliente

HTTP 400

Solicitud mala. Ocurre generalmente cuando se escriben errores de sintaxis en una petición web (en la dirección del navegador). Si se obtiene un error 400, es necesario revisar que todos los caracteres están escritos correctamente.

HTTP 401

Sin autorización. Ocurre cuando se intenta entrar a un directorio que requiera autenticación, y no se introduzca la contraseña±a correcta. También ocurre cuando ese directorio ha negado explícitamente el permiso para entrar a nuestra dirección IP (se le conoce como banning).

HTTP 402

Requiere de pago. Similar al error 401, pero se usa para especificar que para poder autenticarse es necesario realizar un pago al propietario del servidor.

HTTP 403

Prohibido. Ocurre cuando se hace alguna petición HTTP que no está permitida en un sitio, como por ejemplo listar directorios en algunos sistemas.

HTTP 404

No encontrado. La dirección que usted introdujo no existe en el servidor web. En esos casos es importante comunicarlo a la persona responsable de la página, o revisar por ejemplo si se escribiá “.htm” en vez de “.html” (o viceversa).

HTTP 407

Se requiere autenticación del proxy. En muchas empresas, hay páginas que sálo deben de ser vistas por personal interno de la compañía. Para ello, se establecen servidores conocidos como “proxies”, los cuales administran todas las transacciones entre los usuarios autorizados y TODAS las páginas. Sin embargo, se puede hacer que una página simplemente no permita desplegar la información si no es un usuario autenticado a través de este servidor.

HTTP 415

Tipo de medio no soportado. Ocurre generalmente cuando se intenta hacer una petición de servicio administrada por el servidor, y el cliente no cuenta con los medios. Un caso típico es el tratar de ver un archivo Flash en el explorador, cuando este en realidad no tiene.

Errores de servidor

HTTP 500

Error Interno del Servidor. Cuando se obtiene este error, significa que el “script” que se estaba ejecutando (generalmente es un archivo .cgi, .asp, .php, .cfm, etc.) tuvo un error. Hay lenguajes que además del error 500 envían una explicación del error (como PHP), pero otros simplemente envían el error. Cuando esto ocurre, no existe nada que el usuario pueda hacer. El error tiene que ser corregido por el administrador del sitio.

HTTP 501

No implementado. Significa que el servidor no entiende la petición o la instrucción que el cliente la ha hecho. En la mayoría de los casos, ocurre que el administrador explícitamente ha denegado el uso de determinado servicio en el servidor.

HTTP 502

Gateway incorrecto. Un gateway es un enlace de datos entre el cliente y el servidor, que usualmente se usar para pasar variables de las formas, subir imágenes y archivos, etc. Existen 2 formas de pasar datos: una enviándola a través de la petición web (mejor conocida como GET), y otra enviándola a través de un gateway (conocida como POST). Si este gateway no es correctamente configurado, o es demasiado grande, o trata de ejecutar una función prohibida, se desplegará este error.

HTTP 503

Servicio no disponible. Relacionado con el error anterior. Este error se refiere particularmente al hecho de que el método POST no está permitido en el servidor, y algún formulario lo utilice. Si usted es el creador de la forma, utilice el método GET en la medida de lo posible o contacte a su administrador del servidor para que active el servicio de gateway. Si usted es un usuario, comunique al creador del sitio de este problema.

fuente: http://www.webpymes.cl/?cat=42

Ahora para implementar los errores utilizaremos una directiva definida por Apache la cual se deberá poner en el archivo .htaccess.

Mas info configuración .htaccess : http://httpd.apache.org/docs/1.3/howto/htaccess.html

Configurando el archivo .htaccess :

ErrorDocument 401 /error.php?errno=401
ErrorDocument 402 /error.php?errno=402
ErrorDocument 403 /error.php?errno=403
ErrorDocument 404 /error.php?errno=404
ErrorDocument 407 /error.php?errno=407
ErrorDocument 415 /error.php?errno=415
ErrorDocument 500 /error.php?errno=500
ErrorDocument 501 /error.php?errno=501
ErrorDocument 502 /error.php?errno=502
ErrorDocument 503 /error.php?errno=503

Como podemos ver todos van direccionamiento hacia el archivo error.php y lo único que cambiamos es el parámetro de error denominado como errno.

Veamos como quedaría:

Creando el archivo error.php

<?php

if(!isset($_GET[“errno”])){

header(“Location: http://localhost&#8221;);

exit;

}

?>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>

<html lang=”en”>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

<title>..:: ERROR! ::..</title>

</head>

<body>

<?php

function accionError($type){

switch($type){

case “400”:

//acción error

break;

case “401”:

//acción error

break;

case “402”:

//acción error

break;

case “403”:

//acción error

break;

case “404”:

//acción error

break;

case “407”:

//acción error

break;

case “415”:

//acción error

break;

case “500”:

//acción error

break;

case “501”:

//acción error

break;

case “502”:

//acción error

break;

case “503”:

//acción error

}

echo “Error:”.$type;

}

$datos = array( “400”=>”Solicitud mala.”,

“401”=>”Sin autorizaci&oacute;n. “,

“402”=>”Sin autorizaci&oacute;n Requiere de pago. “,

“403”=>”Zona prohibida.”,

“404”=>”P&aacute;gina no encontrada.”,

“407”=>”Se requiere autenticaci&oacute;n del proxy.”,

“415”=>”Tipo de medio no soportado.”,

“500”=>”Error Interno del Servidor.”,

“501”=>”Servicio no implementado”,

“502”=>”Gateway incorrecto”,

“503”=>”Servicio no disponible”

);

$sal = accionError($_GET[‘errno’]).”</h3>”.$datos[$_GET[‘errno’]];

echo “<h3>”.$sal;

echo “http://localhost/&#8221;.

$_SERVER[‘REQUEST_URI’];

?>

</body>

</html>

Por ultimo dejo el Script comprimido espero sea de utilidad:

http://www.mundosica.com/descargas/scripts/errorHttp.zip