1. Introducción Capítulo siguiente :

Tamaño: px
Comenzar la demostración a partir de la página:

Download "1. Introducción Capítulo siguiente :"

Transcripción

1 1. Introducción Capítulo siguiente: 2 - Instalación de PHP En mi experiencia como desarrollador de aplicaciones web, PHP ha significado junto al servidor de web Apache, las dos herramientas claves para la creación de aplicaciones. PHP es un lenguaje sencillo, de sintaxis cómoda y similar a la de otros lenguajes como C o C++, es rápido a pesar de ser interpretado, multiplataforma y dispone de una gran cantidad de librerías que facilitan muchísimo el desarrollo de las aplicaciones. El código generado es mantenible, se lee muy bien y podemos programar utilizando objetos. PHP es un lenguaje ideal tanto para el que comienza a desarrollar aplicaciones web como para el desarrollador experimentado, y está alcanzando unos niveles de uso (más de 1 millón de webs lo utilizan ya) que convierten su conocimiento en algo indispensable para los profesionales del desarrollo en Internet. Y, además, PHP es un lenguaje basado en herramientas con licencia de software libre, es decir, no hay que pagar ni licencias, ni estamos limitados en su distribución y, podemos ampliarlo con nuevas funcionalidades si así lo quisiéramos. Respecto a su licencia, en la versión PHP 3.0 era GPL, pasando a ser modificada en su versión 4.0, por la incorporación de Zend, un nuevo interprete de PHP mucho más rápido que el anterior de PHP. Este interprete Zend tiene asociado un optimizador opcional, el cual ya está más dentro del mundo comercial que del software libre, tema que ha levantado algunas suspucacias dentro de la comunidad de desarrolladores de software libre. En esta serie de presentación de PHP mostraremos este lenguaje, como se instala y configura, como se desarrolla con él, las librerías fundamentales y como no, su excelente forma de trabajar con casi todas las bases de datos, y en especial, con MySQL, con la que forma un equipo estrella dentro del mundo de desarrollo software. No olvidaremos por otro lado a PostgreSQL, la base de datos que es realmente software libre, y que avanza con piso firme para convertirse en la base de datos de referencia dentro de cualquier proyecto libre, sobre todo tras la publicación de la versión 7.0. En los artículos de la serie vamos a describir PHP en su última versión, PHP4, que por fin en Mayo del 2000 ha sido publicada. Posiblemente para cuando el lector comience a desarrollar con PHP, esta versión 4 será la estándar. En ella hay muchos cambios y mejoras que detallaremos a lo largo de los artículos de la serie. La serie está orientada al uso conjunto de Apache y PHP, aunque PHP se puede compilar como un ejecutable que puede ser utilizado como cgi-bin. De esta forma, cualquier servidor de web que soporte cgi podría ejecutar las páginas PHP. La ventaja que tiene Apache frente a estos es que podemos compilar el interprete PHP como un módulo de Apache, por lo que la velocidad de ejecución de estas páginas PHP es muy superior, así como el consumo de recursos al cargarse el interprete de PHP una sola vez en memoria. Para estar al día de lo que ocurre en el mundo de PHP tenemos las páginas oficiales de web de PHP, en php.net, y las noticias de PHP que van apareciendo dentro de Barrapunto.com. Qué es PHP?.- Con estas siglas nos referimos a un lenguaje de programación que está muy orientado al desarrollo de aplicaciones web. Cuando pedimos a nuestro servidor de web una página PHP, que no es más que un programa PHP que genera HTML, antes de enviar dicha página al cliente se la pasa al interprete de PHP. Este la interpreta y es el resultado de esta interpretación del programa PHP, contenido en la página PHP, lo que termina llegando al cliente.

2 Supongamos que el contenido de una página web que reside en el servidor, y cuyo nombre es "intro.php", tiene el siguiente contenido: <? echo "<h1>mensaje desde PHP</h1>";?> Cuando un navegador le pida al servidor de web la página "intro.php", el servidor de web va a darse cuenta, por la extensión ".php", de que esta página ha de enviarse primero al interprete de PHP. Este recibe el contenido de la página y como resultado de esta ejecución (interpretación) genera una página HTML, que es la que envía al cliente a través de Apache. Como veremos en una página PHP se puede mezclar HTML y PHP, algo muy flexible pero que hay que manejar con cuidado ya que puede llevar a confusiones y, sobretodo, a que el equipo que diseñe las páginas web y el que programe la aplicación no puedan ser independientes. 2. Instalación de PHP Capítulo anterior: 1 - Introducción Capítulo siguiente: 3 - Programar páginas PHP Sin duda esta sección del manual debe de ser actualiazada ya que se refiere aún a la última beta de PHP4, pero salvo este detalle, el procedimiento sigue siendo válido. También hay que estar atentos a la publicación de Apache 2.0 ya que quizás, implique unos cambios mayores dentro esta sección. Si algún lector quiere contribuir y actualizar la versión será gratamente bienvenida. Uno de los mayores quebraderos de cabeza de PHP en sus comienzos era que obligaba a tener Apache en código fuente y compilarlo. Por fin la instalación de PHP se puede hacer de forma sencilla y sin tener que modificar en casi nada a nuestro servidor de web. Tan sólo necesitamos tener una versión de Apache con soporte DSO para la carga dinámica de objetos. La versión con la que se está desarrollando este artículo es la aunque toda la serie 1.3 tiene este soporte. Si el lector tiene ya instalado PHP3 en su servidor de web Apache debe de tomar la precaución de desactivarlo. Se puede tener de forma simultánea ambas versiones funcionando, pero este proceso es algo complejo y no lo vamos a tratar de momento. Por ello el lector necesita un servidor de web Apache sin soporte para PHP. La mejor forma de comprobar este dato es editar el fichero de configuración de Apache "httpd.conf" (normalmente en el directorio "/etc/httpd") y revisar que no se hagan referencias en él a PHP. Si las encontrara debería de comentarlas y reiniciar el servidor de web. Es necesario que los paquetes de desarrollo de Apache estén también instalados en el entorno del lector. Estos son básicamente los ficheros de cabecera de la librerías de Apache ("/usr/include/apache"), las librerías para extender Apache y algún ejecutable como "apxs" que es una utilidad que permite añadir módulos de carga dinámica a Apache. El resultado de nuestra compilación de PHP va a ser uno de estos módulos. Ha llegado el momento de obtener la última versión de PHP de la red. Esta la puede conseguir el lector de Una vez que tengamos las fuentes de PHP4beta3 vamos a pasar a instalarla. Los pasos a dar son: tar xvfz php-4.0b3.tar.gz cd php-4.0b3 configure --with-apxs=/usr/sbin/apxs make

3 make install (como superusuario) Si todo ha ido bien ya tenemos todo preparado para poder reiniciar el servidor de web Apache con el módulo de PHP4 entre sus funcionalidades. De la compilación cabe destacar el gran tiempo que transcurre en la compilación de uno de los nuevos componentes de PHP4, Zend, el motor principal para la interpretación del lenguaje PHP. Si el lector ha estado atento en la fase de "make install" habrá podido observar como se utiliza la herramienta "apxs" para añadir "libphp4.so" a los módulos de carga dinámica de Apache. La instrucción en concreto es: /usr/sbin/apxs -i -a -n php4 libs/libphp4.so Esta herramienta copia este fichero al directorio donde residen los demás módulos de carga dinámica, "/usr/lib/apache" normalmente, y modifica el fichero de configuración "httpd.conf" para que se cargue este nuevo módulo al arrancar. En Mandrake 6.1, y probablemente en RedHat 6.0 y superior, este proceso no incluye de forma correcta la referencia al módulo dentro de "httpd.conf" lo que nos obliga a editar este fichero y modificar la línea con el contenido: LoadModule php4_module LoadModule php4_module lib/apache/libphp4.sopor la línea modules/libphp4.so Ahora ya sólo nos queda decirle a Apache que todos los ficheros que acaben con la extensión ".php" sean enviados al interprete de PHP, algo que logramos añadiendo a "httpd.conf" la línea: AddType application/x-httpd-php.php4 En anteriores versiones de Apache existían tres ficheros de configuración y esta última línea había que insertarla en el fichero "srm.conf". Reiniciamos nuestro servidor Apache, "/etc/rc.d/init.d/httpd restart" en sistemas Red Hat y si todo ha ido bien tendremos ya todo preparado para empezar a desarrollar con PHP. Si existe algún problema el servidor de web no se arrancará. Para detectar que puede estar ocurriendo se pueden analizar los ficheros de registro de Apache del directorio "/var/log/httpd" e intentar localizar allí el error. A veces también es útil iniciar a mano el demonio de Apache sin la ayuda de ""/etc/rc.d/init.d/httpd", ejecutando de forma directa "/usr/sbin/httpd". Algo que nos puede confirmar de forma definitiva que todo ha ido bien es una línea de registro dentro de "/var/log/httpd/error_log" con un contenido similar a: [notice] Apache/1.3.9 (Unix) (NetRevolution Advanced Server/Linux-Mandrake) PHP/4.0b3 configured -- resuming normal operations Si has logrado llegar ya hasta aquí, prepárate porque ahora viene lo divertido: la programación de páginas PHP. 3. Programar páginas PHP Capítulo anterior: 2 - Instalación de PHP Capítulo siguiente: 4 - Más características de PHP

4 Lo primero que vamos a hacer es crear una página PHP que nos informe de las características del interprete de PHP que tenemos instalado en nuestro servidor de web. Para ello debemos de crear una página PHP con el contenido siguiente: <? phpinfo();?> Este debe de ser el contenido de un fichero de nombre "info.php" y que debe de estar en algún lugar accesible por el servidor de web. Quizás lo mejor sea que lo guardes dentro de tú directorio personal web: "/home/tu_login/public_html". Por ejemplo yo lo tengo dentro del directorio "/home/acs/public_html/info.php". Una vez que lo tengas guardado vamos a intentar abrir esta página. Para ello apunta tú navegador a la página: " En mi caso dicha página es: " El resultado que debes de obtener debe de ser algo similar al de la siguiente figura número Más características de PHP Capítulo anterior: 3 - Programar páginas PHP Capítulo siguiente: 5 - PHPLIB (I) Ahora que hemos visto lo sencilo que es desarrollar con PHP vamos a ver que cosas podemos hacer con él, las librerías de las que disponemos. Muchas de estas librerías ya están orientadas a objetos por lo que su uso será similar al de este ejemplo. Este ejemplo es el que utilizaremos durante el

