12.176 cursos gratis
8.740.944 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Curso de MySQL con PHP

Autor: Ariel Alejandro Wagner
Curso:
9/10 (2 opiniones) |1754 alumnos|Fecha publicación: 10/01/2011
Envía un mensaje al autor

Capítulo 9:

 Arquitectura de 2 Capas. Cliente Servidor

Procesos de la Comunicación

El proceso de comunicación resulta muy sencillo. Por un lado tenemos una computadora que solicita información la cual genera una serie de peticiones. Esta computadora es generalmente llamada Cliente. Por otro lado, tenemos una computadora más potente que se encarga de recibir dichas peticiones y procesarlas para luego devolver los datos procesados a la computadora que ha solicitado peticiones. Esta computadora es llamada Servidor.

Los paquetes de información se envían de un extremo a otro y pueden darse entre idas y vueltas. Este proceso de envió en doble sentido es conocido con el nombre de Postback. Dichos paquetes se trata de las transacciones comunes que suceden entre una computadora Cliente y una computadora Servidor. Las transacciones portan información que pueden ser de proceso (petición) y de información (respuesta). Es por ello que para garantizar que el sistema funcione correctamente, habrá que depender de varios mecanismos de sustento. Recuérdese que este sistema de comunicaciones se basa en un modelo no conectado. Ello significa que si no se garantiza un proceso de soporte ideal de la información, esta misma se pierde. De allí el hecho del uso de copias de archivos locales en los sistemas, el uso de cookies, credenciales, etc., y otros tantos mecanismos de sustento de la información. Resultan finalmente en un medio para garantizar las funcionalidades de este sistema.

Detalles de los Procesos de la Comunicación

Ahora bien, la computadora Cliente tan solo recibe una copia de las páginas para la consulta y las almacena temporalmente en su sistema con el objeto de re utilizarlas. Esto sucede cuando un usuario visita el sitio Web de un portal. Las páginas transferidas hacia la computadora Cliente, resultan totalmente estáticas y en formato HTML. En alguna sección de dicha página, se establece un formulario de acción con el propósito de poder enviar una petición a la computadora Servidor. El formulario se encuentra en espera y reaccionará cuando el usuario accione algún mecanismo, por ejemplo, que haga clic en un botón Enviar con el objeto de que se envíe la solicitud deseada. Por tanto, la computadora Cliente solamente utiliza la página estática en formato HTML para proceder con dicha comunicación y petición con el Servidor.

gfdd
Arquitectura de 2 Capas ~ Cliente / Servidor

Mientras tanto, la computadora Servidor contiene todos los archivos dinámicos que son capaces de realizar procesos específicos. Además de los archivos dinámicos, también cuenta con otros tipos de recursos tales como bases de datos o archivos de soporte, etc. La computadora Servidor, recibe la petición de la computadora Cliente e inmediatamente la procesa. Al procesar la petición enviada por la computadora Cliente y según como esté desarrollado el sistema de proceso para las consultas, el Servidor reaccionara de varias formas. Si la consulta estriba en el proceso de verificar datos en una base de datos para que la computadora Cliente pueda obtener información peticionada, entonces, la computadora Servidor procesará la información enviando de regreso a la computadora Cliente el resultado de la búsqueda solicitada. Este resultado de envío se trata de otra página estática en formato HTML que es recibida y copiada en el sistema local de la computadora Cliente para que luego pueda ser leída en pantalla. La página estática es generada de forma dinámica por el proceso de páginas dinámicas desde la computadora Servidor.

En la sección Servidor, encontramos a grandes rasgos dos capas más internas de proceso en la capa Servidor. Una capa interna es llamada Negocio dado que opera con el código en conjunto de los procesos de servicios Web. La otra capa interna es llamada Legacy, se encarga de operar en este caso un gestor de base de datos. La gestión de  la capa de Negocio se monta sobre el lenguaje PHP que nos permite operar al servidor junto a un software de gestión que se comporta en caridad de servicios Web llamado Apache. Ambos mecanismos, nos permiten establecer la comunicación entre el Cliente y el Servidor y establecer negociaciones para procesar todo tipo de peticiones y datos. Por otro lado, en la capa interna Legacy, nos encontramos con el gestor de base de datos, que en nuestro caso se trata de MySQL Server Web. Cuando un cliente realiza una petición, esta es dirigida al servidor y es analizada y procesada por la capa de negocio. Según el proceso, desviará la petición hacia la capa Legacy o hacia la computadora cliente nuevamente.

Operación entre la Capa de Negocio

