Apuntes IAW
Short Description
Download Apuntes IAW...
Description
U.T.1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB 1. SERVIDORES WEB Cuando un usuario se conecta a Internet y solicita una página web a través de su barra de direcciones, lo que hace es establecer contacto con el ordenador que tiene almacenada esa página web. En este ordenador está funcionando un programa que se conoce, genéricamente, como servidor web. Este programa busca la página solicitada en el disco duro del servidor y se la envía al cliente. Por analogía, el cliente es un ordenador (aquel desde el que nos conectamos a Internet) y un programa cliente (el navegador con el que nos conectamos y donde se muestra la página solicitada). Cuando desde un navegador solicitamos una página web, el ordenador no se conecta directamente al servidor de dicha página. Se conecta a uno de los servidores DNS establecidos. El servidor DNS contiene un directorio con todas las páginas web del mundo y las IPs de los correspondientes servidores. Así pues, el DNS busca en la lista la página solicitada y el número de IP correspondiente. Esto es lo que se llama resolver el nombre. SITIOS DINÁMICOS Cuando tenemos una página escrita que utiliza únicamente las tecnologías del lado cliente (HTML y JavaScript) se dice que es estática. Esto significa que sus contenidos son siempre los mismos. Si queremos que cambien, debemos hacerlo nosotros, editando la página, para que los usuarios vean los nuevos contenidos. A menudo esto es imposible, debido a que hay muchas ocasiones en las que los contenidos deben ser dependientes de una solicitud por parte del usuario. Las páginas dinámicas emplean lo que se conoce como programación en el lado del servidor. Desde el punto de vista técnico, la principal diferencia es que una página estática, cuando es llamada por un cliente, baja al navegador tal como está, y se muestra como es. Cuando el cliente llama a una página dinámica, existe un proceso en el lado del servidor que crea en ese momento la página, incorporando los contenidos que el cliente ha solicitado, y sirve la página recién creada al cliente. Otro cliente que solicite la misma página con otros contenidos recibirá un resultado diferente. Por eso se habla de páginas dinámicas, porque su contenido puede variar y se genera en el servidor en el momento de la solicitud. 2. INSTALACIÓN Y CONFIGURACIÓN DE SERVIDORES DE APLICACIONES WEB ANÁLISIS DE REQUERIMIENTOS Las páginas dinámicas se programan empleando tecnologías de servidor. Para probar y realizar las prácticas de este Módulo necesitaríamos tener un servidor de red que nos proporcionara los servicios necesarios. En este caso lo ideal es tener nuestro propio servidor en casa para poder implementar y configurar los servicios que necesitemos. Para ello, vamos a utilizar un solo ordenador como cliente y servidor. La única diferencia es que, al llamar a las páginas así creadas, en lugar de usar una dirección de Internet usaremos la dirección de nuestra propia máquina local. Luego, una vez creado y probado un sitio, lo subiremos al servidor remoto que nos interese y allí estará disponible para todo el mundo. SERVIDOR WEB Y SISTEMA GESTOR DE BASES DE DATOS: INSTALACIÓN Y CONFIGURACIÓN U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 1
Servidor Apache. El programas que emplearemos es Apache porque es el más extendido en Internet. Esto es porque es gratuito y es uno de los más robustos que existen, muy seguro ante los ataques de la Red. Intérprete de PHP. Cuando el usuario solicita una página desarrollada mediante esta tecnología, el intérprete de PHP, instalado en el equipo servidor, lee el código de dicha página y lo ejecuta. A continuación genera una página HTML como resultado, y se la entrega al servidor web, quien se la envía al cliente. Base de datos MySQL. Sirve para obtener información almacenada en una base de datos en el servidor. MySQL posee un motor de datos muy rápido tanto grabando datos, como localizándolos y recuperándolos. Además ofrece una gran seguridad sobre la integridad de los datos almacenados. Para montar el servidor web, el intérprete de PHP y el motor de bases de datos MySQL contamos con una aplicación llamada AppServ. Está disponible en la dirección: http://www.appservnetwork.com Pasos:
U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 2
Seguidamente instalamos el motor de bases de datos de MySQL:
U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 3
Si no se inicializa durante la instalación, se puede hacer manualmente con el archivo:
CONFIGURACIÓN DEL SERVIDOR Hay que establecer un par de parámetros: Primeramente todos los sitios dinámicos que realicemos deberán estar alojados en una carpeta específicamente creada al efecto, que actuará como servidor. Por ejemplo, creamos una carpeta llamada: C:\miswebs . Una vez creada la anterior carpeta, accedemos a la carpeta AppServ y dentro de esta a una llamada conf, la abrimos con un editor de texto plano y sustituimos las líneas: DocumentRoot "c:/miswebs" y un poco más abajo También hay que asegurarse que la línea Servername tiene localhost. Se guardan los cambios y se tiene que reiniciar el ordenador. 3. PROCESAMIENTO DE CÓDIGO: LENGUAJES DE SCRIPT EN CLIENTE Y SERVIDOR PÁGINAS QUE SE PROCESAN EN EL CLIENTE. Son las que se ejecutan en el navegador del usuario. LENGUAJES WEB DE CLIENTE Los lenguajes que se utilizan para crear estas páginas son principalmente: HTML, Javascript , Visual Basic Script, DHTML , CSS y Applets de Java. HTML. El código HTML, indica básicamente dónde colocar cada texto, cada imagen o cada video y la forma que tendrán estos al ser colocados en la página. Javascript. Es el lenguaje de programación del lado del cliente más utilizado. Con Javascript podemos crear efectos especiales en las páginas y definir interactividades con el usuario. El navegador del cliente es el encargado de interpretar las instrucciones Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador. Visual Basic Script. Está basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. El modo de funcionamiento de Visual Basic Script para construir efectos especiales en páginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder también son los mismos: el navegador.
U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 4
DHTML. No es precisamente un lenguaje de programación. Más bien se trata de una nueva capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor control sobre la página que antes. DHTML nos da más control sobre la página porque los navegadores modernos incluyen una nueva estructura para visualizar en páginas web denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc. Para realizar las acciones sobre la página, como modificar la apariencia de una capa, seguimos necesitando un lenguaje de programación del lado del cliente como Javascript o VBScript. CSS. Son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. Es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra, fondos, colores... Applets de Java. Es otra manera de incluir código a ejecutar en los clientes que visualizan una página web. Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página. La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenador donde se ejecutan. Además, Java es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser mayor. Como desventajas en relación con Javascript cabe señalar que los applets son más lentos de procesar y que tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos. Es por ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc. PÁGINAS WEB DEL SERVIDOR. Estas páginas descargan al servidor algunos trabajos, ofrecen respuestas inmediatas a las acciones del usuario y permiten la utilización de algunos recursos de la máquina local. Las páginas del servidor son útiles en muchas ocasiones. Con ellas se puede hacer todo tipo de aplicaciones web. Desde agendas a foros, sistemas de documentación, estadísticas, juegos, chats, etc. Son especialmente útiles en trabajos en los que se tiene que acceder a información centralizada, situada en una base de datos en el servidor, y cuando por razones de seguridad los cálculos no se pueden realizar en el ordenador del usuario. Son necesarias porque para hacer la mayoría de las aplicaciones web se debe tener acceso a muchos recursos externos al ordenador del cliente, principalmente bases de datos alojadas en servidores de Internet. LENGUAJES WEB DE SERVIDOR PHP, Hypertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente. El cliente solamente recibe una página con el código HTML resultante de la ejecución de PHP. Como la página resultante contiene únicamente código HTML, es compatible con todos los navegadores.
U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 5
Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP está desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores. Este lenguaje de programación está preparado para realizar muchos tipos de aplicaciones web gracias a la extensa librería de funciones con la que está dotado. La librería de funciones cubre desde cálculos matemáticos complejos hasta tratamiento de conexiones de red. Algunas de las más importantes capacidades de PHP son: compatibilidad con las bases de datos más comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, por ejemplo. Incluye funciones para el envío de correo electrónico, upload de archivos, crear dinámicamente en el servidor imágenes en formato GIF, incluso animadas y una lista interminable de utilidades adicionales.
CGI, Common Gateway Interface. Es el sistema más antiguo que existe para la programación de las páginas dinámicas de servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta. Los CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como C, C++ o Visual Basic pueden ser también empleados para construirlos. ASP, Active Server Pages. Es la tecnología desarrollada por Microsoft para la creación de páginas dinámicas del servidor. ASP se escribe en la misma página web, utilizando el lenguaje Visual Basic Script o Jscript (Javascript de Microsoft). JSP, Java Server Pages. En castellano vendría a decir algo como Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java. LENGUAJE XML. XML, con todas las tecnologías relacionadas, representa una manera distinta de hacer las cosas, más avanzada, cuya principal novedad consiste en permitir compartir los datos con los que se U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 6
trabaja a todos los niveles, por todas las aplicaciones y soportes. Así pues, el XML juega un papel importantísimo en este mundo actual, que tiende a la globalización y la compatibilidad entre los sistemas, ya que es la tecnología que permitirá compartir la información de una manera segura, fiable, fácil. Además, XML permite al programador y los soportes dedicar sus esfuerzos a las tareas importantes cuando trabaja con los datos, ya que algunas tareas tediosas como la validación de estos o el recorrido de las estructuras corre a cargo del lenguaje y está especificado por el estándar, de modo que el programador no tiene que preocuparse por ello. Vemos que XML no está sólo, sino que hay un mundo de tecnologías alrededor de él, de posibilidades, maneras más fáciles e interesantes de trabajar con los datos y, en definitiva, un avance a la hora de tratar la información, que es en realidad el objetivo de la informática en general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios lenguajes, no es una sintaxis, sino varias y no es una manera totalmente nueva de trabajar, sino una manera más refinada que permitirá que todas las anteriores se puedan comunicar entre sí sin problemas, ya que los datos cobran sentido. XML es interesante en el mundo de Internet y el e‐bussiness, ya que existen muchos sistemas distintos que tienen que comunicarse entre sí. 4. COMPROBANDO EL FUNCIONAMIENTO Para probar que el servidor funciona, creamos un archivo llamado pruebaApache.htm con el block de notas. Apache funcionando
Para probar que funciona PHP, creamos el archivo pruebaPHP.php.
U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 7
Si se ejecuta la opción ver código fuente de la página:
U.T. 1 INSTALACIÓN DE SERVIDORES DE APLICACIONES WEB
Página: 8
U. T. 2 INSTALACIÓN DE GESTORES DE CONTENIDOS 1. GESTORES DE CONTENIDO. CONCEPTOS Un sistema de gestión de contenidos (en inglés content management system , abreviado CMS ) es un programa que permite crear y administrar contenidos, principalmente en páginas web. Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio. El sistema permite manejar de manera independiente el contenido y el diseño, además permite la fácil y controlada publicación en el sitio a varios editores. Un CMS siempre funciona en el servidor web en el que esté alojado el portal. El acceso al gestor se realiza generalmente a través del navegador web, y se puede requerir el uso de FTP para subir contenido. Cuando un usuario accede a una URL, se ejecuta en el servidor esa llamada, se selecciona el esquema gráfico y se introducen los datos que correspondan de la base de datos. La página se genera dinámicamente para ese usuario, el código HTML final se genera en esa llamada. Normalmente se predefine en el gestor varios formatos de presentación de contenido para darle la flexibilidad a la hora de crear nuevos apartados e informaciones. 2. TIPOS DE GESTORES DE CONTENIDOS MAS UTILIZADOS Plataformas de Gestión de Contenido Drupal (PHP) . Poderoso CMS muy conocido por la calidad de su código y por la seguridad que brinda, es estable y de actualización continua, configuración sencilla, instalación ágil, importante cantidad de módulos y temas visuales, excepcional documentación y comunidad activa y muy amigable, gran concepto de nodo. Mambo (PHP). CMS muy fácil de usar, pero con posibilidades un poco limitadas. Joomla. Este es el CMS mas usado en internet, grandes portales de todo tipo se han montado bajo este poderoso gestor de contenido, por su variedad de plantillas, además de su amplia comunidad de desarrolladores libres que sacan diversos módulos para poder instalarlos. TIPOS DE GESTORES DE CONTENIDO PARA FOROS SMF Simple Machines Forum , abreviado SMF , es un gestor de contenidos gratuito. Se encuentra orientado a la creación de comunidades on‐line, teniendo como eje phpBB es un sistema de foros gratuito basado en un conjunto de paquetes de código programados en el popular lenguaje de programación web PHP y lanzado bajo la Licencia pública general de GNU, cuya intención es central la gestión de foros. Escrito enteramente en PHP utiliza MySQL la de proporcionar fácilmente, y con amplia posibilidad de personalización, una herramienta para crear comunidades. TIPOS DE GESTORES DE CONTENIDO CMS PARA BLOGS WordPress es un sistema de gestión de contenido enfocado a la creación de blogs (sitios web periódicamente actualizados). Desarrollado en PHP y MySQL, bajo licencia GPL. WordPress se ha convertido en el CMS más popular de la blogosfera. B2Evolution es uno de los CMS para creación de blogs como alternativa a Wordpress. Dispone de temas y plugins variados al estilo de los CMS extensibles. U.T. 2 Instalación de Gestores de Contenidos
Página: 1
3. FUNCIONES BÁSICAS DE UN GESTOR DE CONTENIDOS
Creación de contenidos. Se pueden generar contenidos gracias a los editores integrados de los CMS, se trata de editores del tipo WYSIWYG con los que se puede ver el aspecto final del documento a medida que se elabora. Gestión de contenidos. Cuando un usuario crea un documento, se almacena en una base de datos junto con otras informaciones de interés. Así mismo, se consignan también los usuarios a los que se ha dado de alta, la estructura del portal, los estilos y temas utilizados, además de toda la información generada a partir de las funcionalidades del CMS. Publicación de contenidos. Cuando el usuario da por terminado un contenido, puede publicarlo en ese mismo momento o bien programarlo para que aparezca en una fecha concreta. Presentación del CMS. Se pueden utilizar desde cualquier navegador y permiten establecer el idioma, el huso horario e incluso la moneda deseada. 4. JOOMLA. REQUERIMIENTO DE FUNCIONAMIENTO E INSTALACIÓN Es un CMS dinámico que permite la creación de sitios web para la publicación de noticias, difusión de la información de cualquier tipo, portales corporativos, sitios web para comercio electrónico, etc. Es una aplicación web que se distribuye con licencia pública general GPL. En buena parte está escrita en PHP y puede descargarse en el sitio oficial del proyecto http://www.joomla.org Los elementos básicos para su funcionamiento son:
Base de datos MySQL. Almacena en tablas diferenciadas toda la información del sitio, así como gran parte de la configuración del sistema. Motor PHP. Ejecuta órdenes de búsqueda, almacenamiento, consulta y modificación sobre la base de datos. Los datos obtenidos se transforman en páginas web que son interpretadas, mostradas por los navegadores y entendibles para los usuarios. Servidor HTTP Apache. En cuanto al aspecto y funcionalidad, los elementos básicos ofrecidos por Joomla son: Plantillas (templates). Es la parte del software que determina la apariencia, la disposición de los módulos, etc. Extensiones (módulos y componentes) para generar formularios dinámicos; la gestión de documentos; crear galerías de imágenes multimedia; el comercio electrónico; foros, blogs y chats; calendarios; servicios de directorio; boletines de noticias; el registro de datos; la publicación de anuncios; la gestión de suscripción. Los diferentes requerimientos de funcionamiento y ayuda están en la página web http://ayuda.joomlaspanish.org/ayuda‐joomla
U.T. 2 Instalación de Gestores de Contenidos
Página: 2
INSTALACIÓN DE JOOMLA Una vez que se ha descargado el paquete del sitio web correspondiente y se extraen los archivos en una carpeta creada dentro de la que tenemos como localhost (UT 1, pág. 4). Realizamos los siguientes pasos: U.T. 2 Instalación de Gestores de Contenidos
Página: 3
Creación de la base de datos: U.T. 2 Instalación de Gestores de Contenidos
Página: 4
5. ESTRUCTURA DEL CMS JOOMLA La estructura de Joomla se compone de dos partes bien diferenciadas: frontend (o parte pública) y backend (el centro de administración). FRONTEND. Consta de los siguientes elementos: Logo Joomla! Menú con enlaces a las secciones del portal. Banner publicitario. Barra de navegación . Menú principal. Últimas noticias incorporadas en el portal. Contenidos más visitados. Zona donde el administrador muestra alguna noticia o comunicado de interés. Zona central con noticias. Zona de encuestas. Zona de usuarios en línea. Zona de enlaces relacionados con el proyecto Joomla! Formulario para el registro de usuarios. Zona de sindicación. Zona de accesibilidad. Todas estas zonas son configurables. BACKEND. Es solo accesible para determinados perfiles de usuario. Desde la página principal del portal web de Joomla, el administrador se puede conectar de dos formas: 1. Proporcionando el nombre de usuario y la contraseña del administrador al rellenar el formulario de conexión. 2. Seleccionando la opción Administración del bloque de recursos.
A partir de este momento accedemos a varios botones de acceso rápido a diferentes acciones y una barra de menús desplegable.
U.T. 2 Instalación de Gestores de Contenidos
Página: 5
6. PERSONALIZACIÓN DE LA INTERFAZ
PRÁCTICA 1. PERSONALIZACIÓN IDIOMA Con esta práctica tienes que conseguir que el entorno este en idioma español. Para ello tienes que hacer los pasos: 1. Descarga e instalación de las extensiones para el front y para el back. La descarga la puedes hacer desde la dirección: http://extensiones.joomlaspanish.org/ 2. Activación del idioma español. El aspecto final debe ser:
7. CONFIGURACIÓN GLOBAL Y ASPECTO DE JOOMLA CONFIGURACIÓN DEL SITIO Metadatos. Información sobre los datos del sitio web. es importante definirlos para que los motores de búsqueda puedan localizar el portal. SEO (SearchEngineOptimization). Proceso de optimización de un sitio y que consiste en aplicar diversas técnicas para que los buscadores de internet sitúen el portal basado en Joomla! en las primeras posiciones dentro de sus páginas de resultados en función de términos y frases clave. U.T. 2 Instalación de Gestores de Contenidos
Página: 6
CONFIGURACIÓN DEL SISTEMA Configuración del sistema. Contiene la palabra secreta que es la contraseña cifrada del administrador. Parámetros de la depuración de errores. Permiten depurar el sistema o el idioma. Parámetros de la caché. Activan el uso de la caché del navegador para agilizar el acceso a contenidos ya descargados. Configuración de la sesión. Establece el tiempo que durará la sesión de los usuarios registrados. Al cabo de ese tiempo, se forzará de nuevo el registro.
U.T. 2 Instalación de Gestores de Contenidos
Página: 7
CONFIGURACIÓN DEL SERVIDOR En este panel podemos configurar aspectos como la posibilidad de comprimir las páginas, establecer para el portal el huso horario, asignar parámetros básicos de configuración del FTP, configurar la base de datos y el servidor de correos.
CONFIGURACIÓN DE PERMISOS Entre otras opciones permite y deniega el registro de los usuarios y activa o no las cuentas de los nuevos usuarios.
U.T. 2 Instalación de Gestores de Contenidos
Página: 8
UNIDAD DE TRABAJO 3: USUARIOS Y GRUPOS. PERFILES. CONTROL DE ACCESO Y SEGURIDAD. Joomla! establece dos grandes grupos de usuarios: Usuarios del administrador (backend): son usuarios que pueden acceder a la administración del portal. Tipos: . Mánager o gestor: En el menú Sitio tiene acceso a una parte restringida de las opciones del panel de control, como el gestor multimedia. En Opciones, puede acceder a los ítems de menú pero no crearlos o eliminarlos.. Dispone de todos los permisos para la gestión de los contenidos. . Administrador: Además de todos los permisos del mánager, puede ocuparse de la gestión de los menús y los usuarios (excepto el súper administrador) y encargarse de la instalación de componentes y módulos, aunque no de las plantillas ni de los idiomas. . Súper administrador: posee acceso total y absoluto a toda la administración del portal.
PRÁCTICA 1 Crear un usuario perfil manager y otro con perfil administrador. Usuarios del sitio (frontend): son usuarios que pueden acceder a determinadas secciones de la parte pública. Tipos: . Registered: Puede acceder a las zonas de la parte pública de Joomla! a las que el administrador asigne este nivel de acceso. Es el perfil de la mayor parte de los usuarios del portal. . Author: Se le permite enviar artículos, pero no publicarlos ni tampoco editar los escritos por otros usuarios. Su tarea queda pendiente hasta que un administrador los aprueba. . Editor: Puede enviar artículos y editar los de otros usuarios, pero no puede publicarlos. . Publisher: Dispone de permisos para enviar, modificar y publicar sus artículos o los de otros usuarios. A estos usuarios cabe añadir los anónimos, quienes no se registran en el portal y tienen acceso a las partes que el administrador configura como públicas (Public). PRÁCTICA 2 Crear un usuario con el perfil "Registered". Traduce al castellano el nombre del módulo que permite la conexión de los usuarios con cuenta en el portal.
U. T. 4 GESTIÓN DE EXTENSIONES Por extensiones entendemos todo aquello que realiza alguna tarea en Joomla! y que, junto al Core (corazón o núcleo de Joomla!), complementan y desarrollan toda la potencialidad del sistema. Son extensiones los componentes, los módulos, los plugins, los idiomas y las plantillas (templates).
Los Componentes son quizá las aplicaciones más importantes que juegan un papel fundamental en la gestión de contenidos de Joomla! Son pequeños programas independientes entre sí, que están junto al núcleo de Joomla!, o bien se descargan aparte, y posteriormente se instalan desde el panel de Administración de Joomla!. Cada componente tiene su propia tabla en la base de datos de Joomla! y también sus propios archivos. Esto es precisamente lo que les da una independencia en el funcionamiento y no interfieren, en general, unos con otros. Además, esto brinda la posibilidad de que pueden ser instalados o desinstalados en cualquier momento, es decir, el sistema permite un asincronismo temporal en la instalación/desinstalación de estas aplicaciones. Hay distintos tipos de componentes y de muy diversas funcionalidades (se designa el nombre de los componentes con el prefijo "com_"): Componentes que funcionan en el Front‐end y en la Administración de Joomla! Ejemplos: com_content, com_weblinks, com_newsfeeds, etc. Componentes que funcionan exclusivamente en la Administración de Joomla! Ejemplos: com_frontpage, com_login, com_massmail, com_templates, etc. Componentes que funcionan exclusivamente en el Front‐end, no son tan comunes, generalmente son creados por desarrolladores independientes. Componentes que combinan su funcionamiento con módulos, generalmente la gran mayoría. Ejemplos: com_banners, com_polls, com_login, etc. Los Módulos son aplicaciones mucho más simples que los componentes y generalmente son una extensión o complemento de algún componente. Los módulos muestran información secundaria, simplificada y breve que toman de la base de datos. Pero también tienen funciones más importantes que llevar a cabo: pueden publicar los enlaces del menú, recoger datos de acceso mediante un formulario, etc. Los Plugins son aplicaciones que literalmente “interceptan” los artículos de contenido (documentos o ítems de componentes) antes de ser mostrados y publicados en el sistema, y le agregan información adicional o lo “alteran” en forma dinámica, completando así el contenido total que va a ser entregado al navegador del usuario final. Los plugins pueden ser llamados mediante comandos especiales, o se pueden mostrar de forma predeterminada para ciertos contenidos/componentes. Originalmente, el término utilizado era Mambot, y era ésta la función que desempeñaban, pero su denominación cambia porque los plugins ofrecen posibilidades mucho más amplias, pueden mejorar la funcionalidad en el ámbito del entorno de trabajo. Los Idiomas son paquetes de archivos que, una vez instalados, permiten que el Front‐end y el Back‐end esté expresado en un idioma determinado. Las Plantillas (Templates) deciden cómo se muestra el espacio web, tanto el Front‐end como el Back‐end, en el navegador del usuario.
1
Comprender la estructura de la interfaz visual del Front‐end de Joomla! es fundamental. Para un usuario novel significará poder situar adecuadamente los módulos que quiere que sean visualizados en la navegación que ha decidido. Pero para un usuario medio/avanzado, que quiera manipular plantillas de terceros o crear las suyas propias, es necesario que sepa en cada momento cómo situar lo que se visualizará en el Front‐end.
GESTIÓN DE PLANTILLAS En Joomla los contenidos van por un lado y el diseño por otro. En cualquier momento podremos modificar el diseño de todo (o parte) del sitio Web sin alterar el contenido de los artículos publicados o la estructura de secciones y categorías (organización interna). Las plantillas en Joomla son muy importantes, pues definirán la ubicación de pequeños programas (módulos) que permitirán hacer operaciones tan importantes como acceder al sitio (login), mostrar ciertos contenidos, banners, ubicar columnas y otros elementos de nuestro sitio Web. Una plantilla bien diseñada supondrá prácticamente el 70% del triunfo de nuestra Web. De ahí que uno de los primeros procesos a realizar una vez instalado Joomla, tras la configuración básica, sea la selección e instalación de una plantilla (y es recomendable que ésta vaya a ser la definitiva, o luego tendremos muchos problemas) Desde el Gestor de Plantillas, al que se accede en el menú "Extensiones ‐> Gestor de Plantillas" podremos realizar muchas operaciones con las que ya tenemos instaladas, pero Joomla, además permite la instalación de nuevas plantillas que podemos descargar gratuitamente de Internet. POSICIONES DE MÓDULOS EN UNA PLANTILLA Cada plantilla distribuye de forma diferente las distintas zonas de contenidos (módulos) en diferentes posiciones dentro de la página. Aunque posteriormente veremos en otro capítulo qué son los "módulos" y para qué sirven, ahora nos interesa conocer que cada plantilla tiene una serie de espacios dedicados a la ubicación de módulos de Joomla. Esto es muy importante pues definirá la ubicación de ciertos controles y pequeños programas en nuestra página, como el formulario de acceso, un menú, una encuesta... Estas zonas están predefinidas en la plantilla y no pueden ser modificadas, salvo que tengamos conocimientos en el desarrollo de plantillas (PHP, xHTML, CSS...) Cada espacio dedicado a ubicar módulos recibe un nombre que lo identificará posteriormente en el "gestor de módulos": top, right, left, user1, user2... user32. Cada plantilla tiene sus propios "huecos" y los ubica en posiciones diferentes. En ocasiones reciben nombres similares, aunque cada plantilla puede seguir su propio esquema de posiciones de módulos. Por ejemplo, si el hueco para módulos ocupa la columna de la derecha, a este espacio se le denominará "right", o si ocupa la zona superior, se le denominará "top". Una práctica común en el diseño de sitios Web con Joomla es conocer estos espacios para ubicar módulos, pues son muy importantes. A veces es conveniente contar con un esquema en papel de la posición de estas zonas (lo puedes dibujar a mano), para posteriormente conocer dónde situar nuestros módulos. Hay algunas plantillas que acompañan una imagen "JPG" con la posición de las zonas para módulos. 2
Ejemplo del diseño de la plantilla BizBlue: newsflashload Position top 1 Position top 2 Position top 3 .... Cada "hueco" o zona de módulos permite la inserción de uno o varios módulos.
PRÁCTICAS SOBRE LA INSERCIÓN DE ALGUNOS MÓDULOS EN NUESTRA PLANTILLA PRÁCTICA 1. En position‐3 (Right 2) de BizBlue poner un módulo con visualización de fotos aleatorias. PASOS: ‐ Buscar extensión e instalarla. ‐ Administrador de módulos. Nuevo y seleccionar Tipo de módulo. ‐ Título, posición, subir fotos,... PRÁCTICA 2. En position‐4 (Right 3) de BizBlue poner un módulo calendario. PASOS: ‐ Buscar extensión e instalarla. ‐ Administrador de módulos. Nuevo y seleccionar Tipo de módulo. ‐ Título, posición, ... PRÁCTICA 3. En posición newflashload (bannersload) de BizBlue poner otro módulo de fotos aleatorias. Puesto que ya está instalada la extensión, pasamos directamente a crear el nuevo módulo. PRÁCTICA 4. Quitar logo con propiedades de la plantilla. PRÁCTICA 5. Cambiar foto de cabecera desde el directorio corrrespondiente. PRÁCTICA 6. Cambiar el título del Menú principal y del formulario de acceso. Se accede a Gestión de Módulos y se cambia el Título.
3
U. T. 5 GESTIÓN DE CONTENIDOS ¿En qué orden se crean los contenidos? ¿Cómo empezar? y ¿cómo seguir? Una vez que ya está Joomla instalado, configurado y funcionando, debes comenzar por orden de importancia a: 1. Definir y crear los "contenedores" de primer orden (los que engloban todo): las CATEGORÍAS. 2. Crear los "contenedores" de segundo orden (que pertenecen a las CATEGORÍAS): las SUBCATEGORÍAS. 3. Cargar la información pertenecientes a sus propias secciones/categorías. 4. Definir y crear la navegabilidad o "menús" (los accesos que van a tener los navegantes/usuarios a esos documentos web publicados). Los puntos 3 y 4 (incluso los puntos 1, 2, 3, y 4) pueden ir alternándose. Pero muchos principiantes tratan de crear los menús o los enlaces primero, y luego los contenidos. No tardan en darse cuenta que "no saben cómo hacer". Esto es un error, el orden correcto es así:
creación y publicación de categoría >> creación y publicación de subcategoría >> creación y publicación de los documentos >> construcción del menú de navegación CONTENIDOS Desde el punto de vista de la gestión de contenidos, Joomla! permite una clasificación de artículos de contenidos organizados dentro de categorías, y pueden ser manipulados fácilmente para modificar su clasificación y la navegación que se realizará a través de ellos. Se puede necesitar que un determinado artículo de contenido no esté definido dentro de una sección/categoría. Hablamos, por tanto, de contenidos no clasificados. Aparte, se puede decidir que haya contenidos archivados. Archivar un artículo de contenido supone decidir que sigue activo, pero no se encuentra clasificado dentro de la categoría original. De hecho, supone crear una estructura paralela de categorías, identificadas de igual forma, e incluso, permite realizar vínculos en los menús a estas categorías o artículos “archivados”. Tomar buenas decisiones en las categorías y subcategorías que sirvan para clasificar y visualizar los contenidos es, sin duda, una de las tareas que deben ser mejor meditadas para poder tener un buen sitio web. Los contenidos pueden ser creados, editados y publicados desde el Frotn‐end y desde el Back‐end, pero las opciones de creación de categorías para su clasificación, ordenación, archivado y eliminación deben ser gestionadas desde el Back‐end. MENÚS La navegación y el acceso a los recursos en el sitio web se realizan a través de la navegación que se decide en los menús.
Lo menús en Joomla! son grupos de vínculos a categorías, artículos de contenido, componentes o páginas externas. Los menús son módulos, hay distintos tipos de menús y pueden ser creados todos los que necesitemos. Incluso pueden mostrarse diferentes menús dependiendo de la página por la que se esté navegando. Cada menú debe tener un nombre de identificación único usado internamente por Joomla!. Un menú sólo es visible en el sitio web si el correspondiente módulo mod_mainmenu está habilitado (publicado). Joomla! utiliza un único módulo de menú, llamado internamente “mod_mainmenu”. Los menús que se han creado en la instalación están asociados a instancias de este módulo. Y cada vez que se crea o elimina un menú se actúa sobre la instancia de este. Pensar detenidamente qué menús, con qué elementos de menú y dónde serán accesibles y para qué usuarios, será una parte determinante en la elaboración de nuestro sitio web, sin duda. CREACIÓN DE UN MENÚ EN JOOMLA 1.6 El proceso de creación de un menú en Joomla 1.6 no es una tarea sencilla. En realidad, es una de las más complejas, dado que se deben seguir una serie de pasos y las configuraciones requieren de ingresar una buena cantidad de parámetros, los que deben ser comprendidos en su totalidad para obtener buenos resultados. La complejidad del sistema de creación de menús deriva de la importancia de los mismos y de la cantidad de funciones que cumplen. El proceso de creación de un menú consta de tres pasos: 1. Crear el menú, que consiste simplemente en crear el espacio, el módulo, donde se colocarán los elementos del menú. 2. Creación de los elementos de menú. 3. Ubicación y publicación del módulo menú. Creación del módulo menú La creación de un nuevo menú tiene como primer paso la instalación de un módulo de características especiales, como son los menús. Para cumplir este paso, deberemos acceder al Gestor de Menús, empleando el ícono correspondiente del Panel de Control o a través de Menús / Gestor de Menús del menú principal del Administrador de Joomla 1.6. La ventana que se aparecerá es un listado de los menús existentes. Este listado, como podemos ver en la imagen de abajo, tiene en el eje vertical la lista de todos los menús que contiene la página. El eje horizontal está dividido en columnas, que son las siguientes: 1. Casillas de verificación, mediante las cuales se pueden seleccionar uno o más menús para realizar acciones en bloque, como borrar. En caso de que se realice una selección múltiple y se emplee una acción que solo puede realizarse en un menú a la vez, como editar, el menú que se abrirá para la edición será el último de la lista seleccionada. 2. Título y tipo de menú, contenidos en la misma celda. Además de dar la información mencionada, son enlaces que dirigen, el título, al gestor de elementos de menú con los elementos filtrados para este menú en forma exclusiva, y el tipo de menú dirige a la ventana de edición de menús correspondiente a este mismo menú. 3. Número de elementos de menú, columna que a su vez está dividida en tres columnas, que informan cada una de ellas, la cantidad de elementos publicados, los elementos no publicados y la cantidad de elementos que se encuentran en la papelera. Cada uno de estos números, también son enlaces que dirigen al gestor de elementos de menú, que mostrará solo los elementos que corresponden a este menú y que se encuentran en el estado de publicación que corresponde.
4. Módulos vinculados al menú. Esta es otra de las novedades más importantes con que cuenta Joomla 1.6 respecto de las versiones anteriores. Con un mismo menú pueden crearse más de un módulo, lo que permite que en diferentes páginas, el menú sea ubicado en diferentes posiciones, como ya veremos más adelante. Esto dota a Joomla 1.6 de una gran flexibilidad en la presentación de las páginas. 5. Información del número de identificación del menú (ID). Para crear un nuevo menú, deberemos hacer clic en el botón “Nuevo” de la barra de herramientas que se encuentra en la parte superior del listado. Con esto, accedemos a la siguiente ventana:
En este formulario, encontramos dos campos obligatorios y uno opcional. En el primer campo se debe colocar el título del menú; en el segundo, el tipo de menú; un último campo opcional, permite insertar una descripción del menú. Creación de elementos de menú Para crear elementos de menú, podemos acceder de varias formas al gestor de elementos de menú. En primer lugar, desde la pestaña ubicada en la parte superior del gestor de menús, que permite intercambiar las vistas con el gestor de elementos de menú. Como ya se mencionó antes, también puede accederse a los elementos de menú de un menú específico a través del título del menú del listado de menús. Cuando estamos creando los elementos de un menú específico, la vía más directa de acceder a ellos es la última. En la parte superior del listado de elementos, se encuentra un buscador que permite filtrar las búsquedas por nivel de acceso, estado de publicación, por menú, por nivel de menú y por lenguaje, para el caso de que optemos por editar elementos correspondientes a varios menús diferentes. Para generar un nuevo elemento de menú, debemos cliquear en “Nuevo”, abriéndose la siguiente ventana:
En la imagen vemos que la ventana está dividida en tres secciones, la principal, a la izquierda, y dos pestañas desplegables ubicadas a la derecha. En la sección de la izquierda se encuentran los datos fundamentales del elemento.
El primer campo es el que podremos seleccionar el tipo de elemento. Cuando hacemos clic en “Seleccionar”, se abre la siguiente ventana:
En esta lista de tipos de elementos de menú, nos encontramos con varios tipos de elemento, que son Contactos, Feed de Noticias, Enlaces Web, Artículos, Búsquedas, Gestión de Usuarios, Wrapper (especie de IFrame que permite mostrar otro sitio web dentro de la página). Hay un campo título del menú un campo en el que se puede introducir un alias, que puede ser utilizado, entre otras funcionalidades, para ser utilizado en otros menús. A continuación, un campo permite la introducción de notas, que se refiere a cualquier anotación que pueda resultar útil. En el campo siguiente se muestra el link del elemento, que puede ser editado de forma tal que se genere una URL más amigable que las que Joomla 1.6 genera por defecto. En las listas desplegables que se encuentran a continuación, es posible seleccionar el estado de publicación, el nivel de acceso, el menú al que corresponde, elemento padre para el caso de que se trate de un elemento de sub‐menú, el “target” o la forma en que se abrirá el objetivo (misma ventana, nueva ventana con navegación o nueva ventana sin navegación). Debajo se encuentra dos botones de radio que permiten hacer que la página a la que se accede desde el elemento es la página por defecto o página principal. Esta función permite modificar la página de inicio del sitio. Luego encontramos dos listas desplegables que posibilitan seleccionar el idioma y la plantilla con que se mostrará. Esto también es novedad en Joomla 1.6, y habilita a la utilización de varias plantillas en un mismo sitio, así como múltiples lenguajes. Tipos de elemento de menú Dentro de cada tipo de elemento de menú, nos encontramos con distintos tipos de presentación de los contenidos. Los contactos pueden presentarse de las siguientes formas: Listado de categorías: muestra un listado de las categorías de contacto. Lista de contactos en una categoría. Contacto individual. Contactos destacados. Los feed de noticias pueden mostrarse de las siguientes formas: Lista de todas las categorías de feed de noticias. Lista de feeds de noticias de una categoría. Un feed de noticias en particular. Los enlaces también pueden ser mostrados en tres formas: Listado de todas las categoría de enlaces. Lista de enlaces dentro de una categoría. Envío de enlaces: muestra un formulario con el que se pueden enviar enlaces desde el frente de la página. Los elementos relacionados con los artículos muestran los siguientes tipos: Artículos archivados: en esta vista se muestran todos los artículos que se encuentran archivados. Artículo individual: muestra un único artículo cuando se accede desde este elemento. Listado de categorías: muestra todas las categorías de artículos. Blog de categoría: Muestra la introducción de los artículos de una categoría en formato de blog, permitiendo configurar si se mostrarán en una o más columnas. Lista de una categoría: Muestra todos los artículos de una categoría específica. Artículos destacados. Crear artículo: Permite la creación de un artículo desde el frente de la página. Esta funcionalidad es nueva en Joomla 1.6, y está especialmente pensada para los usuarios que tengan permisos de autor.
Cuando se selecciona Búsqueda como tipo de elemento, lo que se muestra al hacer clic en el elemento es el listado surgido de una búsqueda. Esto resulta especialmente útil para presentar, por ejemplo, los artículos relacionados con una palabra clave. Los elementos relacionados con la gestión de usuarios, brindan acceso a distintas funcionalidades y utilidades propias de los usuarios. Formulario de acceso para usuarios registrados. Acceso al perfil de usuario. Página de edición de perfil de usuario. Formulario de registro. Recordatorio de nombre de usuario. Restablecimiento de contraseña. Cuando se selecciona un elemento de menú tipo Wrapper, lo que aparece en la página es un Iframe de una URL especificada en la configuración del elemento de menú. Los links del sistema son utilidades que permiten acceder a distintas funcionalidades, como enlaces externos o internos, un alias de elemento de menú (es decir, una copia de un elemento contenido en otro menú) o un separador de texto. Otras opciones:
A la derecha de la ventana “Nuevo Elemento de Menú”, nos encontramos con dos pestañas que abren dos formularios desplegables. En el primero de estos formularios se pueden introducir metadatos opcionales. El manejo de estos elementos pueden contribuir en el posicionamiento de la página en buscadores.
El primer campo corresponde a una descripción del título del enlace del menú. Luego, la posibilidad de insertar un estilo CSS propio al enlace del menú. También es posible insertar una imagen del menú, mediante el empleo de un enlace que se ubicará en el campo existente, o también seleccionar una imagen ubicada en alguna de las carpetas de la instalación de Joomla 1.6.
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
UNIDAD DE TRABAJO 7: INICIACIÓN A LA PROGRAMACIÓN DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR 1. CONCEPTOS Y CLASIFICACIÓN PÁGINAS WEB DINÁMICAS Llamaremos dinámicas a las páginas cuyos contenidos sí pueden ser modificados –de forma automática o mediante la intervención de un usuario– bien sea desde el cliente y/o desde el servidor. Para que esas modificaciones puedan producirse es necesario que algo o alguien especifique: qué, cómo, cuándo, dónde y de qué forma deben realizarse, y que exista otro algo o alguien capaz de acceder, interpretar y ejecutar tales instrucciones en el momento preciso. Igual que ocurre en la vida cotidiana, las especificaciones y las instrucciones requieren: un lenguaje para definirlas; un soporte para almacenarlas y un intérprete capaz de ejecutarlas. Scripts Se llama script a un conjunto de instrucciones escritas en un lenguaje determinado que van incrustadas dentro de una página WEB de modo que su intérprete pueda acceder a ellas en el momento en el que se requiera su ejecución. Cuando se incrustan scripts en una página WEB empiezan a convivir en un mismo documento informaciones destinadas a distintos intérpretes. Por una parte, el código HTML que ha de ser interpretado por el navegador, y por la otra, los scripts que han de ser ejecutados –dependiendo del lenguaje en el que hayan sido escritos– por su intérprete correspondiente. La manera de diferenciar los contenidos es delimitar los scripts marcando su comienzo con una etiqueta de apertura y señalando el final con una etiqueta de cierre . Lo que no está contenido entre esas etiquetas se considerará código HTML. La posibilidad de insertar en un mismo documento scripts desarrollados en distintos lenguajes obliga a especificar cuál se ha utilizado en cada caso, para que en el momento en el que vayan a ser ejecutados se invoque el intérprete adecuado. Para ello, dentro de la propia etiqueta de apertura () se inserta una referencia al tipo de lenguaje con esta sintaxis: language="nombre" Por ejemplo: ...... ...... instrucciones .. ...... indicaría que las instrucciones están escritas con la sintaxis de PHP. Por el contrario, en este otro supuesto: ...... ...... instrucciones .. ...... UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:1
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Para el caso concreto de PHP, existe una sintaxis alternativa, mucho más cómoda y que es la que se usa habitualmente. Es la siguiente:
será equivalente a . Lenguajes del lado del servidor Un lenguaje es del lado del servidor cuando la ejecución de sus scripts se efectúa, por instancia de este –el servidor–, antes de dar respuesta a la petición, de manera que el cliente no recibe el documento original sino el resultante de esa interpretación previa. Cuando se usan estos tipos de lenguaje el cliente recibe un documento en el que cada script contenido en el original habrá sido sustituido por los resultados de su ejecución. Esto es algo a tener muy en cuenta, porque, en este caso, los usuarios no tendrán la posibilidad de visualizar el código fuente, mientras que cuando se trata de lenguajes del lado del cliente siempre es posible visualizar los scripts, bien sea de forma directa –mirando el código fuente de la página recibida– o leyendo el contenido de ficheros externos –vinculados a ella– que son bastante fáciles de encontrar en la caché del navegador. La utilización de este tipo de scripts requiere que el intérprete del lenguaje sea accesible –esté del lado– desde el propio servidor. ¿Cómo resuelve sus dudas el servidor? Dado que en unos casos el servidor debe entregar el documento original –páginas estáticas o páginas dinámicas en las que se usan lenguajes del lado del cliente– mientras que en otros casos – páginas dinámicas usando lenguajes del lado del servidor– tiene que devolver el resultado de la ejecución de los scripts, es razonable que te preguntes: ¿cómo sabe el servidor lo que debe hacer en cada caso? La respuesta es simple. Eso hay que decírselo. Y se le dice de una forma bastante simple. Se indica al poner la extensión al documento. Si en la petición se alude a un documento con extensión .htm o .html el servidor entenderá que esa página no requiere la intervención previa de ningún intérprete de su lado y entregará la página tal cual. Si en esa petición se aludiera a una extensión distinta –.php, por ejemplo– el servidor entendería que antes de servir la página debe leerla y requerir al intérprete de PHP que ejecute los scripts desarrollados en ese lenguaje (en caso de que los contuviera) y devolvería al cliente el documento que resultara de las eventuales ejecuciones de tales scripts. Requisitos para el uso del lenguaje PHP De acuerdo a lo comentado en los párrafos anteriores y en los esquemas que tenemos la derecha, el uso del lenguaje PHP requiere tener instalado y configurado: • Un software de servidor –configurado para interactuar con el intérprete de PHP– que soporte el protocolo HTTP y que en nuestro caso será el denominado servidor Apache. • El intérprete de PHP. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:2
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
• Un software de servidor de bases de datos capaz de ser gestionado mediante funciones propias de PHP. Utilizaremos el servidor de bases de datos conocido como MySQL.
2. INSTALACIÓN DEL EDITOR DE PHP Instalación del editor Php Coder Pro! A lo largo del curso va a sernos de gran utilidad el uso un editor de textos que nos permita identificar los números de línea de nuestros scripts y que a la vez nos ayude –mediante resaltado de textos– a depurar la sintaxis. Existen multitud de editores y podrás utilizar –a tu gusto– este o cualquier otro que uses habitualmente. El hecho de sugerirte este obedece a al hecho de que es gratuito, bastante completo, consume pocos recursos y se va actualizando periódicamente. 3. PÁGINAS PHP Las páginas PHP pueden ser páginas web normales a las que se cambia la extensión, poniendo .php en vez de .htm ó .html. En una página cuyo nombre tenga por extensión .php se pueden insertar instrucciones –escritas en lenguaje PHP– anteponiendo . A cada uno de estos bloques de instrucciones le llamaremos un script. No existe límite en cuanto al número de scripts distintos que pueden insertarse dentro de una página. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:3
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
4. SINTAXIS La primera instrucción PHP que conoceremos será esta: echo "un texto..";
La instrucción echo seguida de un texto entrecomillado hará que el PHP escriba en la página web resultante lo contenido en esa cadena de texto. Al final de cada instrucción debemos insertar siempre un punto y coma (;) El (;) indicará a PHP que lo que viene a continuación es una nueva instrucción. Para facilitar la depuración los scripts no suelen escribirse dos instrucciones en una misma línea. print "un texto..";
La instrucción print tiene una función similar –no es exactamente la misma– a la descrita para echo. print ("un texto..");
Esta es otra posibilidad –la más habitual– de utilizar print. Aquí encerramos entre paréntesis la cadena que pretendemos que aparezca impresa en la página web. El hecho de que utilicemos paréntesis no nos evita tener que encerrar la cadena (texto) a imprimir entre comillas. Comillas dentro de comillas Existen dos tipos de comillas: dobles « " » (SHIFT+2) y sencillas « ' » (tecla ? en minúsculas). Cuando es preciso anidar comillas deben utilizarse tipos distintos para las exteriores y para las interiores. Para que una etiqueta echo interprete unas comillas como texto –y no como el final de la cadena– es necesario anteponerles un signo de barra invertida(\). En ningún caso –ni con echo ni con print– está permitido sustituir las comillas exteriores (las que encierran la cadena) por \". Esta sintaxis solo es válida para indicar a PHP que debe interpretar las comillas como un carácter más. La primera página en PHP Observemos este código fuente. Como verás, se trata de una página web muy simple que no contiene ningún script PHP. Hemos guardado esa página con el nombre ejemplo1.html y luego la hemos vuelto a guardar –sin modificar nada en sus contenidos– como ejemplo1.php. Aprendiendo PHP Esta es una página supersimple UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:4
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Si visualizamos ambos ejemplos veremos que los resultados son idénticos. Los primeros script PHP Editemos la página anterior (ejemplo1.php) y añadámosle nuestra primera etiqueta PHP guardándola como ejemplo2.php. Este sería el código fuente: Aprendiendo PHP Esta es una página super simple
Veamos ahora un ejemplo con las diferentes opciones de uso de las comillas (ejemplo3.php): Aprendiendo PHP
PRÁCTICA 1 Crea un subdirectorio en el LOCALHOST de tu servidor y ponle como nombre practicas. Escribe con tu editor un script similar al ejemplo3.php utilizando print y print() en vez de echo. Guarda el documento en la carpeta practicas con el nombre practica1.php y comprueba su funcionamiento. Recuerda que para visualizarlo deberás escribir en tu navegador: UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:5
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
http://localhost/practicas/practica1.php LÍNEAS DE COMENTARIO ¿Por qué usar líneas de comentario? A primera vista pueden parecer inútiles. ¿Para qué recargar las páginas con contenidos que no se van a ver ni ejecutar? Las líneas de comentario sirven para poder recordar en un futuro qué es lo que hemos hecho al escribir un script y por qué razón lo hemos hecho así. A medida que vayamos avanzando verás que en muchos casos tendremos que aplicar estrategias individuales para resolver cada problema concreto. Cuando necesites hacer una corrección o una modificación al cabo de un tiempo verás que confiar en la memoria no es una buena opción. Es mucho mejor utilizar una línea de comentario que confiar en la memoria. Para insertar comentarios en los scripts de PHP podemos optar entre varios métodos y varias posibilidades: • Una sola línea Basta colocar los símbolos // al comienzo de la línea o detrás del punto y coma que señala el final de una instrucción. También se puede usar el símbolo # en cualquiera de las dos posiciones. • Varias líneas Si un comentario va a ocupar más de una línea podremos escribir /* al comienzo de la primera de ellas y */ al final de la última. Las líneas intermedias no requieren de ningún tipo de marca. Los comentarios para los que usemos la forma /* ... */ no pueden anidarse. Si, por error, lo hiciéramos, PHP nos dará un mensaje de error. Ensayando líneas de comentario (ejemplo4.php) Ejemplo 4
Al ejecutarlo nos dará un error. Esto es una muestra, de la importancia que tiene el evitar anidar los comentarios En el ejemplo4a hemos quitado el /* que va delante de «comentarios» y el */ que va después de «multilínea con estos» y funciona perfectamente. Ejemplo 4a
PRÁCTICA 2 Escribe un script en el que se utilicen las funciones print, print() y echo añadiendo –con los diferentes formatos– líneas de comentario que expliquen la sintaxis de cada una de las funciones. Guárdalo como practica2.php en el directorio practicas y comprueba su funcionamiento. CONSTANTES Una constante es un valor –un número o una cadena– que no va a ser modificado a lo largo del proceso de ejecución de los scripts que contiene un documento. Para mayor comodidad, a cada uno de esos valores se le asigna un nombre, de modo que cuando vaya a ser utilizado baste con escribir su nombre. Cuando ponemos nombre a una constante se dice que definimos esa constante. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:7
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
¿Cómo definir constantes? En PHP las constantes se definen mediante la siguiente instrucción: define("Nombre","Valor")
Los valores asignados a las constantes se mantienen en todo el documento, incluso cuando son invocadas desde una función. No es necesario escribir entre comillas los valores de las constantes cuando se trata de constantes numéricas. Si se realizan operaciones aritméticas con constantes tipo cadena, y su valor comienza por una letra, PHP les asigna valor cero. Si una cadena empieza por uno o varios caracteres numéricos, al tratar de operarla aritméticamente PHP considerará únicamente el valor de los dígitos anteriores a la primera letra o carácter no numérico. El punto entre caracteres numéricos es considerado como separador de parte decimal. Tal como puedes ver en el código fuente del ejemplo que tienes más adelante, es posible definir constantes a las que se asigne como valor el resultado de una operación aritmética. Mediante una sola instrucción echo se pueden presentar (en la ventana del navegador del cliente) de forma simultánea varias cadenas de caracteres y/o constantes y variables. Basta con ponerlas una a continuación de otra utilizando una coma como separador entre cada una de ellas. La forma anterior no es la única –ni la más habitual– de enlazar elementos mediante la instrucción echo. Si en vez de utilizar la coma usáramos un punto (el concatenador de cadenas) conseguiríamos el mismo resultado. Cuando enlacemos elementos distintos –cadenas, constantes y/o números– hemos de tener muy en cuenta lo siguiente: – Cada una de las sucesivas cadenas debe ir encerrada entre sus propias comillas. – Los nombres de constantes nunca van entre comillas. Las instrucciones print también permiten concatenar cadenas en una misma instrucción. En este caso solo es posible usar el punto como elemento de unión. Si pusiéramos comas –como hacíamos con echo– PHP nos daría un error. Veamos un ejemplo de constantes (ejemplo5.php) Constantes Ahora veremos los mismos resultados usando la function prueba
PRÁCTICA 3 Escribe un script (guárdalo como practica3.php) en el que se definan dos constantes, una numérica y otra de cadena y en el que –mediante la las opciones print y echo– aparezca en la página web resultante un comentario sobre el tipo de cada una de ellas seguido de su valor. Intenta conseguir que los elementos concatenados aparezcan en la presentación separados por un espacio. VARIABLES Podríamos decir que es un espacio de la memoria RAM del ordenador que se reserva –a lo largo del tiempo de ejecución de un script– para almacenar un determinado tipo de datos cuyos valores son susceptibles de ser modificados por medio de las instrucciones contenidas en el propio programa. Nombres de variables En PHP todos los nombres de variable tienen que empezar por el símbolo $. Las nombres de las variables han de llevar una letra inmediatamente después del símbolo $ – $pepe1 es un nombre válido, pero $1pepe no es un nombre válido–. Para PHP las letras mayúsculas y las minúsculas son distintas. La variable $pepe es distinta de $Pepe. Tipos de variables En PHP no es necesario definir el tipo de variable, por lo tanto, una misma variable puede contener una cadena de caracteres en un momento del proceso y, posteriormente, un valor numérico, susceptible de ser operado matemáticamente. Definición de variables PHP no requiere una definición previa de las variables. Se definen en el momento en que son necesarias y para ello basta que se les asigne un valor. La sintaxis es esta: $variable=valor; El valor puede ser una cadena (texto o texto y números que no requieren ser operados matemáticamente) o sólo un número. En el primero de los casos habría que escribir el valor entre comillas. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:10
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Ámbito de las variables Los valores de una variable definida en cualquier parte de un script –siempre que no sea dentro de una función– pueden ser utilizados desde cualquier otra parte de ese script, excepto desde dentro de las funciones que contuviera el propio script o desde las que pudieran estar contenidas en un fichero externo. Si una variable es definida dentro de una función sólo podrá ser utilizada dentro de esa función. Si en una función aludimos a una variable externa a ella PHP considerará esa llamada como si la variable tuviera valor cero (en caso de ser tratada como número) o una cadena vacía ("" es una cadena vacía). Igual ocurriría si desde fuera de una función hiciéramos alusión a una variable definida en ella. Si definimos dos variables con el mismo nombre, una dentro de una función y otra fuera, PHP las considerará distintas. La función utilizará –cuando sea ejecutada– sus propios valores sin que sus resultados modifiquen la variable externa. Variables globales Lo comentado anteriormente, admite algunas excepciones. Las funciones pueden utilizar valores de variables externas a ellas pero ello requiere incluir dentro de la propia función la siguiente instrucción: global nombre de la variable; Por ejemplo: global $a1; En una instrucción –global– pueden definirse como tales, de forma simultánea, varias variables. Basta con escribir los nombres de cada una de ellas separados por comas. P. ej.: global $a1, $a2, $a3; Variables superglobales A partir de la versión 4.1.0 de PHP se ha creado un nuevo tipo de variables capaces de comportarse como globales sin necesidad de que se definan como tales. Estas variables que no pueden ser creadas por usuario, recogen de forma automática información muy específica y tienen nombres preasignados que no pueden modificarse. Las estudiaremos un poco más adelante. Por ahora, sólo citar los nombres de algunas de ellas: $_SERVER, $_POST, $_GET o $_ENV son los de las más importantes. Ejemplo del uso de las variables y la forma de utilizarlas en los diferentes ámbitos (ejemplo6.php). UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:11
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Vamos a ver el contenido de las variables
Invocando la variable desde una función Ver la variable desde la función poniendo global UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:12
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Un solo nombre y dos variables distintas Dentro de la función el valor de la variable es ... pero después de salir de la función vuelvo al valor original...
PRÁCTICA 4 Escribe un script (guárdalo como practica4.php) en el que una misma variable tome dos valores distintos sin utilizar ninguna función. Luego añade al script una función que presente ese mismo nombre de variable con un valor distinto de los anteriores, comprobando que esta última opción no modificó el último valor de aquellos. CONSTANTES PREDEFINIDAS PHP dispone de algunas constantes predefinidas que no requieren la instrucción: define("Nombre","Valor")
Algunas de ellas son estas: __FILE__ Recoge el nombre del fichero que se está ejecutando y la ruta completa de su ubicación en el servidor. __LINE__ Recoge el número de línea (incluidas líneas en blanco) del fichero PHP cuyos scripts está interpretando. Puede resultar muy útil para depurar programas escritos en PHP. PHP_OS Recoge información sobre el Sistema Operativo que utiliza el servidor en el que se está interpretando el fichero. PHP_VERSION Recoge la versión de PHP que está siendo utilizada por el servidor. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:13
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Un ejemplo con constantes predefinidas (ejemplo7.php)
PRÁCTICA 5 Escribe un script (guárdalo como ejercicio5.php) que construya una pequeña página web en la que aparezca el texto "Estás utilizando la versión: 5.2 de PHP" (incluidas las comillas y extrayendo el número de versión de la constante predefinida correspondiente). Trata de que todas las etiquetas HTML que utilices estén recogidas en variables PHP, de manera que no exista ninguna línea en el código fuente de la página que esté fuera de las etiquetas VARIABLES PREDEFINIDAS Las tablas de valores La información sobre variables y valores se puede extraer de la configuración del servidor. Existen dos nombres de variable distintos que comparten el mismo valor. Existen variables que comienzan por $_, y otras lo hacen por $HTTP y eso es algo muy importante. En el primer caso se alude a las variables superglobales, mientras que las otras variables no tienen ese carácter. Razones de la duplicidad La duplicidad de variables se justifica por lo siguiente: Las variables superglobales se introdujeron en PHP a partir de la versión 4.1.0 y no existían con anterioridad. Con muy buen criterio, los desarrolladores PHP optaron por mantener las variables predefinidas de las versiones anteriores UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:14
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
para evitar que los programadores que migraran sus aplicaciones a estas nuevas versiones de PHP se vieran obligados a reescribir el código de sus scripts. Ejemplo: las siguientes variables devuelven en número de la IP a través de la que está accediendo el usuario a nuestro servidor: $_SERVER['REMOTE_ADDR'] y $HTTP_SERVER_VARS['REMOTE_ADDR'] Aunque los valores de ambas variables van a ser siempre idénticos, no ocurre lo mismo con su ámbito. ¿Para qué sirven? Estas variables recogen información muy importante. Esta información será relativa a su configuración: nombre, rutas, nombres de páginas, IP del servidor, etcétera. Los distintos tipos Principalmente tenemos aquellas con valores de las variables de de entorno (ENV) y las de servidor (SERVER), pero, además de ellas, existen algunas otras cuyos nombres y utilidades son: Variables de sesión Las identificaremos por los nombres $_SESSION o por $HTTP_SESSION_VARS. Este tipo de variables las utilizaremos cuando hagamos mención al uso de sesiones. Variables del método POST Las identificaremos por los nombres $HTTP_POST_VARS o por $_POST. Este tipo de variables – que utilizaremos con frecuencia– recogen la información que se envía desde el cliente para ser utilizada por el servidor. Variables del método GET Las identificaremos por los nombres $HTTP_GET_VARS o por $_GET. Son muy similares a las anteriores. La existencia de los dos tipos se justifica porque también existen dos tipos de métodos (maneras) de enviar datos desde el cliente hasta el servidor. Cuando el método de envío es el llamado GET los datos se recogen en variables de este tipo, y, por el contrario, si ese método envío fuera POST se recogerían en aquellas. Variables de transferencia de ficheros Las identificaremos por el nombre $HTTP_FILES_VARS o por $_FILES. Para el caso de transferencia de ficheros desde el cliente al servidor –«subir ficheros»– es necesario un procedimiento distinto de los anteriores. Será en este caso cuando se utilicen variables de este tipo. El tipo GLOBALS
UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:15
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
A diferencia de las anteriores, las variables de este tipo disponen de una sintaxis única – $GLOBALS– sin que quepa ninguna otra opción. Su finalidad es recoger en una tabla los nombres de todas la variables establecidas como globales –en cada momento– así como sus valores. OTRAS VARIABLES Valores de las variables Cuando hablábamos de las variables, nos referíamos a su ámbito y comentábamos que las variables definidas dentro de una función pierden sus valores en el momento en el que abandonemos el ámbito de esa función, es decir, cuando finaliza su ejecución. Decíamos también que si el ámbito en el que hubiera sido definida fuera externo a una función los valores sólo se perderían –temporalmente– mientras durara la eventual ejecución de las instrucciones de aquella y que, una vez acabado ese proceso, volvían a recuperar sus valores. Bajo estas condiciones, si invocáramos repetidamente la misma función obtendríamos cada vez el mismo resultado. Las posibles modificaciones que pudieran haberse efectuado (a través de las instrucciones contenidas en la función) en el valor inicial de las variables, se perderían cada vez que abandonáramos la función con lo cual, si hiciéramos llamadas sucesivas, se repetirían tanto el valor inicial como el resultado. Variables estáticas Para poder conservar el último valor de una variable definida dentro de una función basta con definirla como estática. La instrucción que permite establecer una variable como estática es la siguiente: static nombre = valor;
P. ej: si la variable fuera $a y el valor inicial asignado fuera 3 escribiríamos: static $a=3; La variable conservará el último de los valores que pudo habérsele asignado durante la ejecución de la función que la contiene. No retomará el valor inicial hasta que se actualice la página. Variables de variables Además del método habitual de asignación de nombres a las variables ‐poner el signo $ delante de una palabra‐, existe la posibilidad de que tomen como nombre el valor de otra variable previamente definida. La forma de hacerlo sería esta: $$nombre_variable_previa; Veamos un ejemplo: Supongamos que tenemos una variable como esta: $color="verde"; Si ahora queremos definir una nueva variable que utilice como nombre el valor (verde) que está contenido en la variable previa ($color), habríamos de poner algo como esto: $$color="es horrible"; ¿Cómo podríamos visualizar el valor de esta nueva variable? Habría tres formas de escribir la instrucción: print $$color; o print ${$color}; o también print $verde; Cualquiera de las instrucciones anteriores nos produciría la misma salida: es horrible. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:16
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Podemos preguntarnos ¿cómo se justifica que existan dos sintaxis tan similares como $$color y ${$color}? ¿Qué pintan las llaves?. La utilización de las llaves es una forma de evitar situaciones de interpretación confusa. Supongamos que las variables tienen un nombre un poco más raro. Por ejemplo que $color no se llama así sino $color[3] (podría ser que $color fuera un array –una lista de colores– y que esta variable contuviera el tercero de ellos). En este supuesto, al escribir: print $$color[3] cabría la duda de si el número 3 pertenece (es un índice) a la variable $color o si ese número corresponde a $$color. Con print ${$color[3]} no habría lugar para esas dudas. Estaríamos aludiendo de forma inequívoca a 3 como índice de la variable $color. ¿Qué ocurre cuando la variable previa cambia de valor? Cuando la variable utilizada para definir una variable de variable cambia de valor no se modifica ni el nombre de esta última ni tampoco su valor. Puedes ver este concepto, con un poco más de detalle, en el código fuente del ejemplo. Ejemplo de Variables estáticas (ejemplo8.php)
Ejemplo de Variables de variables (ejemplo9.php)
TIPOS DE VARIABLES En PHP no es necesaria una definición previa del tipo de variables. Según los valores que se les vayan asignando, las variables podrán cambiar de tipo –de modo automático– y se irán adaptando a los valores que contengan en cada momento. Las variables en PHP pueden ser de tres tipos: – Enteras (tipo Integer) – De coma flotante (tipo Double) – Cadenas (tipo String) Cualquier número entero cuyo valor esté comprendido entre ± 231 será interpretado por PHP como de tipo Integer. Si el valor de una variable es un número decimal o –siendo entero– desborda el intervalo anterior, bien por asignación directa o como resultado de una operación aritmética, PHP la convierte a tipo Double. Cualquier variable a la que se le asigne como valor el contenido de una cadena de caracteres (letras y/o números delimitados por comillas) es interpretada por PHP como tipo String. UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:19
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Determinación de tipos de variables PHP dispone de la función: gettype(variable) que devuelve una cadena de caracteres indicando el tipo de la variable que contiene. La cadena devuelta por esta función puede ser: Integer, double o string. Forzado de tipos PHP permite forzar los tipos de las variables. Eso quiere decir que se puede obligar a PHP a asignar un tipo determinado a una variable determinada, siempre que los valores que contenga estén dentro del rango del nuevo tipo de variable. Los tipos se pueden forzar tanto en el momento de definir la variable como después de haber sido definida. Forzado y asignación simultánea de valores Al asignar un valor a una variable, se puede forzar su tipo de la siguiente forma. Si deseamos que la variable pase a ser tipo de double basta con anteponer a su valor –entre paréntesis– tal como se indica una de las expresiones: (double), (real) o (float). Por ejemplo: $a=((double)45); o $a=((float)45); o $a=((real)45); cualquiera de ellas produciría el mismo efecto: convertir la variable $a a tipo Double. Para forzar una variable a tipo Integer podemos anteponer a su valor una de estas expresiones: (integer), o (int). Por ejemplo: $b=((integer)4.5); o $b=((int)45); producirían el mismo efecto: convertir la variable $b a tipo Integer. Para forzar una variable a tipo String basta con anteponer a su valor (entre paréntesis): (string). Por ejemplo: $c=((string)4.5); convertiría la variable $c a tipo String. Forzado de tipos en variables ya definidas La forma más aconsejable de forzado de tipos en variables que ya estuvieran definidas previamente, es el uso de la siguiente instrucción: settype(var,tipo) donde var es el nombre de la variable cuyo tipo pretendemos modificar y tipo una expresión que puede contener (entre comillas) uno de estos valores: 'double', 'integer', o 'string' según se trate de forzar a: coma flotante, entero, o cadena. Un ejemplo podría ser este: settype($a,'integer') que convertiría a tipo entero la variable $a. La ejecución de la instrucción settype devuelve (da como resultado) un valor que puede ser: true o false (1 ó 0) según la conversión se haya realizado con éxito o no haya podido realizarse. Operaciones con distintos tipos de variables PHP permite la realización de operaciones aritméticas con cualquiera de los tres tipos de variables y adecúa el resultado al tipo más apropiado. En la tabla de la derecha puedes ver algunos ejemplos, pero, en resumen, ocurre lo siguiente: – Al operar con dos enteros, si el resultado está dentro del rango de los enteros, devuelve un entero. – Si al operar con dos enteros el resultado desborda el rango entero, convierte su valor, de forma automática, al tipo coma flotante. – Al operar un entero con una variable tipo coma flotante el resultado es de coma flotante.
UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:20
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
– Al operar con una cadena lo hace como si se tratara de un entero. Si hay caracteres numéricos al comienzo, los extrae (hasta que aparezca un punto o un carácter no numérico) y los opera como un número entero. – Si una cadena no comienza por un carácter numérico PHP la operará tomando su valor numérico como CERO. Tipos de variables En el cuadro siguiente podemos ver los tres tipos de variables que utiliza PHP.
Determinación del tipo de variable utilizada Dado que PHP gestiona las variables de forma automática y modifica los tipos de acuerdo con los valores que va tomando durante la ejecución del script, se pude recurrir a la función gettype(nombre de la variable) para determinar el tipo de la variable actual. En la tabla siguiente tienes algunos ejemplos de aplicación de esa función. Podemos observar –en la columna Sintaxis– que para visualizar el resultado anteponemos echo a gettype. Es decir, le indicamos a PHP que muestre el resultado obtenido al determinar el tipo de variable.
Forzado de tipos
UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:21
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Al modificar los tipos de variables pueden modificarse sus valores. Si forzamos a entera una variable que contenga un número decimal se perdería la parte decimal y la variable modificada solo contendría el valor de la parte entera. Si tratamos de convertir a numérica una variable alfanumérica el nuevo valor sería cero. Aquí tienes algunos ejemplos relacionados con la advertencia anterior.
Forzado de tipos usando settype() Aquí tienes algunos ejemplos del uso de esa función. La tabla está organizada en bloques de tres filas que corresponden a la ejecución de tres instrucciones y a la visualización del resultado de cada una de ellas. El resultado de settype –primera fila– solo podrá ser 1 ó 0 según la instrucción se haya ejecutado con éxito o no haya podido realizarse. En la segunda fila comprobamos el nuevo tipo de variable obtenida mediante la ejecución de la instrucción anterior y en la tercera visualizamos los nuevos valores de la variable, que pueden haber cambiado como consecuencia del cambio de tipo.
UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:22
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
Tipos de variable de los operadores y de los resultados La tabla siguiente contiene –en cada fila– los valores asignados a dos variables (A y B) y el resultado de la suma de ambas. A continuación se recogen los tipos de variable de cada una de ellas y el del resultado. El tipo de este último –generado por PHP– estará condicionado por el valor del resultado de cada una de las operaciones.
UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:23
2º R ‐ MÓDULO: IMPLANTACIÓN APLICACIONES WEB
2011/2012
UT7: INI. A LA PROG. DE DOCUMENTOS WEB UTILIZANDO LENGUAJES DE SCRIPT DE SERVIDOR
Pagina:24
U.T. 8 UTILIZANDO FORMULARIOS 1. PHP DINÁMICO Lo que hemos visto hasta el momento, solo nos ha servido para escribir una serie de scripts PHP y ver los resultados de su ejecución, pero aún no hemos visto de qué forma se puede lograr que interactúen el cliente y el servidor. Veamos cómo hacerlo. Pasos previos ¿Qué valor tiene register_globals en tu php.ini? Si se encuentra en OFF (comprobar con http://localhost/pruebaphp.php) se debe modificar esa directiva dejándola como register_globals=ON y guardar los cambios. Antes de hacer una modificación en php.ini ó en httpd.conf desactiva el servidor Apache. Cuando hayas acabado con los cambios vuelve a ponerlo en marcha (de lo contrario te aparecerá el mensaje: no se puede encontrar el servidor) y ya arrancará atendiendo a la nueva configuración. 2. ENVÍO A TRAVÉS DEL NAVEGADOR La forma más simple de que un cliente pueda enviar valores a un servidor es incluir esos valores en la propia petición, insertándolos directamente en la barra de direcciones del navegador. Forma de envío Deberá insertarse –en la barra de direcciones del navegador– lo siguiente: pagina.php?n1=v1&n2=v2 donde pagina.php será la dirección de la página que contiene el script que ha de procesar los valores transferidos. ? es un carácter obligatorio que indica que detrás de él van a ser insertados nombres de variables y sus valores. n1, n2, etcétera representan los nombres de las variables. = es el separador de los nombres de las variables y sus valores respectivos. v1, v2,... simbolizan el valor asignado a cada una de las variables. & es el símbolo que separa los distintos bloques variable = valor. Los nombres de las variables nunca llevan el signo $. Los valores de las variables –sean números o cadenas– nunca se escriben entre comillas. Algunos caracteres especiales (& por ejemplo) no pueden escribirse directamente dado que se prestan a confusión (no sabría si es un valor de una variable o si se trata de el símbolo de unión. En esos casos es necesario sustituir en carácter por su codificación URL que representa cada carácter anteponiendo el signo % al valor de su código ASCII expresando en formato hexadecimal. Se pueden incluir tantos nombre = valor como se desee. La única restricción es la longitud máxima permitida por el método GET (el utilizado en este caso) que se sitúa en torno a los 2.000 caracteres. Ejemplo10.php
La llamada debería hacerse de la forma: http://localhost/practicas/ejemplo10.php?a=21&b=456 Recepción de datos Cuando es recibida por el servidor la petición de un documento con extensión .php en la que tras el signo ? se incluyen una o varias parejas nombre = valor, los nombres de las variables y sus valores respectivos se incluyen, de forma automática, en variables predefinidas del tipo: $HTTP_GET_VARS['n1'] $HTTP_GET_VARS['n2'] en las que n1, n2, ... coinciden exactamente con nombres asignados a cada una de las variables en esa transferencia. Cada una de esas variables contendrá como valor aquel que hubiera recibido a través de la petición. Si la versión de PHP es superior a la 4.1.0, esos mismos valores se incluirán en variables superglobales del tipo $_GET de modo que –en el supuesto de que la versión lo soporte– los valores de la petición también (esta opción no excluye la anterior) estarían disponibles en: $_GET['n1'] $_GET['n2'] Según el modo en que esté configurado el php.ini podría caber una tercera posibilidad de registro de esos valores. Si la directiva register_globals –en el fichero php.ini– está configurada con la opción ON, los valores transferidos desde el navegador –además de ser recogidos en las variables anteriores– son asignados a otras variables del tipo: $n1, $n2,... cuyos nombres son el resultado de anteponer el símbolo $ a los nombres de las variables contenidas en la petición. La elección a la hora de escribir los scripts de uno u otro tipo de variable debe hacerse teniendo en cuenta que: – Esta última –sin duda la más cómoda– tiene el problema de que sólo es válida cuando register_globals=on y, además, es la más insegura de todas. – La superglobal $_GET tiene una sintaxis más corta que su alternativa y, además, añade como ventaja su condición de superglobal, que permite utilizarla en cualquier ámbito sin necesidad de declararla expresamente como global. Es la opción del futuro. Su único inconveniente es que puede no estar disponible en hostings que aún mantienen versiones antiguas de PHP. Ejemplo11.php U.T. 8 UTILIZANDO FORMULARIOS Página: 2
La llamada también deberá hacerse: http://localhost/practicas/ejemplo11.php?a=21&b=456 Recuerda: Los nombres de variables son distintos si se cambian mayúsculas y minúsculas. Pon mucho cuidado en escribirlos correctamente. Los nombres de las variables predefinidas, tales como $HTTP_GET_VARS, $_GET, etcétera van en mayúsculas. No olvides poner punto y coma al final de cada línea de instrucciones. Presta atención a la apertura/cierre de comillas y mucha más atención aún si se trata de comillas anidadas. En este caso procura usar (") para las exteriores y (') para las interiores. En modo local puedes establecer las configuraciones de php.ini a tu antojo y, además, estás utilizando una versión –5.2...– de PHP que permite superglobales. Esta versión –junto con la posibilidad de modificar php.ini– te permite utilizar cualquiera de las opciones de transferencia de variables. Pero, si pretendes publicar tus páginas utilizando un hosting ajeno debes cerciorarte de cuál es su versión de PHP –no todos tienen instaladas versiones superiores a 4.1.0– y conocer la configuración de sus php.ini. Ten en cuenta que allí no vas a poder modificar las configuraciones y de no tener en cuenta estos aspectos, puedes verte obligado a modificar tu código fuente para adecuarlo a la configuración de tu hosting. 3. ENVÍO A TRAVÉS DE FORMULARIOS La interacción cliente–servidor que acabamos de ver, resulta incómoda en su uso y no demasiado estética. Hay una segunda opción –la de uso más frecuente– que es la utilización de formularios. Los formularios no son elementos propios de PHP –actúan del lado del cliente– y su estudio es más propio del ámbito de HTML que de PHP. Ejemplo12.php U.T. 8 UTILIZANDO FORMULARIOS
Página: 3
Escribe tu nombre: Escribe tu clave:
Elige tu color de coche favorito:
Rojo Verde Azul Elige los extras:
Aire acondicionado Tapiceria en piel Llantas de aluminio ¿Cuál es el precio máximo que estarías dispuesto a pagar?
Menos de 6.000 euros 6.001 - 8.000 euros 8.001 - 10.000 euros 10.001 - 12.000 euros 12.001 - 14.000 euros Más de 14.000 euros Escribe aquí cualquier otro comentario:
View more...
Comments