5 curso para ir introduciendo más conceptos de PHP y en particular, para presentar como se trabaja con las bases de datos MySQL y PostgreSQL. PHP en cada nueva versión soporta nuevas funcionalidades por lo que el mejor método para ver que nuevas librerías incluye es cuando compilamos. Si dentro del directorio con las fuentes de PHP ejecutamos el comando "configure --help" nos dará información de todas las posibles opciones que tiene PHP al ser compilado y, entre esta información, la de todos los módulos que podemos añadir a PHP si disponemos de las librerías adecuadas. Dentro del manual de PHP disponemos también de una referencia a todas las funciones disponibles. Ojo que muchas veces es necesario compilar PHP de forma especial para incluir soporte para una determinada funcionalidad. Por ejemplo, si queremos acceder desde PHP al gestor de base de datos MySQL, es necesario que a la hora de compilar PHP incluyamos ests soporte. Para ello es necesario tener las librerías de MySQL instaladas en el sistema, normalmente en el paquete "dev" de MySQL, y ejecutar "./configure -- with-mysql" antes de compilar PHP. De esta forma PHP incluirá en el módulo generado dicho soporte. En la información que obtenemos con la llamada a la función "phpinfo()" se incluye información sobre los módulos incluidos. En la figura 3 se puede observar la información referente al módulo MySQL y al GD, que se utiliza para la creación de gráficos "al vuelo". De esta información es importante a versión de API del cliente. Si esta no es compatible con la del servidor que queramos acceder, no podremos acceder a este servidor. En este caso tenemos la versión 3.22 que utiliza el protocolo 10 para comunicarse con el servidor MySQL. Si tuvieramos una versión 3.20 del cliente (la versión de MySQL que se liberó con licencia GPL) no podríamos acceder a los servidores 3.22 ya que el cliente utilizaría el protocolo de comunicaciones versión 9, incompatible con la versión 10. Siempre que se habla de PHP lo primero que se hace es presentar el gran número de gestores de bases de datos a los que puede acceder. Adabas D dbm dbase filepro Hyperwave Informix InterBase LDAP Microsoft SQL server msql MySQL ODBC Oracle PostgreSQL Solid Sybase Pero si este aspecto resulta impresionante no menos el soporte para: -Acceso a servidores IMAP -Envío de correo con SMTP -Acceso a servidores de FTP -Acceso a SNMP para gestión de redes y equipos -Generación dinámica de gráficos y documentos PDF

6 -Análisis de documentos XML -Corrector de ortografíai -Genración de datos en WDDX (Intercambio Web de Datos Distribuidos) Y todo esto ha sido posible gracias a que PHP ha sido diseñado de forma muy modular y ha sido sencillo según han sido surgiendo librerías, utilizarlas desde PHP. Toda esta funcionalidad está basada en librerías que en su mayor parte no han sido desarrolladas por el equipo de PHP. La gente de PHP lo que ha implementado han sido os cabos necesarios para poder acceder a las librerías. A lo largo del curso iremos presentando el uso de algunas de estas librerías, aunque nada detiene al lector de comenzar este aprendizaje. En el manual de PHP dispone de documentación abundante sobre todas estas funciones, su uso y los posibles resultados. Esta entrega la vamos a finalizar con una descripción de las nuevas características de PHP4, versión que utilizaremos a lo largo de todo el curso. El nuevo PHP4.- La principal novedad de PHP4 es en el interprete del lenguaje PHP. Gracias a Zend, desarrollado por Andi Gutmans y Zeev Suraski, se han logrado aumentos de entre 5 y 10 veces en la velocidad de ejecución de páginas PHP. Este nuevo rendimiento le ha puesto por delante de ASP, la tencología de Microsoft, por lo que le va a permitir competir directamente con ASP en la plataforma de Microsoft. La plataforma de desarrollo Apache+PHP en entornos Microsoft está logrando ya rendimientos superiores a IIS+ASP, por lo que el aumento de su uso en estas plataformas parece muy probable. Esto significará que en el futuro el desarrollador en plataformas NT, por ejemplo, no se verá obligado al uso de IIS+ASP para el desarrollo de sistemas web, tal y como había sucedido hasta ahora. Por otro lado, PHP estaba hasta el momento pensado básicamente para Apache. Era el único que tenía soporte para tener a PHP como un módulo del servidor. Todos los demás servidores de web sólo podían utilizar a PHP como cgi. En PHP4 se han añadido al soporte de la API de Apache, el de Netscape (NSAPI), el soporte para ISAPI ( API de Internet Explorer) y para la API del servidor de AOL. De esta forma todos estos servidores podrán lograr rendimientos similares a Apache en su ejecución de PHP. Además del aumento en rendimiento en lo referente al soporte de objetos en PHP, la sobrecarga de objetos se ha mejorado. De esta forma se ha añadido la posibilidad de métodos polimórficos, métodos que según desde que referencia a un objeto se llamen se comportan de una forma o de otra. Esta característica es muy importante para incluir soporte para acceder a las arquitecturas CORBA y COM. Otra nueva característica de PHP4 es que se puede compilar para soportar hebras, algo que no era posible en PHP3. La principal ventaja que podemos obtener de esta funcionalidad es el uso de librerías que utilicen hebras. Y en la mayoría de las implementaciones de CORBA esto es así. Quizás pase ya poco tiempo antes de poder acceder al mundo CORBA desde PHP. Para el desarrollador con PHP4 se incluye un depurador lo que nos evitará muchos quebraderos de cabeza con PHP. Podremos seguir con mayor profundidad esos errores misteriosos que ocurren en estos lenguajes poco tipados. El nuevo interprete de PHP es capaz de liberar los recursos que reservemos de forma automática con lo que nos podremos olvidar de liberarlos. Sí, esto es algo similar al recolector de basura de Java. Habrá que hacer pruebas para ver que tal funciona porque en el caso de Java, muchas veces da más dolores de cabeza de los que te ahorra. En la referencia [2] se puede acceder a un informe realizado por Javier Carretero sobre PHP4, el más completo que he encontrado en Internet. Conclusiones.- Esperamos que con esta primera entrega del curso de PHP el lector haya recibido la motivación suficiente como para empezar a utilizarlo. Si algo caracteriza a PHP es su sencillez: en

7 pocos días se puede llegar a ser un desarrollador de PHP bastante profesional. En las próximas entregas del curso se irán presentando las librerías principales de PHP, las virguerías que se pueden acceder con muy poco código y las noticias que aparezcan dentro del mundo de PHP. Referencias [1] Página principal de PHP [2] Informe de PHP4 de Javier Carretero Al pedirle esta página al servidor de web, este al ver su extensión llama al interprete de PHP y le dice que "ejecute" la página y le entregue los resultados. El interprete abre la página y ejecuta la llamada a la función "phpinfo()" que, como resultado, nos entrega toda la información sobre el interprete de PHP en formato HTML. Verdad que es sencillo?. Vamos con una página algo más complicada. Y vamos con la orientación a objetos. PHP tiene soporte para la programación orientada a objetos, es decir, puedes crear clases para la construcción de objetos, con sus constructores etc. El soporte de objetos que tenemos en PHP no es tan potente como el de C++, pero cada vez es más completo y en esta versión nueva de PHP4 este soporte ha sido mejorado. Si no sabes programar utilizando objetos en este curso algo vas a aprender pero te recomiendo que sin más dilación consigas algún buen libro o tutorial por Internet. Los objetos cada vez tienen más fuerza a la hora de desarrollar software. De cualquier forma en este curso vamos a utilizar la programación con objetos en un nivel muy básico. En nuestro siguiente ejemplo vamos a crear un objeto que nos va a permitir acceder a diversas bases de datos. Claro está que lo vamos a dejar sin implementar aún en gran parte, pero todo llegará. Aquí va el código de la página: <?php class connection { var $dbug=1, $con, $type; } function gettype() {global $type;return $this->type;} // Constructor del objeto de conexión a la base de datos function connection($typedb="mysql",$database_name="template1") { $this->connection_open ($typedb,$database_name); } // Apertura de la conexión con la base de datos function connection_open ($typedb,$database_name) { $this->$type=$typedb; if ($type=="postgresql") $this->$con=new postgresql_connection; elseif ($type=="mysql") $this->$con=new mysql_connection; else {error_message("open:unkown database type");exit;} $this->$con->connection_open($database_name); } class mysql_connection { function mysql_connection() { echo "<h1>la clase mysql_connection aún no está implementada.<h1>"; } function connection_open($database_name) {