Por ejemplo, si una petición no consiste en consultar la base de datos, el proceso se reduce a procesar dicha petición y luego devolver al cliente los datos. Un ejemplo de ello podría ser una aplicación que realiza cálculos financieros sin la necesidad de consultar datos en una base de datos. Durante el curso, Ud., ha confeccionado en una de las prácticas una calculadora financiera que le permitía calcular la rentabilidad de un plazo fijo. Los datos eran procesados y calculados por el mismo gestor de PHP, por tanto, el proceso se realizaba en su totalidad dentro de la capa de Negocio. Luego de que la capa de negocio finalice su proceso, los datos, son devueltos de regreso a la computadora cliente.

Operación entre la Capa de Negocio y la Capa Legacy

A veces la consulta o petición del cliente podría ser dirigida hacia una base de datos. Por ejemplo, consultar acerca de la existencia de un libro en un catálogo virtual que posee una librería virtual que opera en la Internet. A continuación, analizaremos un caso de consultas Online. En el siguiente ejercicio práctico que hará más tarde, tendrá la oportunidad de construir este ejemplo que analizaremos en este apartado. Por tanto, empezaremos describiendo las partes que operan en esta solución y sus detalles operativos.

Procesos Operativos de un Sitio Web con Consultas Online

Comenzando la descripción, imaginaremos que un usuario con su computadora personal visita el sitio Web de la librería. Una vez que sucede esto, la página HTML llamada librería.html y el resto de los archivos de recursos, como por ejemplo, los gráficos, archivos de estilos si los hubiere, etc., que se encuentran en el servidor, son transferidos y copiados en el sistema local de la computadora Cliente. Este archivo en formato HTML llamado librería.html, contiene el soporte para el formulario de acción que se utilizado para realizar las consultas Online y el resto de los recursos para estructurar y embellecer la interfaz gráfica.

Una vez transferido todos los archivos, el usuario podrá disponer del uso interactivo que esta página Web le ofrece. Para ello, comienza a rellenar los campos de búsqueda y selecciona el tipo de búsqueda que desea dependiendo de las opciones ofrecidas por dicho recurso. Una vez que completa correctamente todos los requisitos básicos de dicho formulario, procede a ejecutar la consulta haciendo clic en el botón Buscar. A partir de este instante, la petición es enviada directamente al servidor Web.

Sin embargo, el formulario de acción tiene una característica de envío específica. Por un lado determina el método de envío y, por el otro, el llamado al archivo de proceso en la capa de Negocio en la sección de la capa del Servidor, cuyo archivo es llamado resultados.php. El envió de la solicitud y todos sus datos pueden realizarse mediante dos métodos distintos llamados POST y GET. La diferencia entre ambos métodos de envío erradica en la forma en cómo es enviado la solicitud y sus datos.

Cuando el envío es a través del método GET, la solicitud de envío en conjunto con los datos son anexados a la dirección del espacio de direccionamiento URL que hace referencia al sitio Web. Este método es el más sencillo y el que garantiza más velocidad, pero es inseguro dado que los datos pueden ser observados y capturados fácilmente por algún delincuente informático. En cambio, el método POST resulta ser más seguro dado que la solicitud más los datos es incorporado en el encabezado de la petición, por lo que resulta en un método seguro puesto que se anexa sobre el encabezado del archivo de petición, lo cual y por razones de seguridad, puede ser encriptado para mayor seguridad operativa. De esta forma, un delincuente informático, no podría capturar los paquetes de envío y le resultaría en más difícil de hacerlo. El método POST es el que se recomienda por defecto, incluso, muy recomendado en casos de donde se opera con información crítica y sensible.

La solicitud y según el método utilizado, es enviada hacia el servidor en forma de un archivo específico. Este archivo se copia en la memoria del servidor y es procesado por el mismo. El ciclo de vida de este archivo temporal en el servidor, depende del resultado de los procesos en la capa de Negocio. Si el proceso falla, el servidor inmediatamente lo elimina de la memoria y si el proceso es útil, lo utiliza hasta culminar con el proceso de ejecución en la capa de Negocio. Gracias a este sustento temporal, el motor de lenguaje PHP hace uso disponible de las variables que son transferidas y manipuladas desde el momento que se envía la solicitud hasta su culminación en los procesos en la capa de Negocio en el Servidor.