8 } } echo "<h1>método connection_open sin implementar.<h1>"; $bd = new connection("mysql","template1");?> Si el lector está acostumbrado a la programación con objetos este código le resultará muy familiar. Tenemos una clase principal "connection" que se encarga de gestionar las conexiones con la base de datos. Cuando desde nuestro programa queramos acceder a una base de datos, nos creamos un objeto connection pasándole como parámetros al constructor de connection, método que se llama de forma automática al crear el objeto, el tipo de base de datos al que queremos acceder y el nombre de la base de datos concreta con la que queremos trabajar. Este objeto delega en los objetos específicos de cada base de datos, el del gestor de base de datos MySQL es "mysql_connection", la apertura de una conexión, las peticiones SQL etc. Esta técnica de utilizar objetos que delegan el trabajo final en otros es muy utilizada en lenguajes que carecen de herencia, mecanismo por el que una clase hereda toda la información de estado y métodos de la clase de a que hereda. PHP3 en sus primeras versiones no tenía soporte para herencia por lo que me vi obligado a utilizar esta técnica. En la actualidad PHP ya soporta herencia, aunque no múltiple. Y no, todas las reglas de encapsulación pública y privada no están implementadas. Y hay que tener cuidado con algo que nos puede dar muchos quebraderos de cabeza: al crear un objeto de una clase B que hereda de una clase A, se llama de forma automática al constructor de la clase B pero no al de su padre, la clase A. Sobre la sintaxis de PHP, es muy similar a la de C o C++. Quizás lo más destacado ocurre a nivel semántico: el tipado es muy poco estricto, algo típico en los lenguajes "script", y cuando creamos una variable en ella podemos meter el tipo de datos que queramos. Esto es muy flexible y cómodo para el desarrollador, aunque los errores que se cometen pueden ser mucho más graves y difíciles de corregir. Las posibilidades del interprete para detectar incompatibilidades entre variables se reducen mucho y puede ocurrir cosas extrañas en determinadas circunstancias si no tenemos cuidado. Sobre el código de este ejemplo en concreto, tenemos dos clases. La definición de una clase es hace con la palabra clave "class" seguida del nombre de la clase. Entre llaves desarrollamos toda la descripción de la clase, sus variables y métodos. Dentro de un método de la clase (function) se pueden acceder otras partes de la clase por medio del puntero "$this". Por ejemplo, para acceder desde el método "connection_open" a la variable de la clase "$type" lo hacemos con "$this->$type". Si guardamos esta clase en un fichero, por ejemplo "ejemplodb.php", cuando accedamos a este fichero a través del servidor de web, este llamará de nuevo al interprete de PHP al ver que la extensión del fichero es "php". El interprete de PHP analizará el código y ejecutará la instrucción ": $bd = new connection("mysql","template1"); Con ello se crearía un nuevo objeto de la clase "connection". Al crearse se llama de forma automática al constructor "function connection" que a su vez llama al método "connection_open". Este método crea un nuevo objeto de la clase "mysql_connection" ($con) el cual llama de forma automática a su constructor "function mysql_connection" el cual envía la cadena HTML "<h1>la clase mysql_connection aún no está implementada.<h1>". Desde el método "connection_open" de "connection" se llama a "connection_open" del objeto "$con", que es de la clase mysql_connection, lo que provoca que se imprima otra cadena HTML: "<h1>método connection_open sin implementar.<h1>.". Tras esta última invocación el programa finaliza y se envía el resultado al servidor de web, el cual reenvía estos datos al cliente. En la figura 2 podemos ver el resultado de dicha ejecución.

9 4. Más características de PHP Capítulo anterior: 3 - Programar páginas PHP Capítulo siguiente: 5 - PHPLIB (I) Ahora que hemos visto lo sencilo que es desarrollar con PHP vamos a ver que cosas podemos hacer con él, las librerías de las que disponemos. Muchas de estas librerías ya están orientadas a objetos por lo que su uso será similar al de este ejemplo. Este ejemplo es el que utilizaremos durante el curso para ir introduciendo más conceptos de PHP y en particular, para presentar como se trabaja con las bases de datos MySQL y PostgreSQL. PHP en cada nueva versión soporta nuevas funcionalidades por lo que el mejor método para ver que nuevas librerías incluye es cuando compilamos. Si dentro del directorio con las fuentes de PHP ejecutamos el comando "configure --help" nos dará información de todas las posibles opciones que tiene PHP al ser compilado y, entre esta información, la de todos los módulos que podemos añadir a PHP si disponemos de las librerías adecuadas. Dentro del manual de PHP disponemos también de una referencia a todas las funciones disponibles. Ojo que muchas veces es necesario compilar PHP de forma especial para incluir soporte para una determinada funcionalidad. Por ejemplo, si queremos acceder desde PHP al gestor de base de datos MySQL, es necesario que a la hora de compilar PHP incluyamos ests soporte. Para ello es necesario tener las librerías de MySQL instaladas en el sistema, normalmente en el paquete "dev" de MySQL, y ejecutar "./configure -- with-mysql" antes de compilar PHP. De esta forma PHP incluirá en el módulo generado dicho soporte. En la información que obtenemos con la llamada a la función "phpinfo()" se incluye información sobre los módulos incluidos. En la figura 3 se puede observar la información referente al módulo MySQL y al GD, que se utiliza para la creación de gráficos "al vuelo".

10 5. PHPLIB (I) Capítulo anterior: 4 - Más características de PHP Capítulo siguiente: 6 - PHPLIB (II) Después de la primera entrega de esta sección donde presentamos PHP4, vamos a ponernos ya a programar aplicaciones utilizando PHP. Y PHP no es más que un lenguaje y un conjunto de librerías orientadas hacia el desarrollado de aplicaciones web. Todo lo que podemos hacer con PHP lo podríamos hacer exactamente igual con otro lenguaje utilizando CGI, pero la complejidad y tiempo de desarrollo serían mucho mayores y su integración con el web mucho menor. Quizás podamos ver PHP como una extensión de HTML del lado del servidor. Recordemos que en principio el lenguaje PHP se mezcla con HTML en una página HTML con extensión ".php". Es precisamente esta extensión la que alerta al servidor de web para que antes de entregar la página al cliente, se la pase al interprete de PHP para que ejecute las partes PHP y envíe al cliente el HTML y los resultados de las partes PHP. A lo largo de esta entrega nos vamos a centrar en describir PHPLIB, una librería que nos va a permitir de forma sencilla poder trabajar con diferentes bases de datos de forma transparente, poder gestionar sesiones de una forma sencilla y llevar un control de acceso muy flexible basado en bases de datos. PHPLIB también proporciona clases, está basada en objetos, para gestionar plantillas y crear HTML desde PHP. Como veremos uno de los problemas

11 fundamentales con lenguajes como PHP, donde se mezcla el código PHP con el código HTML, es que no está bien delimitado el campo del diseñador HTML y del programador y que el código resultante puede ser complejo de entender y por o tanto, muy complicado de mantener. Las plantillas permiten que el código HTML esté totalmente fuera del código PHP con lo que el resultado final es mucho más flexible y mantenible. PHPLIB es una librería GPL y se puede obtener en la referencia [1]. Su instalación es un tanto compleja ya que toda su funcionalidad principal utiliza base de datos. Por lo tanto lo primero es tener una base de datos funcionando en el sistema. Nos vamos a centrar en MySQL pero la instalación sería muy similar para PostgreSQL o MS Access. Una vez que hayamos obtenido el "tar.gz" de la librería la descomprimimos en un directorio (tar xvfz phplib-7.2.tar.gz ) y pasamos a instalarla. La estructura de directorios resultante es: CHANGES COPYING HELP README VERSION pages stuff COMMIT CREDITS Makefile TODO doc php unsup La documentación de la librería es de los más completa y se encuentra en el directorio "doc". Las clases que componente la librería se encuentran en el directorio "php" y los "scripts" de creación de base de datos y tablas necesarios para el funcionamiento de la librería y el soporte de LDAP se encuentra en el directorio "stuff". En el directorio "pages" tenemos unos sencillos ejemplos para comenzar a trabajar con la librería y en "unsup" tenemos utilidades de las que no se da soporte, es decir, que pueden ser útiles pero que no son parte de la distribución oficial. Sobre la licencia como ya dijimos es software GPL y por lo tanto dentro de "COPYING" tenemos la querida licencia GPL. El índice de la documentación lo podemos ver en la siguiente figura. La guía de instalación rápida nos cuenta en 10 pasos como instalar la librería. Como ya dijimos lo primero es tener una base de datos funcionando en el sistema. Quizás puede parecer un requisito excesivo pero los servidores web sin base de datos serán una especie en extinción en el futuro cercano. Si tenemos MySQL instalado todo va a ser sencillo. Accedemos al directorio "stuff" y ejecutamos: mysqladmin -u root create phplib mysql -u root < create_database.mysql Con ello creamos una base de datos para PHPLIB y dentro de ella la poblamos con una serie de tablas. En estas tablas es donde PHPLIB guarda toda la información de sesiones y control de accesos. Una vez que ya tenemos la infraestructura de base de datos preparada hay que indicar a PHP que en todas las páginas incluya el núcleo de PHPLIB. Se puede evitar hacer esto pero es muy cómodo tener toda esta funcionalidad de forma automática en nuestras páginas PHP, y este núcleo es bastante reducido. Esto lo vamos a lograr accediendo al fichero de configuración de PHP, normalmente "/etc/php.ini", e incluir en la línea que comienza con "auto_prepend_file" la localización del fichero "prepend.php3" que se encuentra dentro del directorio "php" de PHPLIB. De esta forma el interprete de PHP incluye PHPLIB en todas las páginas PHP. Una vez hecho esto solo nos queda acceder al fichero "local.inc" y especificar los datos necesarios en la clase "DB_Example" para que PHPLIB puede acceder a la base de datos. El contenido de esta clase es: class DB_Example extends DB_Sql { var $Host = "localhost"; var $Database = "phplib"; var $User = "root"; var $Password = ""; } Tenemos que especificar en que máquina está corriendo la base de datos, como se llama la base de datos en la que se van a almacenar los datos de PHPLIB, y un usuario y clave para acceder a esa

12 base de datos. La clase DB_Sql es una abstracción del acceso a la base de datos, es decir, que a través de esta clase podemos acceder de forma idéntica a varios tipos de bases de datos diferentes. En concreto en la versión actual de PHPLIB nos encontramos implementaciones de DB_Sql para las siguientes bases de datos: db_msql.inc: msql db_mssql.inc: MS SQL Server db_mysql.inc: MySQL db_oci8.inc, db_oracle.inc: ORACLE db_odbc.inc: ODBC db_pgsql.inc: PostgreSQL db_sybase.inc: Sybase Si basamos nuestros desarrollos en PHPLIB y DB_Sql la migración de un sistema de bases de datos será trivial: sólo habrá que traspasar los datos y cambiar la clase con la que se accede a la base de datos. Todo nuestro código será idéntico. Control de sesiones.- Ya en este punto estamos en disposición de utilizar la librería PHPLIB. Para ello lo mejor es poner el directorio "pages" de la distribución en algún lugar desde el que el servidor de web pueda acceder a él y a través de un navegador acceder a la página "index.php3". El resultado tiene que ser similar al de la figura 2. Si prueba el lector a recargar la página verá que el contador que aparece va aumentando. Lo que está ocurriendo es que la primera vez que se accedió a esta página se creó una "cookie" para el control de la sesión. A partir de este momento está "cookie" con el identificador de sesión es enviado al servidor de web por el cliente cada vez accede a la página permitiendo el control del estado de la sesión. De hecho este control se realiza utilizando la base de datos "phplib" que creamos anteriormente. Si vemos las tablas que hay en la base de datos "phplib" encontramos: active_sessions active_sessions_split auth_use auth_user_md5 db_sequence En la tabla "active_sessions" es donde se almacena la información de sesión y cada vez que se crea una nueva sesión, se crea un registro en esta tabla para su control. Supongamos que queremos controlar el acceso a un conjunto de páginas por nuestros clientes. Con PHPLIB es tan sencillo como incluir al comienzo de cada página con control de sesión la llamada: page_open(array("sess" => "Sesión de control")); De esta forma PHPLIB verifica si el usuario tiene ya creada la "cookie". Si no la tiene se la crea y si la tiene nos permite acceder a todos los datos de la sesión. Gracias al control de sesiones podemos almacenar diferentes variables asociadas a esta sesión. Desde el momento que se abre una sesión, se abren todas las variables de dicha sesión. Para asociar una variable a una sesión utilizamos una llamada de PHPLIB: $sess->register("s"); Al final de una página con control de sesión, tenemos que realizar una llamada a PHPLIB para cerrar la sesión. En esta llamada todas las variables asociadas a la sesión se guardan para que no se pierdan: page_close(); Es por todos conocido lo poco que gustan las "cookies" a la gente por el ataque hacia su privacidad que supone. Con PHPLIB el control de sesiones se puede realizar también utilizando el método

13 GET de envío de datos, es decir, adjuntando a la URL de acceso a la página el identificador de la sesión. Esto se controla si en la página con control de sesiones ponemos todos los enlaces a otras páginas de la siguiente forma: $sess->purl("showoff.php3"); Ya hemos visto pues una de las principales ventajas de utilizar PHPLIB: el sencillo control de sesiones. con este control el implementar una bolsa de la compra donde se vayan almacenando todos los artículos de una compra es trivial. O el almacenamiento de una barra de navegación con todas las páginas por las que ha ido accediendo el usuario. Control de Identidad de Usuarios.- Junto con el control de sesiones es el control de acceso a páginas una de las principales necesidades en las aplicaciones web. Y de nuevo con PHPLIB tenemos solucionado de forma sencilla este control. Es cierto que con Apache tenemos mecanismos para el control de acceso a páginas, pero es un control de acceso o no acceso. Normalmente necesitamos ir más allá. Necesitamos que según la persona que acceda dar acceso a unas partes u otras, poder crear grupos de usuarios con privilegios etc. Además PHPLIB asocia este control de identidad de usuarios al control de sesiones, algo que nos permite asociar de forma automática una sesión a un usuario identificado. Cuando queremos que una página solo pueda ser accedida por un usuario identificado incluimos en la primera línea de esta página: page_open(array("sess" => "Example_Session", "auth" => "Example_Auth", "perm" => "Example_Perm", "user" => "Example_User")); Es en la tabla "auth_user" de la base de datos "phplib" donde se almacena toda la información sobre los usuarios. Y en esta tabla también se incluye un campo "perms" donde se pueden detallar los permisos que tiene un usuario. Supongamos que hay una parte de administración a la que sólo pueden acceder los usuarios con permiso de administrador. Para ello en el campo "perms" del registro del usuario debe aparecer "admin". Con PHPLIB lo único que hay que hacer para realizar este control es incluir la llamada: $perm->check("admin"); Si el usuario no está aún autenticado se le presentará una página para que inserte un identificador y una clave de entrada. Esta página se puede observar en la figura 3. En el ejemplo inicial de PHPLIB el identificador es "kris" y la clave es "test". Una vez introducidos podemos volver a acceder a esta página y ya se nos volverá a pedir el identificador. De esta información es importante a versión de API del cliente. Si esta no es compatible con la del servidor que queramos acceder, no podremos acceder a este servidor. En este caso tenemos la versión 3.22 que utiliza el protocolo 10 para comunicarse con el servidor MySQL. Si tuvieramos una versión 3.20 del cliente (la versión de MySQL que se liberó con licencia GPL) no podríamos acceder a los servidores 3.22 ya que el cliente utilizaría el protocolo de comunicaciones versión 9, incompatible con la versión 10. Siempre que se habla de PHP lo primero que se hace es presentar el gran número de gestores de bases de datos a los que puede acceder.

14 Adabas D dbm dbase filepro Hyperwave Informix InterBase LDAP Microsoft SQL server msql MySQL ODBC Oracle PostgreSQL Solid Sybase Pero si este aspecto resulta impresionante no menos el soporte para: -Acceso a servidores IMAP -Envío de correo con SMTP -Acceso a servidores de FTP -Acceso a SNMP para gestión de redes y equipos -Generación dinámica de gráficos y documentos PDF -Análisis de documentos XML -Corrector de ortografíai -Genración de datos en WDDX (Intercambio Web de Datos Distribuidos) Y todo esto ha sido posible gracias a que PHP ha sido diseñado de forma muy modular y ha sido sencillo según han sido surgiendo librerías, utilizarlas desde PHP. Toda esta funcionalidad está basada en librerías que en su mayor parte no han sido desarrolladas por el equipo de PHP. La gente de PHP lo que ha implementado han sido os cabos necesarios para poder acceder a las librerías. A lo largo del curso iremos presentando el uso de algunas de estas librerías, aunque nada detiene al lector de comenzar este aprendizaje. En el manual de PHP dispone de documentación abundante sobre todas estas funciones, su uso y los posibles resultados. Esta entrega la vamos a finalizar con una descripción de las nuevas características de PHP4, versión que utilizaremos a lo largo de todo el curso. El nuevo PHP4.- La principal novedad de PHP4 es en el interprete del lenguaje PHP. Gracias a Zend, desarrollado por Andi Gutmans y Zeev Suraski, se han logrado aumentos de entre 5 y 10 veces en la velocidad de ejecución de páginas PHP. Este nuevo rendimiento le ha puesto por delante de ASP, la tencología de Microsoft, por lo que le va a permitir competir directamente con ASP en la plataforma de Microsoft. La plataforma de desarrollo Apache+PHP en entornos Microsoft está logrando ya rendimientos superiores a IIS+ASP, por lo que el aumento de su uso en estas plataformas parece muy probable. Esto significará que en el futuro el desarrollador en plataformas NT, por ejemplo, no se verá obligado al uso de IIS+ASP para el desarrollo de sistemas web, tal y como había sucedido hasta ahora. Por otro lado, PHP estaba hasta el momento pensado básicamente para Apache. Era el único que tenía soporte para tener a PHP como un módulo del servidor. Todos los demás servidores de web sólo podían utilizar a PHP como cgi. En PHP4 se han añadido al soporte de la API de Apache, el de Netscape (NSAPI), el soporte para ISAPI ( API de Internet Explorer) y para la API del servidor de AOL. De esta forma todos estos servidores podrán lograr rendimientos similares a Apache en su ejecución de PHP.

15 Además del aumento en rendimiento en lo referente al soporte de objetos en PHP, la sobrecarga de objetos se ha mejorado. De esta forma se ha añadido la posibilidad de métodos polimórficos, métodos que según desde que referencia a un objeto se llamen se comportan de una forma o de otra. Esta característica es muy importante para incluir soporte para acceder a las arquitecturas CORBA y COM. Otra nueva característica de PHP4 es que se puede compilar para soportar hebras, algo que no era posible en PHP3. La principal ventaja que podemos obtener de esta funcionalidad es el uso de librerías que utilicen hebras. Y en la mayoría de las implementaciones de CORBA esto es así. Quizás pase ya poco tiempo antes de poder acceder al mundo CORBA desde PHP. Para el desarrollador con PHP4 se incluye un depurador lo que nos evitará muchos quebraderos de cabeza con PHP. Podremos seguir con mayor profundidad esos errores misteriosos que ocurren en estos lenguajes poco tipados. El nuevo interprete de PHP es capaz de liberar los recursos que reservemos de forma automática con lo que nos podremos olvidar de liberarlos. Sí, esto es algo similar al recolector de basura de Java. Habrá que hacer pruebas para ver que tal funciona porque en el caso de Java, muchas veces da más dolores de cabeza de los que te ahorra. En la referencia [2] se puede acceder a un informe realizado por Javier Carretero sobre PHP4, el más completo que he encontrado en Internet. Conclusiones.- Esperamos que con esta primera entrega del curso de PHP el lector haya recibido la motivación suficiente como para empezar a utilizarlo. Si algo caracteriza a PHP es su sencillez: en pocos días se puede llegar a ser un desarrollador de PHP bastante profesional. En las próximas entregas del curso se irán presentando las librerías principales de PHP, las virguerías que se pueden acceder con muy poco código y las noticias que aparezcan dentro del mundo de PHP. Referencias [1] Página principal de PHP [2] Informe de PHP4 de Javier Carretero 5. PHPLIB (I) Capítulo anterior: 4 - Más características de PHP Capítulo siguiente: 6 - PHPLIB (II) Después de la primera entrega de esta sección donde presentamos PHP4, vamos a ponernos ya a programar aplicaciones utilizando PHP. Y PHP no es más que un lenguaje y un conjunto de librerías orientadas hacia el desarrollado de aplicaciones web. Todo lo que podemos hacer con PHP lo podríamos hacer exactamente igual con otro lenguaje utilizando CGI, pero la complejidad y tiempo de desarrollo serían mucho mayores y su integración con el web mucho menor. Quizás podamos ver PHP como una extensión de HTML del lado del servidor. Recordemos que en principio el lenguaje PHP se mezcla con HTML en una página HTML con extensión ".php". Es precisamente esta extensión la que alerta al servidor de web para que antes de entregar la página al