Los datos de solicitud enviados desde la computadora cliente, como dijimos, se almacenan en un archivo temporal en el servidor. La capa de negocio y en conjunto con el gestor del lenguaje PHP, hace uso de este archivo para manipular las variables de datos que contienen la información que han sido envidas desde la computadora cliente. De esta forma, el gestor PHP procede a utilizarlas durante la ejecución del archivo de procesos de destino, que en este caso se trata del archivo resultados.php que se encuentra en el servidor y en el directorio raíz del sitio Web. Luego de haber sido procesado dicho archivo, la capa de Negocio transfiere la información al gestor de PHP y este se encarga o, bien, de reenviar la solicitud de respuesta al cliente o de procesar el dato y luego reenviar los resultados finales a la computadora cliente. A continuación, analizaremos muy detenidamente el proceso que sucede en el archivo resultados.php.

Procesos Operativos en la Capa de Negocio y en la Capa Legacy

El archivo llamado resultados.php se encargará de realizar varios subprocesos que describiré en detalles a continuación. A grandes rasgos, el archivo se puede analizar y partir al menos en tres grandes fases. Una fase es la de verificar si los datos que han sido enviados desde la computadora cliente estén libres de errores tipográficos o semánticos. Luego, una fase donde se determina si la base de datos está disponible, y por último, una fase que nos permite realizar la consulta en la base de datos.

Importante: Caber señalar de antemano que esta descripción que sigue luego de este párrafo, tan solo se trata de una serie de extractos del código real completo. Se han tomado pequeñas partes para analizar su comportamiento.

Funciones Específicas para Tratar Cadenas

La verificación de los datos que han sido enviado por la computadora cliente deben ser verificados para evitar errores de excepción, además también, para hacer que los valores ingresados sean los correctos de modo que sean fácilmente interpretados por el sistema o aplicación para proceder con la consulta sobre la base de datos. Ud., encontrará el uso de dos funciones llamadas addslashes y stripslashes y al principio el uso de una función llamada trim.

El uso de la función trim es para quitar los posibles espacios vacíos por delante o por detrás de los datos escritos en el formulario del cliente. Puede que el usuario escriba los datos en el campo de texto y haya dejado espacios vacíos por delante o por detrás de sus escritos. La función trim nos garantiza que estos espacios no pasen directamente al código dado que podrían incidir en los resultados de las consultas finales.