16 cliente, se la pase al interprete de PHP para que ejecute las partes PHP y envíe al cliente el HTML y los resultados de las partes PHP. A lo largo de esta entrega nos vamos a centrar en describir PHPLIB, una librería que nos va a permitir de forma sencilla poder trabajar con diferentes bases de datos de forma transparente, poder gestionar sesiones de una forma sencilla y llevar un control de acceso muy flexible basado en bases de datos. PHPLIB también proporciona clases, está basada en objetos, para gestionar plantillas y crear HTML desde PHP. Como veremos uno de los problemas fundamentales con lenguajes como PHP, donde se mezcla el código PHP con el código HTML, es que no está bien delimitado el campo del diseñador HTML y del programador y que el código resultante puede ser complejo de entender y por o tanto, muy complicado de mantener. Las plantillas permiten que el código HTML esté totalmente fuera del código PHP con lo que el resultado final es mucho más flexible y mantenible. PHPLIB es una librería GPL y se puede obtener en la referencia [1]. Su instalación es un tanto compleja ya que toda su funcionalidad principal utiliza base de datos. Por lo tanto lo primero es tener una base de datos funcionando en el sistema. Nos vamos a centrar en MySQL pero la instalación sería muy similar para PostgreSQL o MS Access. Una vez que hayamos obtenido el "tar.gz" de la librería la descomprimimos en un directorio (tar xvfz phplib-7.2.tar.gz ) y pasamos a instalarla. La estructura de directorios resultante es: CHANGES COPYING HELP README VERSION pages stuff COMMIT CREDITS Makefile TODO doc php unsup La documentación de la librería es de los más completa y se encuentra en el directorio "doc". Las clases que componente la librería se encuentran en el directorio "php" y los "scripts" de creación de base de datos y tablas necesarios para el funcionamiento de la librería y el soporte de LDAP se encuentra en el directorio "stuff". En el directorio "pages" tenemos unos sencillos ejemplos para comenzar a trabajar con la librería y en "unsup" tenemos utilidades de las que no se da soporte, es decir, que pueden ser útiles pero que no son parte de la distribución oficial. Sobre la licencia como ya dijimos es software GPL y por lo tanto dentro de "COPYING" tenemos la querida licencia GPL. El índice de la documentación lo podemos ver en la siguiente figura. La guía de instalación rápida nos cuenta en 10 pasos como instalar la librería. Como ya dijimos lo primero es tener una base de datos funcionando en el sistema. Quizás puede parecer un requisito excesivo pero los servidores web sin base de datos serán una especie en extinción en el futuro cercano. Si tenemos MySQL instalado todo va a ser sencillo. Accedemos al directorio "stuff" y ejecutamos: mysqladmin -u root create phplib mysql -u root < create_database.mysql Con ello creamos una base de datos para PHPLIB y dentro de ella la poblamos con una serie de tablas. En estas tablas es donde PHPLIB guarda toda la información de sesiones y control de accesos. Una vez que ya tenemos la infraestructura de base de datos preparada hay que indicar a PHP que en todas las páginas incluya el núcleo de PHPLIB. Se puede evitar hacer esto pero es muy cómodo tener toda esta funcionalidad de forma automática en nuestras páginas PHP, y este núcleo es bastante reducido. Esto lo vamos a lograr accediendo al fichero de configuración de PHP, normalmente "/etc/php.ini", e incluir en la línea que comienza con "auto_prepend_file" la localización del fichero "prepend.php3" que se encuentra dentro del directorio "php" de PHPLIB. De esta forma el interprete de PHP incluye PHPLIB en todas las páginas PHP. Una vez hecho esto solo nos queda acceder al fichero "local.inc" y especificar los datos necesarios en la clase "DB_Example" para que PHPLIB puede acceder a la base de datos. El contenido de esta clase es: class DB_Example extends DB_Sql { var $Host = "localhost";

17 var $Database = "phplib"; var $User = "root"; var $Password = ""; } Tenemos que especificar en que máquina está corriendo la base de datos, como se llama la base de datos en la que se van a almacenar los datos de PHPLIB, y un usuario y clave para acceder a esa base de datos. La clase DB_Sql es una abstracción del acceso a la base de datos, es decir, que a través de esta clase podemos acceder de forma idéntica a varios tipos de bases de datos diferentes. En concreto en la versión actual de PHPLIB nos encontramos implementaciones de DB_Sql para las siguientes bases de datos: db_msql.inc: msql db_mssql.inc: MS SQL Server db_mysql.inc: MySQL db_oci8.inc, db_oracle.inc: ORACLE db_odbc.inc: ODBC db_pgsql.inc: PostgreSQL db_sybase.inc: Sybase Si basamos nuestros desarrollos en PHPLIB y DB_Sql la migración de un sistema de bases de datos será trivial: sólo habrá que traspasar los datos y cambiar la clase con la que se accede a la base de datos. Todo nuestro código será idéntico. Control de sesiones.- Ya en este punto estamos en disposición de utilizar la librería PHPLIB. Para ello lo mejor es poner el directorio "pages" de la distribución en algún lugar desde el que el servidor de web pueda acceder a él y a través de un navegador acceder a la página "index.php3". El resultado tiene que ser similar al de la figura 2. Si prueba el lector a recargar la página verá que el contador que aparece va aumentando. Lo que está ocurriendo es que la primera vez que se accedió a esta página se creó una "cookie" para el control de la sesión. A partir de este momento está "cookie" con el identificador de sesión es enviado al servidor de web por el cliente cada vez accede a la página permitiendo el control del estado de la sesión. De hecho este control se realiza utilizando la base de datos "phplib" que creamos anteriormente. Si vemos las tablas que hay en la base de datos "phplib" encontramos: active_sessions active_sessions_split auth_use auth_user_md5 db_sequence En la tabla "active_sessions" es donde se almacena la información de sesión y cada vez que se crea una nueva sesión, se crea un registro en esta tabla para su control. Supongamos que queremos controlar el acceso a un conjunto de páginas por nuestros clientes. Con PHPLIB es tan sencillo como incluir al comienzo de cada página con control de sesión la llamada: page_open(array("sess" => "Sesión de control")); De esta forma PHPLIB verifica si el usuario tiene ya creada la "cookie". Si no la tiene se la crea y si la tiene nos permite acceder a todos los datos de la sesión. Gracias al control de sesiones podemos almacenar diferentes variables asociadas a esta sesión. Desde el momento que se abre una sesión, se abren todas las variables de dicha sesión. Para asociar una variable a una sesión utilizamos una llamada de PHPLIB: $sess->register("s"); Al final de una página con control de sesión, tenemos que realizar una llamada a PHPLIB para

18 cerrar la sesión. En esta llamada todas las variables asociadas a la sesión se guardan para que no se pierdan: page_close(); Es por todos conocido lo poco que gustan las "cookies" a la gente por el ataque hacia su privacidad que supone. Con PHPLIB el control de sesiones se puede realizar también utilizando el método GET de envío de datos, es decir, adjuntando a la URL de acceso a la página el identificador de la sesión. Esto se controla si en la página con control de sesiones ponemos todos los enlaces a otras páginas de la siguiente forma: $sess->purl("showoff.php3"); Ya hemos visto pues una de las principales ventajas de utilizar PHPLIB: el sencillo control de sesiones. con este control el implementar una bolsa de la compra donde se vayan almacenando todos los artículos de una compra es trivial. O el almacenamiento de una barra de navegación con todas las páginas por las que ha ido accediendo el usuario. Control de Identidad de Usuarios.- Junto con el control de sesiones es el control de acceso a páginas una de las principales necesidades en las aplicaciones web. Y de nuevo con PHPLIB tenemos solucionado de forma sencilla este control. Es cierto que con Apache tenemos mecanismos para el control de acceso a páginas, pero es un control de acceso o no acceso. Normalmente necesitamos ir más allá. Necesitamos que según la persona que acceda dar acceso a unas partes u otras, poder crear grupos de usuarios con privilegios etc. Además PHPLIB asocia este control de identidad de usuarios al control de sesiones, algo que nos permite asociar de forma automática una sesión a un usuario identificado. Cuando queremos que una página solo pueda ser accedida por un usuario identificado incluimos en la primera línea de esta página: page_open(array("sess" => "Example_Session", "auth" => "Example_Auth", "perm" => "Example_Perm", "user" => "Example_User")); Es en la tabla "auth_user" de la base de datos "phplib" donde se almacena toda la información sobre los usuarios. Y en esta tabla también se incluye un campo "perms" donde se pueden detallar los permisos que tiene un usuario. Supongamos que hay una parte de administración a la que sólo pueden acceder los usuarios con permiso de administrador. Para ello en el campo "perms" del registro del usuario debe aparecer "admin". Con PHPLIB lo único que hay que hacer para realizar este control es incluir la llamada: $perm->check("admin"); Si el usuario no está aún autenticado se le presentará una página para que inserte un identificador y una clave de entrada. Esta página se puede observar en la figura 3.

19 En el ejemplo inicial de PHPLIB el identificador es "kris" y la clave es "test". Una vez introducidos podemos volver a acceder a esta página y ya se nos volverá a pedir el identificador. 6. PHPLIB (II) Capítulo anterior: 5 - PHPLIB (I) Capítulo siguiente: 7 - PHP para desarrollo de aplicaciones web (I) Ya se ha comentado que uno de los principales problemas a la hora de programar con PHP, o cualquier otro lenguajes que mezcle HTML y el código, es que el código final de las páginas tiene mezclado los datos a presentar y el código. Este mezcla impide además un correcto trabajo entre los desarrolladores de código y los creadores de páginas HTML y diseñadores gráficos. Para resolver este problemo lo mejor es intentar independizar totalmente el código PHP y el código HTML. Este objetivo es bastante lioso de lograr a menos que se ataque el problema de una forma general y se sea muy estrícto a la hora de desarrollar las páginas. Los beneficios logrados por esta separación son muy grandes incluyendo por ejemplo el cambio de temas según el tipo de usuario que acceda al servidor de web, facilitar la traducción de webs sin tocar para nada el código facilitando así la internacionalización del código etc. Dentro de PHPLIB nos encontramos con una clase que nos ayuda con este objetivo: la clase Template. Para ver la potencia del uso de plantillas vamos a planter un ejemplo de unsa sencilla página que debe de controlar el acceso a un web y según el usuario que entre, se debe de presentar el web en un idioma u otro. La aplicación lo único que hace es mostrar una serie de datos númericos sobre cotización en bolsa en euros, por lo que esta información es idéntica para todos los idiomas. Para ello podríamos utilizar os mecanismos de autenticación de la propia PHPLIB. Podríamos crear una nueva tabla en la base de datos asociando identificador de usuario e idioma y tendríamos que preparar los diferentes webs. Supongamos que inicialmente tenemos dos idiomas: español e inglés. Podemos crear dos directorios, uno con las plantillas en español y el otro con las plantillas en inglés. El código podría empezar de la forma: page_open(array("sess" => "Example_Session", "auth" => "Example_Auth", "perm" => "Example_Perm", "user" => "Example_User")); // Template no es del núcleo de PHPLIB por lo que hay que // incluir esta clase de forma explícita. include("template.inc");

20 $plantillas = "/home/acs/public_html/plantillas"; $plantillasespañol = $plantillas."/español"; $plantillasingles= $plantillas."/ingles"; // Ya sabemos que usuario es $auth[uname] // La función miraidioma accedería a la base de datos para ver que // idioma le corresponde a un usuario. $idioma=miraidioma ($auth[uname]); if ($idioma=="español") $t=new Template($plantillasEspañol); elseif ($idioma=="ingles") $t=new Template($plantillasIngles); else {echo "Error en la selección de idioma.";exit;} // Tenemos dos plantillas: una para la cabecera y otra para el cuerpo $t->set_file(array( "cabecera" => "cabecera.ihtml", "cuerpo" => "cuerpo.ihtml")); // Suponemos que existe una función que nos devuelve los valores // a presentar. $valores = obtenvalores(); $fecha = date("d/m/a"); // Cada plantilla puede contener un número de variables cuyo // valor se controla desde el código a través de Template $t->set_var(array("fecha" => $fecha, "Valores" => $valores)); $t->parse("out", array("cabecera", "cuerpo")); /* imprimimos OUT */ $t->p("out"); Todas las plantillas asociadas a un objeto Template han de encontrarse en un directorio. En nuesto ejemplo según el idioma se cogen del directorio en inglés o del español. Una vez asignado el directorio a través de la función "set_file" asociamos plantillas a nombres. De esta forma en nuestro programa utilizaremos los nombres aquí indicados para referirnos a la plantilla a utilizar. En este sencillo ejemplo sólo hay dos plantillas "cabecera.ihtml" y "cuerpo.ihtml". Aparte de definir las plantillas con las que vamos a trabajar hay que definir las variables que hay que sustituir en dichas plantillas. Cualquier ocurrencia de una variable dentro de una plantilla es sustituido por el valor que le asociamos a través de "set_var". En nuestro caso la varible "{Fecha}" se sutituye por "$fecha" y "{Valores}" por $valores. Por ejemplo, el contenido de "cabecera.ihtml" podría ser: <html> <head> <title>valores de cotización <title> <head> <body> Fecha de los valores: {Fecha}El valor de "{Fecha}" será sustituido de forma automática cuando ejecutemos la función de sustitución de valores "parse". El resultado lo almacenamos en la variable "OUT" que imprimimos finalmente con la función "p()". Las plantillas que se incluyen en PHPLIB tienen una funcionalidad más amplia y sugerimos al lector una lectura de la documentación de PHPLIB para ver todas sus posibilidades. La cesta de la compra.- Ya dijimos que gracias al control de sesiones sería trivial construir una cesta de la compra. Pues PHPLIB incluye una clase llamada "Cart" que es precisamente esto, una cesta de la compra.

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT Versión 1. Mayo de 2001 Luis Vinuesa Martínez. Departamento de Informática Universidad de Oviedo vinuesa@correo.uniovi.es www.di.uniovi.es/~vinuesa ÍNDICE. Introducción...

Más detalles

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) APRENDERAPROGRAMAR.COM GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) Sección: Cursos Categoría: Tutorial básico del programador web: HTML desde cero Fecha

Más detalles

Documentación del Terminal

Documentación del Terminal Documentación del Terminal 1. Descripción El Programa de Preventa-Autoventa FacturaPlus está diseñado para su utilización en PDAs incluyendo en este paquete además una aplicación para PC con la que gestionar

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

El proceso de edición digital en Artelope y CTCE

El proceso de edición digital en Artelope y CTCE El proceso de edición digital en Artelope y CTCE Carlos Muñoz Pons Universitat de València carlos.munoz-pons@uv.es Introducción Una de las cuestiones más importantes a la hora de trabajar en proyectos

Más detalles

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A) aprenderaprogramar.com Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A) Sección: Cursos Categoría: Curso creación y administración web: Joomla

Más detalles

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU 2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU Antecedentes:... 2 1. Introducción... 3 2. Imágenes que no se visualizan... 3 3. URLs de recursos o actividades que no son autocontenido...

Más detalles

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Descarga Automática Manual de Usuario Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Versión 5.2 Fecha: 2008-10-15 Ref : MU_DescargaAutomática.doc ÍNDICE 1 INTRODUCCIÓN...

Más detalles

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7 MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Índice Pasos previos a la visualización del programa: Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7 Conceptos e información

Más detalles

Usuarios y Permisos. Capítulo 12

Usuarios y Permisos. Capítulo 12 Capítulo 12 Usuarios y Permisos La gente simplemente intenta utilizar el sitio web Joomla! que has creado - ya sea de forma activa o pasiva. Cuanto mejor sea la experiencia que tenga al hacerlo, mejor

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

MANUAL DE USUARIO UTILIZACIÓN DE LA EXTRANET

MANUAL DE USUARIO UTILIZACIÓN DE LA EXTRANET MANUAL DE USUARIO UTILIZACIÓN DE LA EXTRANET Utilice ésta Guía para conocer los procedimientos básicos de uso de la Extranet. En caso de que tenga alguna duda consulte las Instrucciones de Operación disponibles

Más detalles

Manual de usuario del servidor de faxes IP RFax

Manual de usuario del servidor de faxes IP RFax Manual de usuario del servidor de faxes IP RFax Versión 1.0 Rev. 1(Mayo de 2011) Índice 1 INTRODUCCIÓN... 3 2 CONFIGURACIÓN PREVIA... 6 3 ENVÍO DE FAXES... 9 4 RECEPCIÓN DE FAXES... 12 V 1.0 R 1 2/13 1

Más detalles

Google Calendar. Google Calendar

Google Calendar. Google Calendar Google Calendar Tabla de contenido Tabla de contenido... 2 Introducción... 3 Qué es Google Calendar?... 3 Acceder y crear una cuenta de Google Calendar... 4 Creación de eventos... 11 Envío de invitaciones...

Más detalles

Qué es PHP? Example #1 Un ejemplo introductorio "<?,?>".

Qué es PHP? Example #1 Un ejemplo introductorio <?,?>. Basico de PHP kz Qué es PHP? PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en páginas HTML y ejecutado en el servidor. Una respuesta

Más detalles

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010 Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010 CONTENIDO 1. Qué es? 2. Cómo crear y acceder a la Comunidad Virtual en Microsoft SharePoint 2010? Ejemplo. 3. Qué tengo en la página de inicio

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

CÓMO CREAR NUESTRO CATÁLOGO

CÓMO CREAR NUESTRO CATÁLOGO CÓMO CREAR NUESTRO CATÁLOGO Mediante la aplicación (http://www.prensasoft.com/programas/conline) podemos crear nuestros propios catálogos. Para crear un catálogo necesitamos: - Varios productos que mostrar,

Más detalles

La publicación. Pere Barnola Augé P08/93133/01510

La publicación. Pere Barnola Augé P08/93133/01510 La publicación Pere Barnola Augé P08/93133/01510 FUOC P08/93133/01510 La publicación Índice Introducción... 5 1. El dominio... 7 2. Alojamiento web... 9 3. FTP... 11 3.1. Cliente FTP... 11 3.1.1. Cómo

Más detalles

Manual de Uso Web profesional

Manual de Uso Web profesional Manual de Uso Web profesional Versión 5 Junio 2015 ÍNDICE 0 Introducción... 3 1 Página principal de Mi área de trabajo... 4 2 Solicitudes... 5 3 Aportaciones... 13 4 Trabajos... 17 5 Los documentos a firmar...

Más detalles

3º Grado Educación Infantil Bilingüe Números. Método Singapur y F. Bravo E R

3º Grado Educación Infantil Bilingüe Números. Método Singapur y F. Bravo E R MATEMÁTICAS PARA EDUCACIÓN INFANTIL N Enseñamos y aprendemos llos números:: Método Siingapur y Fernández Bravo,, Porr Clarra Garrcí ía,, Marrtta Gonzzál lezz y Crri isstti ina Lattorrrre.. Ú M E R O S

Más detalles

Programa Presupuestos de Sevillana de Informática.

Programa Presupuestos de Sevillana de Informática. Programa Presupuestos de Sevillana de Informática. Introducción. En sus inicios, el programa Presupuestos estaba pensado únicamente para escribir e imprimir presupuestos, facilitando el trabajo con un

Más detalles

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento Simple tutorial we riseup Pequeña introducción a We Riseup #Qué es we.riseup o Crabgrass? #Como esta estructurado We.riseup? Lo Esencial Unirse a un grupo Metodo 1 Metodo 2 Crear contenido #1 ) Crear la

Más detalles

Capítulo 11. Conclusiones y trabajo futuro

Capítulo 11. Conclusiones y trabajo futuro Capítulo 11. Conclusiones y trabajo futuro En esta tesis ha realizado un entorno de desarrollo Web que proporciona herramientas para la mejora de la calidad del código de los desarrolladores. Para conseguir

Más detalles

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS ACCESS 2010 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS En esta unidad veremos algunas de las herramientas incorporadas de Access que

Más detalles

Instalación Joomla. Instrucciones para instalar Joomla en un pc en la red local del instituto, o en un servidor en Internet

Instalación Joomla. Instrucciones para instalar Joomla en un pc en la red local del instituto, o en un servidor en Internet Instalación Joomla Instrucciones para instalar Joomla en un pc en la red local del instituto, o en un servidor en Internet INSTALACIÓN EN UN ORDENADOR DEL CENTRO. (INSTALACIÓN LOCAL) Con esta instalación,

Más detalles

SECRETARÍA VIRTUAL Perfil Ciudadano

SECRETARÍA VIRTUAL Perfil Ciudadano SECRETARÍA VIRTUAL Perfil Ciudadano Marzo 2012 ÍNDICE 1. INTRODUCCIÓN...1 3. COMPONENTES NECESARIOS...3 4. TELETRAMITAR UNA SOLICITUD...4 4.1 Enviar una solicitud...4 4.1.1. Grabación de la solicitud...5

Más detalles

CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES, BILIB RECETA TECNOLÓGICA REALIZACIÓN DE COPIAS DE SEGURIDAD CON GSYNC

CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES, BILIB RECETA TECNOLÓGICA REALIZACIÓN DE COPIAS DE SEGURIDAD CON GSYNC CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES, BILIB RECETA TECNOLÓGICA REALIZACIÓN DE COPIAS DE SEGURIDAD CON GSYNC Fecha: 11 de Abril de 2012 Licencia Autor del documento: Centro de Apoyo Tecnológico a

Más detalles

Desarrollo Web en Entorno Servidor

Desarrollo Web en Entorno Servidor Desarrollo Web en Entorno Servidor Tema 1: Introducción 1. Tipos de páginas Web. 2. Instalación del software. (XAMPP) 1 Tipos de páginas Web. Páginas estáticas. Páginas dinámicas. 2 Tipos de páginas Web.

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA Fecha última revisión: Septiembre 2014 MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA MÓDULO GOTELGEST.NET MÓVIL... 3 1. INTRODUCCIÓN A

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

Introducción... 4. Cómo empezar a monetizar mi blog?... 7. Porqué son tan interesantes los ingresos por sistemas de afiliados?...

Introducción... 4. Cómo empezar a monetizar mi blog?... 7. Porqué son tan interesantes los ingresos por sistemas de afiliados?... Aaaaa Contenido Introducción... 4 Cómo empezar a monetizar mi blog?... 7 Porqué son tan interesantes los ingresos por sistemas de afiliados?... 10 Cómo se pueden generar ingresos con un blog usando la

Más detalles

Tarea 1 Diseño Web en entorno cliente José Luis Comesaña

Tarea 1 Diseño Web en entorno cliente José Luis Comesaña Actualmente tengo instalados en mi sistema los navegadores Mozilla Firefox, Opera, Safari, Google Chrome e Internet Explorer (éste último porque venía con el sistema, de lo contrario no lo habría instalado).

Más detalles

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA Índice Introducción... 1 Sobre la herramienta Turnitin... 2 Uso de la herramienta Tareas en poliformat... 3 Crear una Tarea para usar con Turnitin....

Más detalles

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario 14 CORREO SEGURO. Hay aplicaciones de correo que permiten enviar y recibir correos cifrados y firmados digitalmente utilizando criptografía. Estas operaciones garantizan el intercambio seguro de información,

Más detalles

Versión 4 - Tutoriales

Versión 4 - Tutoriales Antes de empezar a utilizar el programa es necesario configurarlo para adaptarlo a nuestras necesidades o preferencias. Lo primero que vamos a hacer es introducir los datos básicos de la farmacia, de modo

Más detalles

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B) APRENDERAPROGRAMAR.COM SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP

Más detalles

QUÉ ES HOMEBASE? Encontrar Libros

QUÉ ES HOMEBASE? Encontrar Libros QUÉ ES HOMEBASE? HomeBase 2.3 es el software de gerencia de inventario que permite no perder de vista sus libros, catálogos, desideratas, clientes y facturas. Usted puede agregar nuevas entradas, actualizar

Más detalles

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005 Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005 1. Acerca de este documento Este documento describe el servicio de estadísticas del que actualmente disfrutan algunas de las páginas

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La puesta en marcha de WordPress es muy sencilla,

Más detalles

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

Navegando por Internet

Navegando por Internet Navegando por Internet Dibujo: http://atodavela.alcd.net/ Cuántas veces has naufragado mientras buscabas información en Internet? Te gustaría poder encontrar en pocos minutos la información que necesitas,

Más detalles

Manual de instalación

Manual de instalación Manual de instalación Índice Licencia 3 Instalación 3 Instalación en Debian GNU/Linux 3 Paquetes necesarios 3 Obtención del archivo de fuentes 4 Instalación del programa 5 Apuntes para una instalación

Más detalles

L U I S P A T I Ñ O IN FOR M Á T I C A SIS T E M A S AVA N Z A DOS

L U I S P A T I Ñ O IN FOR M Á T I C A SIS T E M A S AVA N Z A DOS 1 1 EFACTURA ONLINE... 3 1.1 INTERFACE DE EFACTURA ONLINE... 3 1.2 BARRA SUPERIOR... 4 1.3 ÁREA DE TRABAJO. PESTAÑAS... 4 2 EMPRESAS... 5 3 PERSONALIZAR FACTURA... 7 4 CLIENTES... 8 5 FACTURAR... 9 5.1

Más detalles

Índice QUÉ ES QUALITAS ESCUELA FAMILIA? Escuela Familia. Qué es Qualitas Escuela Familia? 3. Secciones 4. Usuario y Contraseña 4. Página Principal 5

Índice QUÉ ES QUALITAS ESCUELA FAMILIA? Escuela Familia. Qué es Qualitas Escuela Familia? 3. Secciones 4. Usuario y Contraseña 4. Página Principal 5 Escuela Familia Índice Qué es Qualitas Escuela Familia? 3 Secciones 4 Usuario y Contraseña 4 Página Principal 5 Información Personal 9 Calendario 10 Mensajería 11 Documentación 11 Sección Alumno 12 SMS

Más detalles

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

Más detalles

6.1. Conoce la papelera

6.1. Conoce la papelera Unidad 6. La papelera de Reciclaje 6.1. Conoce la papelera La papelera no es más que un espacio en el disco duro reservado para almacenar la información que eliminamos, evitando que esta información aparezca,

Más detalles

GOOGLE NOTICIAS Y ALERTAS

GOOGLE NOTICIAS Y ALERTAS GOOGLE NOTICIAS Y ALERTAS Curso de Noticias y Alertas por KZgunea se encuentra bajo licencia Creative Commons de Reconocimiento-NoComercial-CompartirIgual_3.0_ (CC-BY-NC-SA_3.0) Índice del curso 1. TEMA

Más detalles

Squipy v1.1. 0.-Introducción

Squipy v1.1. 0.-Introducción Squipy v1.1 0.-Introducción Squipy es un sencillo proxy que permite filtrar y modificar los datos que se envían desde el navegador hacia un servidor web. El interfaz está en castellano y en inglés y su

Más detalles

FeriaOnline.com C/Llamaquique Nº 4 Tfno: 985256655 33005 Oviedo mail: info@feriaonline.com Url: www.feriaonline.com

FeriaOnline.com C/Llamaquique Nº 4 Tfno: 985256655 33005 Oviedo mail: info@feriaonline.com Url: www.feriaonline.com FeriaOnline.com C/Llamaquique Nº 4 Tfno: 985256655 33005 Oviedo mail: info@feriaonline.com Url: www.feriaonline.com 6.1 Creación de materiales con MS Office ÍNDICE: 1.- DOCUMENTACIÓN CON WORD 1.1 Los Hipervínculos

Más detalles

Índice general de materias LECCIÓN 7 74

Índice general de materias LECCIÓN 7 74 Índice general de materias LECCIÓN 7 74 BUSCAR 74 BUSCAR CON FORMATO 77 REEMPLAZAR 78 REEMPLAZAR CON FORMATO 79 NOTAS AL PIE DE PÁGINA 79 CONFIGURAR LAS NOTAS 81 INSERTAR NOTAS AL PIE 83 MODIFICAR NOTAS

Más detalles

Informática I Notas del curso

Informática I Notas del curso EXCEL Objetivo: Identificar la funcionalidad general de Excel, sus herramientas y recursos Excel Objetivo Particular: Conocer los métodos básicos de trabajo de Excel, para el manejo de registros, datos

Más detalles

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Caso práctico de Cuadro de Mando con Tablas Dinámicas 1 Caso práctico de Cuadro de Mando con Tablas Dinámicas Luis Muñiz Socio Director de SisConGes & Estrategia Introducción Hay una frase célebre que nos permite decir que: Lo que no se mide no se puede controlar

Más detalles

Guía de instalación de Gesclivet.

Guía de instalación de Gesclivet. Guía de instalación de Gesclivet. Índice 1. Previo a la instalación 2. Instalación en un único puesto de trabajo 3. Instalación en una Red de ordenadores 3.1. Instalación en el puesto Servidor 3.2. Instalación

Más detalles

Comercial Cartas de Fidelización

Comercial Cartas de Fidelización Comercial Cartas de Fidelización El objetivo es poder enviar, de una forma sencilla a través de e-mail, textos en su idioma a todos los clientes que cumplen determinadas características. En principio,

Más detalles

5.2.1 La Página Principal

5.2.1 La Página Principal 5.2 Las Páginas WEB Una página Web es un documento electrónico escrito en un lenguaje de ordenador llamado HTML, o Hypertext Markup Language (lenguaje de marcación de hipertexto). Como ya hemos dicho,

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

Secretaría de Salud. Subsecretaria de Innovación y Calidad. Dirección General de Calidad y Educación en Salud

Secretaría de Salud. Subsecretaria de Innovación y Calidad. Dirección General de Calidad y Educación en Salud Secretaría de Salud Subsecretaria de Innovación y Calidad Dirección General de Calidad y Educación en Salud Dirección General Adjunta de Calidad en Salud Dirección de Mejora de Procesos Manual de Usuario

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico Acceso al correo electrónico Pasamos ahora a lo que sería usar la cuenta de correo que nos hicimos en la clase anterior. Lo primero que hacemos es entrar en la página web de Yahoo y localizar el icono

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 22 de enero de 2015 Histórico de cambios Fecha Descripción Autor 16/09/13

Más detalles

3. Qué necesitamos para usar Wordpress?

3. Qué necesitamos para usar Wordpress? Contenido 1. Objetivos de este tutorial... 2 2. Qué es Wordpress?... 2 3. Qué necesitamos para usar Wordpress?... 2 3.1 Alojamiento web... 3 3.2 DOMINIO O DIRECCIÓN DE INTERNET... 3 3.3 Cuenta FTP... 4

Más detalles

Luis Eduardo Barón Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Álvaro Mendoza Y yo soy Álvaro Mendoza.

Luis Eduardo Barón Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Álvaro Mendoza Y yo soy Álvaro Mendoza. Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Y yo soy. En el día de hoy tenemos un módulo que has estado esperando. Ya viste cómo puedes buscar tu mercado, cómo

Más detalles

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública JEFATURA DE GABINETE DE MINISTROS SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública Manual para los Organismos Índice Índice... 2 Descripción... 3 Cómo solicitar la intervención

Más detalles

Programa de Fabricación para Android

Programa de Fabricación para Android Programa de Fabricación para Android Presentación: Este es un programa dirigido a la dirección, planificación, gestión, guardado y presentación de la fabricación, en este caso de una imprenta de generación

Más detalles

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A) APRENDERAPROGRAMAR.COM QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A) Sección: Divulgación Categoría: Lenguajes y entornos

Más detalles

Base de datos en la Enseñanza. Open Office

Base de datos en la Enseñanza. Open Office 1 Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 1: Introducción Instituto de Tecnologías Educativas 2011 Introducción Pero qué es una base de datos? Simplificando mucho, podemos

Más detalles

Se ha ampliado el tamaño de estos tres campos hasta 112 caracteres cada uno.

Se ha ampliado el tamaño de estos tres campos hasta 112 caracteres cada uno. Página 1 de 8 Activar el check de "Pagada" en las facturas Dentro de las facturas tenemos un check "Pagada" para identificar las facturas que están pagadas o no. Este check solo está activo si no tenemos

Más detalles

Manuales de Mozilla Thunderbird

Manuales de Mozilla Thunderbird Que es Mozilla Thunderbird? Es un cliente de correo electrónico de la Fundación Mozilla. El objetivo de Thunderbird fue desarrollar un software más liviano y rápido mediante la extracción y rediseño del

Más detalles

Proyecto final de curso Android: Programación de aplicaciones (3ª edición online, octubre-enero 2013)

Proyecto final de curso Android: Programación de aplicaciones (3ª edición online, octubre-enero 2013) Proyecto final de curso Android: Programación de aplicaciones (3ª edición online, octubre-enero 2013) Nombre de la aplicación: Activland Autor: Varillas Berlandi, Jonathan Origen de la idea: La idea de

Más detalles

5. Composer: Publicar sus páginas en la web

5. Composer: Publicar sus páginas en la web 5. Composer: Publicar sus páginas en la web Si nuestras páginas existen únicamente en el disco duro local, sólo nosotros podremos navegar por ellas, pero nadie más podrá hacerlo. Composer nos permite publicarlas

Más detalles

Curso Internet Básico - Aularagon

Curso Internet Básico - Aularagon Antes de empezar es necesario que tengas claro algunas cosas: para configurar esta cuenta de correo, debes saber que el POP y el SMTP en este caso son mail.aragon.es; esta cuenta de correo hay que solicitarla

Más detalles

Manual de NetBeans y XAMPP

Manual de NetBeans y XAMPP Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación

Más detalles

Manual para Empresas Prácticas Curriculares

Manual para Empresas Prácticas Curriculares Manual para Empresas Prácticas Curriculares ÍNDICE 1. Introducción... 3. Registro y Acceso... 3.1. Registro Guiado... 4.1. Registro Guiado Datos Básicos... 5.1. Registro Guiado Contactos... 5 3. Creación

Más detalles

PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B)

PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B) APRENDERAPROGRAMAR.COM PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero

Más detalles

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA PROGRAMA DE FORMACIÓN UNIDAD DE APRENDIZAJE ACTIVIDAD OBJETIVOS IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA OFIMATICA Y AUXILIAR DE SISTEMAS II-A GESTORES DE CONTENIDO INSTALACIÓN DE JOOMLA Y CREACIÓN DE

Más detalles

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes VAST: Manual de usuario Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes Índice general Índice general 2 1. Introducción 4 2. Representación intermedia del AST 5 2.1. Funcionamiento del VAST

Más detalles

MANEJANDO FICHEROS Y CARPETAS

MANEJANDO FICHEROS Y CARPETAS Tutorial 1 MANEJANDO FICHEROS Y CARPETAS 1.1.- Creando carpetas Para organizar la información que almacenamos en nuestros ordenadores, tenemos una elemento denominado carpeta. Vamos a ver cómo, usando

Más detalles

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES RENOVACIÓN DEL CERTIFICADO CON MOZILLA FIREFOX EN SOFTWARE O TARJETA CRIPTOGRÁFICA (WINDOWS Y MAC) NOMBRE FECHA Elaborado por: Soporte Técnico 23/02/2011

Más detalles

Dell Premier. Guía para comprar y efectuar pedidos de. Registro en la página Premier. Administrar su perfil personal

Dell Premier. Guía para comprar y efectuar pedidos de. Registro en la página Premier. Administrar su perfil personal Guía para comprar y efectuar pedidos de Dell Premier Dell Premier es su una solución Online personalizada y segura en el que puede llevar a cabo un proceso de compras fácil, económico y eficaz. Revise

Más detalles

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail).

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail). CORREO ELECTRÓNICO NIVEL BÁSICO DE CORREO ELECTRÓNICO INICIACIÓN A CORREO ELECTRÓNICO OBTENER UNA CUENTA DE CORREO ELECTRÓNICO GRATUITA Al correo electrónico también se lo conoce como e-mail, abreviatura

Más detalles

Manual del Ciudadano para el Uso del Portal de Cambio de Domicilio. Proyecto: Portal Cambio de Domicilio Revisión: 1.1 Fecha: Octubre 2015

Manual del Ciudadano para el Uso del Portal de Cambio de Domicilio. Proyecto: Portal Cambio de Domicilio Revisión: 1.1 Fecha: Octubre 2015 Manual del Ciudadano para el Uso del Portal de Cambio de Domicilio Proyecto: Portal Cambio de Domicilio Revisión: 1.1 Fecha: Octubre 2015 Índice de Contenidos 1 INTRODUCCIÓN... 3 2 REALIZAR UNA SOLICITUD

Más detalles

GUÍA DE CONFIGURACIÓN PC PARA HACER USO DE LA SEDE ELECTRÓNICA DEL CABILDO DE GRAN CANARIA

GUÍA DE CONFIGURACIÓN PC PARA HACER USO DE LA SEDE ELECTRÓNICA DEL CABILDO DE GRAN CANARIA GUÍA DE CONFIGURACIÓN PC PARA HACER USO DE LA SEDE ELECTRÓNICA DEL CABILDO DE GRAN CANARIA CONTROL DE CAMBIOS Versión Fecha Páginas afectadas Cambios 1.0 14/10/2015 Todas Versión inicial del documento

Más detalles

Impress : Programa de presentaciones de OpenOffice.

Impress : Programa de presentaciones de OpenOffice. Impress : Programa de presentaciones de OpenOffice. Básicamente Impress es un programa de presentaciones proyectadas a través de diapositivas (pantallas completas) que un orador o ponente puede utilizar

Más detalles

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos 1. Objetivos Este tema de introducción es el primero que debe seguir un alumno para asegurar que conoce los principios básicos de informática, como el manejo elemental del ratón y el teclado para gestionar

Más detalles

Guía de uso de Moodle para participantes

Guía de uso de Moodle para participantes Guía de uso de Moodle para participantes ÍNDICE 1 ACCESO... 4 1.1 PORTAL... 4 1.2 INGRESAR A PLATAFORMA... 6 1.3 ESTRUCTURA DEL CURSO... 7 1.3.1 BLOQUES... 8 2 RECURSOS Y MÓDULOS... 10 LOS RECURSOS SE

Más detalles

CIMA. MANUAL DE USUARIO

CIMA. MANUAL DE USUARIO MANUAL DE USUARIO Proyecto: Consultoría para la Implementación de una base de datos y un sistema web para almacenar y manejar la información de proyectos y/o actividades en el Parque nacional Cordillera

Más detalles

DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C)

DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C) APRENDERAPROGRAMAR.COM DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C) Sección: Cursos Categoría: Lenguaje de programación Java

Más detalles

Para acceder al campus virtual de Espiral debes realizar los siguientes pasos:

Para acceder al campus virtual de Espiral debes realizar los siguientes pasos: 1. Acceso... 2 2. El aula virtual... 3 Los bloques... 4 Los caminos... 6 Recursos y actividades... 7 Herramientas para la comunicación... 8 Herramientas para el seguimiento... 9 Actualización del perfil...

Más detalles

Configuración de DNS seguros

Configuración de DNS seguros Configuración de DNS seguros para la navegación de niños por Internet El otro día os contaba del secuestro de los DNS de Google, y qué son los DNS. Para hacer un resumen rápido: son como las páginas amarillas

Más detalles

Tutorial de uso. ScanIPTV V.4.7 http://scaniptv.emotec.es

Tutorial de uso. ScanIPTV V.4.7 http://scaniptv.emotec.es Tutorial de uso ScanIPTV V.4.7 http://scaniptv.emotec.es Conceptos básicos IP privada e IP pública La IP privada es una dirección virtual de una red interna, que hace referencia al dispositivo que se ha

Más detalles

Para ingresar al mismo debes hacer click en el ícono correspondiente en el panel de control.

Para ingresar al mismo debes hacer click en el ícono correspondiente en el panel de control. Aplicable a Hosting Linux Cpanel 11.25.0-C40255 Principales funciones del Administrador de Archivos... El administrador de archivos del panel te permite trabajar con todos los archivos que has subido al

Más detalles

Instalación y Configuración de un Servidor FTP

Instalación y Configuración de un Servidor FTP 1 Instalación y Configuración de un Servidor FTP 1. Instalación del Servidor FTP Instalación y configuración del Servidor...3 Acceder al servidor...6 2. Configuración Pública del Servidor Configurar DHCP...8

Más detalles

LA PLATAFORMA VIRTUAL DE LA ASOCIACIÓN ARAGONESA DE PSICOPEDAGOGÍA. REQUISITOS MÍNIMOS PARA ACCEDER AL CURSO.

LA PLATAFORMA VIRTUAL DE LA ASOCIACIÓN ARAGONESA DE PSICOPEDAGOGÍA. REQUISITOS MÍNIMOS PARA ACCEDER AL CURSO. GUÍA DE USO DE LA PLATAFORMA VIRTUAL DE LA ASOCIACIÓN ARAGONESA DE PSICOPEDAGOGÍA. LA PLATAFORMA VIRTUAL DE LA ASOCIACIÓN ARAGONESA DE PSICOPEDAGOGÍA. REQUISITOS MÍNIMOS PARA ACCEDER AL CURSO. Requisitos

Más detalles

Primeros pasos para una configuración rápida de la tienda.

Primeros pasos para una configuración rápida de la tienda. Manual de usuarios Primeros pasos para una configuración rápida de la tienda. Cómo obtener, en pocos pasos, una tienda lista para poder vender: le mostramos lo rápido y sencillo que resulta crear una tienda

Más detalles

Guía LEGAL Conectores sociales Y "SOCIAL LOGIN"

Guía LEGAL Conectores sociales Y SOCIAL LOGIN Guía LEGAL Conectores sociales Y "SOCIAL LOGIN" 1 De qué estamos hablando? Las redes sociales son una herramienta esencial para promocionar los contenidos de nuestras webs y también para obtener nuevos

Más detalles