El uso de addslashes tiene como objeto evitar potenciales errores en el proceso de consultas. Por ejemplo, el carácter (') apóstrofe suele ser un gran generador de errores cuando se lo utiliza durante la gestión de base de datos. El error se debe a que este carácter suele ser utilizado por el motor SQL como un carácter especial. Para subsanar el problema, se suele utilizar un carácter específico para salvar el error. En nuestro caso, se agrega una contra barra. La función stripslashes realiza el proceso a la inversa. Véase los siguientes códigos para mayores detalles.

dfgd
dfg

Funciones Específicas para Tratar Acceso a Base de  Datos

Para poder acceder al a base de datos y poder manipular consultas, ya sean estas estáticas o dinámicas, se requiere de un serie de funciones que se encuentran dentro de una librería en el propio proveedor de bases de datos. En síntesis, MySQL posee una serie de librerías y ofrece una serie de funciones específicas para que a través de los lenguajes de desarrollo, en este caso PHP, se puedan acceder y manipular los recursos de las bases de datos. La capa Legacy se encarga de administrar estos procesos. La capa de Negocio accede a la base de datos a través de la capa Legacy. La capa Legacy es independiente de la capa de Negocio. Todo lo que ocurre dentro del gestor de MySQL y cómo se proceden a realizar diversos procesos específicos en la base de datos, son totalmente ajenos a la capa de Negocio. Tan solo desde la capa de Negocio se pueden pasar mensajes o directivas, que la capa Legacy, se encargará de ejecutar de forma personal. Por tanto, la capa de Negocio delega y depende de los procesos internos que realice la capa Legacy. A continuación, analizaremos las funciones más importantes de este ejemplo de consultas Online.

La función mysql_pconnect(server, user, password, [flags]) es utilizada para establecer la conexión de datos. Utiliza cuatro parámetros formales. La función requiere pasar como parámetros la ubicación de la base de datos, el nombre de usuario y la contraseña. El cuarto parámetro formal resulta ser opcional y se lo utiliza para casos especiales. A continuación se muestra un extracto del código para establecer una conexión a una base de datos.

dfg

El carácter inicial (@) arroba es utilizado para indicarle al procesador que se espera el resultado de algún tipo de lectura para capturar y manipular errores. La variable $db carga el valor que le pasa la función mysql_pconnect(). Dicho valor tiene dos resultados finales. Si existe algún error durante la conexión el valor es nulo y, por lo tanto, la variable $db asume el valor nulo. Ahora bien, si la conexión resulta exitosa, el valor será distinto de nulo.

En la siguiente línea del código se anuncia al usuario del problema en caso de que no sea posible conectarse a la base de datos. Dado que la variable $db asume como nulo y la negación de nulo resulta en un valor verdadero, se muestra en pantalla el mensaje contenido en el código, de lo contrario, los procesos continuarán y este mensaje será omitido.

dfg

La función mysql_select_db(base_de_datos) es utilizada para abrir una base de datos y asignarla para su posterior uso. Recuérdese que en el gestor de MySQL Ud., puede contar con más de una base de datos. En consecuencia, es recomendable que seleccione la tabla que corresponde.

dfg

A partir del resto del código, se utiliza una serie de funciones que tienen el propósito de manipulación y obtención de los datos en pantalla, los cuales, pueden ser formateados para su presentación final en la pantalla. Empecemos describiendo dichas funciones.

dfg

La variable $consulta alberga la cadena en formato SQL para construir la consulta estática. Notará que hemos utilizado el predicado LIKE para poder realizar consultas de rango amplio. Para potenciar los métodos de búsqueda, la variable llamada $terminbusqueda es la que inserta las palabras que ha escrito el usuario en el formulario para luego su posterior envío. Si observa bien, se ha encerrado entre signos porcentuales (%). Estos caracteres junto al predicado LIKE se los utiliza para hacer que la búsqueda busque todos los registros posibles cuyas palabras que figuran en la variable $terminbusqueda coincidan con las que se hallan dentro de la tabla de la base de datos.

La variable llamada $consulta es asignada al parámetro formal de la función llamada mysql_query(). Esta función se encarga de ejecutar la consulta. El resultado de la consulta o de la función realizada es asignado a la variable llamada $resultado. El valor de la variable $resultado es utilizado dentro del parámetro formal de la función llamada mysql_num_row(). Esta última función permite determinar la cantidad de registros que posee la tabla en la base de datos. Este valor resultará útil luego para poder controlar el recorrido de cada uno de estos registros dados y su posterior proceso de carga en pantalla. El resultado de esta función es asignado a la variable $num_resultados. Esta variable última es utilizada dentro de un bucle for(). El bucle sabe cuántos registros posee la consulta y procederá a contar hasta el valor asignado. Por último, la función llamada mysql_fetch_array() en conjunto con su parámetro formal llamado $resultado, es utilizada para asignar la matriz vector a una variable de filas utilizadas para representar los valores obtenidos en función a la fila y la columna de dicha tabla. Al finalizar y para cada campo de la tabla de la base de datos, se escribe el código pertinente que hace referencia al campo y el valor que figura en dicho campo. Todo ello se realiza mediante la variable de objeto $row[campo].

Resulta importante aclarar un detalle. Es probable que al escribir el campo como $row[“title”] suele no no funcionar. Para subsanar este problema, Ud., puede sustituir la expresión literal por el índice de valor de campo, es decir, si el campo se ubica en la tercera columna, su campo podría escribirlo como $row[2] dado que la primera columna tiene el valor 0. Las columnas o campos se encuentran indexados.

Recuérdese que la función stripslashes() es utilizada para quitar los caracteres barra que son utilizados para evitar errores internos en las consultas SQL del motor de base de datos.

Para ir finalizando, una vez que la consulta es realizada y se determina la cantidad de registros existentes, el motor del lenguaje PHP a través de este archivo fuente prepara un informe de datos de envío hacia la computadora cliente. El envío se hace a través de otra página estática en formato HTML, la cual, es recibida por la computadora cliente y copiada localmente en dicha máquina. Una vez hecha la copia, el cliente tendrá toda la información consultada en pantalla y se habrá culminado con el proceso de consulta.

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratará tus datos para realizar acciones promocionales (vía email y/o teléfono).
En la política de privacidad conocerás tu derechos y gestionarás la baja.

Cursos similares a Curso de MySQL con PHP



  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Windows. Instalación de Apache, MySQL y PHP
El proceso para instalar Apache en Windows es muy sencillo.  Con este video te... [12/10/10]
1.759
Curso con video
2. PHP y MySQL. Aplicaciones Web: PHP y base de datos MySQL (décima parte)
Programación de aplicaciones Web con PHP y MySQL. Ahora te enseñaremos a conectar a... [02/12/08]
3.751  
3. PHP y MySQL. Aplicaciones Web: base de datos MySQL II (octava parte)
Programación de aplicaciones Web con PHP y MySQL. Continuando con el estudio de la... [02/12/08]
3.989  

¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail