Programación Web PHP
Programación Web PHP
INTRODUCCIÓN
En Internet encontramos una gran variedad de tipos de sitios web, que se diferencian fundamentalmente por su contenido o
por el servicio que brindan. Un sitio web básico se puede diseñar utilizando HTML y CSS para crear su estructura y contenido.
Sin embargo, si queremos crear un sitio web más complejo y darle mayor flexibilidad, es necesaria la programación web.
La programación web tiene la misma importancia que el diseño web. Ambos se complementan para hacer que el sitio web sea
más eficiente y está demostrado que los sitios con más tráfico son los que nos brindan un servicio más “personalizado” al
usuario y eso se logra gracias a la programación web.
¿CONOCIMIENTOS PREVIOS
Antes de comenzar a estudiar esta unidad es recomendable tener:
• Conocimientos básicos de HTML.
• Elegir qué tipo de sitio web necesito para montar un espacio en Internet.
2
Programación web PHP
Unidad 1. El sitio web
1. EL SITIO WEB
DEFINICIÓN
Un sitio web es un conjunto de páginas web que relaciona información común a través de enlaces que van
encadenando dichas páginas. Estás páginas están asociadas a un dominio y son parte del dominio principal
creándose subapartados. Todas esas páginas forman parte de la World Wide Web (WWW).
Un sitio web se adapta según el contenido que quiera mostrar. De esta forma existirán sitios web que muestre una información
muy básica, sin embargo, en otras existirá mayor interactividad que permita acceder a mas recursos. Así existen sitios como:
• Sitios webs de empresa: Donde se muestra información de actividad y datos de contacto de la empresa.
• Sitios personales: Se muestra información personal como puede ser un portafolio a modo de Curriculum Vitae.
El sitio web está creado con el lenguaje de marcas HTML, y permiten incluir imágenes, textos, vídeos, enlaces a otros sitios,
etc.. La URL de entrada al sitio web se conoce como portada o Land Page. Es muy importante un buen diseño y atracción en
esta primera página pues mantener al usuario en la primera página es síntoma de que querrá investigar más sobre lo que se
hace en ese sitio web. Cada uno de los enlaces que aparecen en las páginas se denominan hipervínculos.
Para acceder al sitio web es necesario contar con un navegador web, donde se incluirán la URL a la que queremos acceder.
Cabe destacar los siguientes navegadores que son los más usados:
3
Programación web PHP
Unidad 1. El sitio web
El porcentaje de uso de cada uno de los navegadores se muestra en el siguiente gráfico (Fuente: Google):
Según el grado de interactividad del sitio web podemos hacer la siguiente clasificación:
• Sitio web estático: Su diseño y contenido se crea con el lenguaje de marcas HTML y CSS, sin incluir programación.
• Sitio web dinámico: Además de utilizar HTML y CSS, incluyen programación que permite crear sitios web más flexibles.
DEFINICIÓN
URL es una sigla del idioma inglés correspondiente a Uniform Resource Locator (Localizador Uniforme de
Recursos). Se trata de la secuencia de caracteres que sigue un estándar y que permite denominar recursos
dentro del entorno de Internet para que puedan ser localizados.
4
Programación web PHP
Unidad 1. El sitio web
EJEMPLO
PASOS
4. El servidor encuentra la página solicitada, la devuelve al navegador que la interpreta y la muestra al usuario.
5
Programación web PHP
Unidad 1. El sitio web
RECUERDA
En el caso de los sitios web estáticos no existe ninguna programación en el lado del servidor, sino que sim-
plemente se localiza la página HTML y se envía al cliente.
EJEMPLO
• Blog simple en el que se introducen directamente el código HTML para los artículos.
• Web informativa sobre una empresa, mostrando la información básica: localización, servicios, contacto, etc.
6
Programación web PHP
Unidad 1. El sitio web
PASOS
4. El servidor detecta por la extensión de la página solicitada que se trata de una página dinámica y que tiene que interpretar.
¿SABÍAS QUE...?
Mysql es un gestor de base de datos libre que pemite trabajar con tablas cuya información se podrá mostrar
en la web a través de consultas. En la última unidad del curso veremos cómo acceder a dicha base de datos
con PHP.
PRESTA ATENCIÓN
Aunque la página solicitada al navegador contenga código de programación, al enviar la página de vuelta
al cliente ya sólo contendrá código HTML, es decir, el paso último es igual que en el caso de un sitio web
estático, el navegador recibe código HTML.
7
Programación web PHP
Unidad 1. El sitio web
Las ventajas de elaborar un sitio web dinámico respecto de un sitio web estático son:
• Acceso a base de datos que contiene la información que se mostrará en la página web final.
• Menor número de páginas web en el sitio, porque una misma página puede devolver diferentes resultados dependiendo de
los parámetros enviados.
• Facilidad para mantener la información actualizada simplemente cambiando valores en la base de datos, sin tener que
diseñar páginas nuevas.
• Separación del diseño y el contenido. Diferentes áreas de la empresa pueden participar en el mantenimiento de la Web. Por
ejemplo, el diseñador se puede encargar del aspecto de la web y otro departamento se puede encargar de dotar de contenido
a la base de datos.
• Son necesarios unos requerimientos técnicos superiores pues se necesita un servidor que sepa interpretar el código PHP.
• Coste de alojamiento superiores, pues al contratar un hosting, es necesario que tenga la funcionalidad indicada
anteriormente.
• En ciertos casos y si la página que queremos diseñar es compleja existe un mayor coste de desarrollo.
8
Programación web PHP
Unidad 1. El sitio web
¿SABÍAS QUE...?
ACTIVIDAD
Crea en el foro un tema de debate para indicar alguna ventaja más que se te ocurra de un sitio web dinámi-
co frente a otro estático.
2. LENGUAJES SCRIPTS
Para que una página web sea dinámica es necesario el uso de scripts.
Un script está formado por una serie de instrucciones que diseñan un programa y que
puede ir incrustado dentro de una página HTML. Dichas instrucciones se interpretan
cuando se carga el documento y en el caso de los lenguajes de script del lado del servidor
convierte el resultado en código html que lo sabe interpretar el propio navegador.
• Del lado del servidor: Se ejecuta en el servidor, y el resultado generado se devuelve en código HTML.
A continuación se muestra una plantilla típica en la que se observa código HTML, y como iría incustrado el script.
9
Programación web PHP
Unidad 1. El sitio web
PLANTILLA
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
</body>
</html>
Cuando necesitamos cálculos o comprobaciones más complejas es mejor derivar este trabajo al servidor y liberar esa carga al
cliente. Uno de los lenguajes script del lado del cliente más populares es Javascript, y un ejemplo se muestra a continuación:
10
Programación web PHP
Unidad 1. El sitio web
EJEMPLO
<html>
<head>
</head>
<body>
<script type=”text/javascript”>
</script>
</body>
</html>
11
Programación web PHP
Unidad 1. El sitio web
Entre las funcionalidades más comunes que se suelen incluir en códigos javascript, caben destacar los siguientes:
• Controlar eventos del ratón ( Al pasar por encima de una caja de texto, al entrar en la caja, etc. ).
• Etc.
¿SABÍAS QUE...?
HAZLO TÚ MISMO
Después de haber leído el enlace indicado anteriormente habilita y deshabilita javascript en el navegador
Mozilla Firefox, y observa el efecto en algunos sitios Web que frecuentas normalmente.
Entre los lenguajes más populares se encuentra PHP, cuya programación es el objetivo del presente curso.
12
Programación web PHP
Unidad 1. El sitio web
Al igual que ocurre con los scripts de cliente, el código PHP se encuentra incrustado en el código HTML. El servidor será el
encargado de convertir el código php en html, para enviarlo al navegador y que el usuario lo visualice en su navegador.
EJEMPLO
<html>
<head>
</head>
<body>
<?php
?>
</body>
</html>
13
Programación web PHP
Unidad 1. El sitio web
Entre las funcionalidades más comunes que se suelen incluir en códigos javascript, caben destacar los siguientes:
• Acceder a la información enviada por los formularios y realizar acciones diferentes según esos valores.
• Contador de visitas.
• Etc.
NOTA
Además de PHP y de Javascript existen otros lenguajes del lado del servidor y del cliente. A modo de ejemplo
se indican algunos:
HAZLO TÚ MISMO
Investiga por internet otros lenguajes de Script, tanto de cliente como de servidor, que no se hayan indicado
en el tema.
14
Programación web PHP
Unidad 1. El sitio web
• Si su empresa lo único que necesita es un sitio web simple sin muchos requerimientos
donde lo único que se quiere mostrar son los datos de la empresa, sus servicios,
datos de contacto y poco más, la mejor opción es una web estática. En conjunto con
otras aplicaciones puede llegar a tener un aspecto elegante, vistoso y funcional,
y son capaces de cubrir las expectativas mostradas. Este tipo de web se utilizan
cuando la información no va a ser muy cambiante y no es necesario acceder para
estar contínuamente cambiándola.
• Por otra parte, si lo que necesita es un sitio web, cuya información va a estar continuamente cambiando y quiere mostrar
datos que son suministrados por fuentes externas como ventas, pagos, estadísticas, etc. de sus clientes entonces la opción
perfecta es una web dinámica
HAZLO TÚ MISMO
15
Programación web PHP
Unidad 1. El sitio web
RESUMEN
• Un sitio web está formado por un conjunto de páginas que muestran información común a través de textos, imágenes,
vídeos, enlaces a otras páginas, etc.
• Según las características de esa información (más o menos compleja, mayor o menor actualización, acceso o no a base de
datos), los sitios web se pueden clasificar en estáticos y dinámicos.
• El dinamismo se realiza a través de scripts que pueden ser del lado del cliente o del servidor, según el lugar donde se
ejecuten.
• Según nuestras necesidades será más conveniente utilizar un sitio web u otro.
En esta unidad se han detallado las diferencias entre webs estáticas y dinámicas. En la próxima unidad estudiaremos el
entorno de trabajo.
16
Programación web PHP
Unidad 2. El entorno de trabajo
INTRODUCCIÓN
Antes de empezar a programar en PHP es necesario conocer los elementos tanto software como hardware necesarios para
poder llevar a cabo esa programación. PHP (acrónimo recursivo de PHP: Hypertext Preprocessor).
Como ya se ha indicado en el tema anterior, los scripts PHP se van a interpretar en el lado del servidor. Para ello es necesario
que dicho servidor disponga de los recursos necesarios para poder realizar esa interpretación.
En esta unidad se enumeran dichos requisitos, mostrando las diferentes opciones que tenemos para poder desarrollar nuestro
programa.
CONOCIMIENTOS PREVIOS
18
Programación web PHP
Unidad 2. El entorno de trabajo
1. EL ENTORNO DE TRABAJO
El entorno de trabajo va a proporcionar los recursos necesarios para la programación en PHP. En este caso y como el servidor
es el encargado de interpretar las peticiones realizadas por el cliente, debemos de disponer de los siguientes elementos:
• Servidor web.
Cada uno de los elementos citados anteriormente tiene una función definida y la interacción entre ellos permitirá que cuando
el cliente solicite una página php, obtenga el resultado solicitado como una página HTML.
En este apartado de la unidad, se facilita al lector los conocimientos necesarios para poder descargar e instalar el software
necesario para empezar a programar en PHP. Para ello se indicarán los pasos necesarios a seguir, así como las direcciones
Web donde se obtienen dichos recursos.
DEFINICIONES
• Sistema operativo: Es el conjunto de programas informáticos que permite la administración óptima de los
recursos de un ordenador.
• Servidor web: Es el encargado de proporcionar las páginas web que solicita un determinado cliente desde
el navegador.
• Módulo de interpretación de PHP: Módulo encargado de interpretar los scripts que están incrustados en
el código HTML.
• Servidor de Base de datos: Encargado de devolver el resultado de las consultas solicitadas por las páginas
PHP, accediendo a una base de datos.
19
Programación web PHP
Unidad 2. El entorno de trabajo
HAZLO TÚ MISMO
En la unidad vamos a estudiar MySql como gestor de base de datos. Investiga por internet otro tipo de gestor
de Bases de datos que sea gratuita.
1.1. WAMPSERVER
El software indicado en el apartado anterior para la programación en PHP, se puede instalar
en el servidor de manera separada. Sin embargo existe un paquete único donde nos podemos
descargar el servidor Web, el módulo para PHP y la base de datos, con sólo instalar dicho
paquete.
WAMP es el acrónimo para instalaciones Apache, MySQL, PHP sobre la plataforma Windows que permite la publicación de
páginas dinámicas sobre la web y consta del siguiente Software:
Se disponen de las versiones de 32 o 64 bit´s, según el sistema operativo del que se disponga. Si tienes dudas, lo mejor es
descargarnos el de 32 bit´s que funciona en ambos sistemas.
En el apartado 1.1.4 se muestra un videotutorial con los pasos necesarios para descargar e instalar este software.
20
Programación web PHP
Unidad 2. El entorno de trabajo
1.1.1. APACHE
Apache es el servidor web con el que vamos a trabajar en este curso. Un servidor web es el
software encargado de responder a las peticiones de los clientes a través de las solicitudes que
realizan con el navegador utilizado.
Apache es uno de los servidores más populares, debido entre otras cosas a que:
El servidor web Apache es un serio competidor del Servidor Web de Microsoft (IIS: Internet Information Server), debido a su
estabilidad y facilidad de acceso.
21
Programación web PHP
Unidad 2. El entorno de trabajo
DEFINICIÓN
Open Source: Software que está licenciado de tal manera que los usuarios pueden estudiar, modificar y
mejorar su diseño mediante la disponibilidad de su código fuente y puede descargarse de forma gratuita
desde Internet.
¿SABÍAS QUE...?
Apache es el servidor web más popular de Internet, hasta llegar a la actual cota de un 68% de los servidores
web frente un 31% sobre IIS.
(Fuente: http://news.netcraft.com)
1.1.2. PHP
PHP es el lenguaje script del lado de servidor con el que vamos a trabajar en este curso.
Para que el servidor sepa interpretar este lenguaje es necesario que esté instalado el
módulo correspondiente.
PHP proporciona una gran facilidad para poder acceder a recursos del servidor como
ficheros, bases de datos, etc. Es muy fácil conectar con una base de datos del tipo
MySql.
La última versión de PHP es la 5.6.12 y toda la información acerca de su instalación independiente, funcionamiento y
configuración se puede encontrar en la siguiente dirección: http://php.net/
22
Programación web PHP
Unidad 2. El entorno de trabajo
DEFINICIÓN
Código embebido: Cuando se colocan secciones de código de programación (como PHP) dentro de una
página HTML, estamos hablando de código embebido.
HAZLO TÚ MISMO
Investiga por Internet los motivos por los cuales PHP es uno de los lenguajes de script más utilizados en el
lado del servidor.
1.1.3. MYSQL
MySQL es el Sistema de Gestión de Bases de datos (SGBD), que forma parte del paquete WAMP,
y que se adapta perfectamente a sitios web dinámicos diseñados en un entorno Apache con PHP.
MySQL al igual que los otros dos componentes de WAMP se encuentra en fase de desarrollo y se publican con regularidad
nuevas versiones y nuevas características. Caben destacar las siguientes:
• Etc.
23
Programación web PHP
Unidad 2. El entorno de trabajo
PRESTA ATENCIÓN
Junto con el paquete WAMP, se instala un software web denominado PhpMyadmin que permite acceder a
la base de datos instalada en el sistema. En la última unidad del curso se entrará en detalle sobre cómo
funciona este programa.
La instalación del paquete WampServer es muy fácil. Simplemente hay que seguir los pasos que se indican en el asistente
mostrado. Cuando finaliza dicho asistente tendremos todo el software necesario para empezar a programar en PHP.
Una vez que está todo instalado se coloca en la barra de tareas un icono que representa el servicio WampServer. Para que
todos los servicios se arranquen es necesario acceder a ese icono y activarlos. El icono representado y las opciones que
presenta son las siguientes:
Los servicios de Apache, Php y MySql no están arrancados y por lo tanto no se van a visualizar las páginas
que estemos diseñando.
Los servicios de Apache, Php y MySql si están arrancados y por lo tanto si se van a visualizar las páginas
que estemos diseñando.
Para arrancar los servicios cuando el icono aparece de color magenta es hacer click sobre dicho icono y aparecerán las
siguientes opciones:
24
Programación web PHP
Unidad 2. El entorno de trabajo
Para arrancar los servicios cuando el icono aparece de color magenta es hacer click sobre dicho icono. Desde esta ventana
se puede acceder a diferentes opciones:
Para que se pueda visualizar correctamente la página PHP, cómo mínimo debe
de estar arrancado el servicio Apache y PHP.
¿SABÍAS QUE…?
Que la dirección Ip 127.0.0.1 corresponde a http://localhost. Te animo a que coloques ambas url en el nave-
gador y verás que obtendrás el mismo resultado.
• C:\wamp\www · En este subdirectorio es donde se van a ir colocando las páginas html, php que van a formar nuestro
sitio Web. Lo habitual es crear un subdirectorio dentro de esta carpeta para ir diferenciando los diferentes sitios web que
se vayan desarrollando. De esta forma si nuestro sitio web se llama biblioteca, lo conviente sería crear la siguiente carpeta
c:\wamp\www\biblioteca y dentro ir creando todos los archivos necesarios.
25
Programación web PHP
Unidad 2. El entorno de trabajo
• Subdirectorios de trabajo · Una vez dentro de la carpeta de nuestro sitio web ( por ejemplo c:\wamp\www\biblioteca ), es
conveniente ir creando carpetas según el contenido. Así es interesante crear carpetas como:
»» Imágenes
»» Estilos
»» Recursos
»» Ficheros
»» Extras
»» Etc
En el raíz del subdirectorio se suele colocar el fichero index.html o index.php que sería la página de inicio al sitio web.
Una vez que está instalado el paquete Wamp y todo ha ido bien, si colocamos en el navegador la dirección http://localhost se
debe obtener una imagen similar a la siguiente:
26
Programación web PHP
Unidad 2. El entorno de trabajo
PRESTA ATENCIÓN
Existe una relación entre la dirección url que colocamos en el navegador y los subdirectorios locales que
tenemos ubicados en c:\wamp\www. En la siguiente tabla se muestran algunos ejemplos.
La instalación de los servicios de Apache, PHP y MySQL a través del paquete Wamp es de
suma facilidad a través del asistente indicado. Sin embargo, estos servicios se configuran
con los parámetros por defecto más comunes para que el sistema empiece a funcionar.
PRESTA ATENCIÓN
A través del menú de configuración de Wamp se puede acceder a los ficheros de configuración indicados
anteriormente. Es MUY IMPORTANTE, que cada vez que se haga un cambio en alguno de esos ficheros los
servicios se tengan que reiniciar, para que surjan efecto.
27
Programación web PHP
Unidad 2. El entorno de trabajo
1.2.1. PHP.INI
La ubicación de este fichero suele ser:
• C:\wamp\bin\apache\apache2.4.9\bin\php.ini
Sin embargo, puede variar según la instalación realizada. Dentro del fichero de configuración php.ini se describen, entre otras
cosas:
• Etc.
A continuación se detallan algunas variables cuyo valor se puede cambiar en este fichero:
VARIABLE DESCRIPCIÓN
El código php se delimita con las llaves <?php y ?>. Si queremos que las llaves sean
short_open_tag = Off
cortas ( <? y ?> ), está opción se tendría que poner en On.
Tiempo máximo que se permite que dure un script php, expresado en segundos. Se
Emax_execution_time = 30
podría subir este valor camibando el número que viene por defecto.
Tamaño máximo permitido para la subida de ficheros. Si necesitamos subir ficheros
post_max_size = 8M
de mayor tamaño al servidor habría que cambiar este valor.
memory_limit = 128M Máxima memoria que puede utilizar el script en el servidor
Se muestran los errores en la propia página PHP. Cuando se está desarrollando es
error_reporting = E_ALL
interesante tener activa esta opción para ver los fallos que se van generando.
Para una lista completa de todas las opciones de las que se disponen en este fichero podemos acceder a la
siguiente dirección web:
• http://php.net/manual/es/ini.core.php
28
Programación web PHP
Unidad 2. El entorno de trabajo
1.2.2. HTTPD.CONF
La ubicación de este fichero suele ser:
• C:\wamp\bin\apache\apache2.4.9\conf
El fichero de configuración de Apache (httpd.conf) contiene los parámetros para el inicio del servicio Apache. Como ya se ha
comentado Apache es el servidor que permite que se puedan consultar páginas web desde el cliente.
Las peticiones que le llegan al servidor web Apache son escuchadas por un determinado servicio y también a través de un
puerto, que es la puerta de entrada de dichas peticiones al servidor. Los servidores tienen abiertos numerosos puertos y cada
uno de ellos cumplen una función. Normalmente el puerto 80 es el encargado de escuchar las peticiones Web, aunque como
ya veremos se puede cambiar.
El cambio de dicho puerto puede venir dado porque exista otra programa que lo necesite, como por ejemplo Skype.
Existen ciertos parámetros que se pueden cambiar en este fichero, y cambian el funcionamiento del servidor. Caben destacar
los siguientes:
VARIABLE DESCRIPCIÓN
PRESTA ATENCIÓN
En ocasiones es una buena solución enlazar el servicio web Apache a un puerto alternativo, como por
ejemplo el 8080. En este caso cuando se soliciten páginas al servidor web se tendrá que indicar el puerto
asociado de la siguiente manera.
• http://17.0.0.1:8080
29
Programación web PHP
Unidad 2. El entorno de trabajo
• http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-apache-config.html
2. DESARROLLO EN LOCAL
Con el software que compone el paquete WAMP (Apache, Php, MySQL), y que se ha detallado en los apartados anteriores,
disponemos de los recursos necesarios para el desarrollo de páginas web dinámicas.
Hay que hacer constar que la instalación del paquete WAMP se realiza en local, o sea en nuestro propio ordenador. Para ello
hay que disponer de una máquina con los recursos suficientes para que ese software funcione de manera correcta y fluida.
Todas las pruebas, diseños, acceso a base de datos se harán en local. Por lo tanto no se va a poder acceder desde Internet o
desde una acceso externo a las páginas que estemos diseñando en ese momento.
• Subir todos los ficheros que componen las páginas php y la base de datos a un hosting remoto.
Como se indica, primero se hace todo el estudio y programación en local. Cuando ya está todo analizado y se ha comprobado
que el sitio web funciona perfectamente se sube al hosting, para que el sitio Web sea visible desde Internet.
DEFINICIÓN
Entorno de desarrollo: Entorno local donde se realizan las pruebas necesarias del software, hasta conseguir
el objetivo buscado.
Entorno de producción: Entorno público donde el usuario puede acceder al producto ya operativo.
30
Programación web PHP
Unidad 2. El entorno de trabajo
ACTIVIDAD
Crear un tema de debate en el foro para comentar porque no es conveniente trabajar directamente en los
ficheros en remoto.
3. EDITORES DE CÓDIGO
Los editores de código facilitan la labor de programación en cualquier lenguaje, y en el caso que nos ocupa en este curso, en
PHP. Un buen editor puede hacer nuestro trabajo más eficiente, pues suele tener funciones especiales que nos ayuda a codificar
ciertas tareas que son repetitivas.
También es muy común que las palabras reservadas aparezcan en otro color, e incluso el sangrado de las líneas de código
que permiten diferenciar bloques dentro de un mismo programa.
Las opciones a la hora de elegir el compañero optimo para programar son muy variadas, y en muchos casos están optimizadas
para diferentes tipos de proyectos o lenguajes.
A modo de ejemplo se muestra una lista de diferentes editores que pueden ser usados para la programación en PHP, y la
dirección web donde se pueden descargar el sofware y manuales sobre su funcionamiento.
Notepad ++ https://notepad-plus-plus.org/
Sublime Text http://www.sublimetext.com/
Light Table http://lighttable.com/
Vim http://vim-latex.sourceforge.net/
Brackets http://brackets.io/
Geany http://www.geany.org/
GNU Emacs https://www.gnu.org/software/emacs/
HAZLO TÚ MISMO
Descarga el editor Notepad ++ e instálalo en tu ordenador. Localiza el manual de usuario y practica las
principales funcionales de este editor.
31
Programación web PHP
Unidad 2. El entorno de trabajo
• Disco duro: Cantidad de espacio que vamos a poder usar en el hosting para el
número de páginas, imágenes, ficheros, vídeos, etc.
• Transferencia de datos: La cantidad de información que en un mes se puede hacer en mi sitio Web.
• Copias de seguridad: Es importante que tu proveedor de hosting haga copias de seguridad o backups periódicos de tu
cuenta.
• Protección antihackeos: Siempre viene bien tener una protección extra contra posibles ataques.
• Soporte PHP: Importante que interprete el código PHP y sobre todo que esté actualizada a la última versión.
• Base de datos: Es necesario que se puedan crear bases de datos de tipo MySQL, y qué numero de ellas. Es frecuente tener
varias aplicaciones php desarrolladas y que cada una de ellas necesite su propia Base de datos.
Existen en internet la posibilidad de acceder a hosting gratuitos. Este tipo de hosting para pruebas puntuales pueden ser
interesante, pero para mantener un sitio web fiable y a prueba de posibles fallos es conveniente acceder a hosting de pago.
Existen hosting compartidos que económicamente son muy interesantes, porque al compartir recursos se comparte también
el coste de su mantenimiento.
EJEMPLO
• Webempresa: http://www.webempresa.com/
• Dinahosting: https://dinahosting.com/
32
Programación web PHP
Unidad 2. El entorno de trabajo
HAZLO TÚ MISMO
Investiga por internet cual es el plan más económico que ofrece la empresa Dinahosting y que servicios
ofrece.
• Carpeta de imágenes.
• Carpeta de ficheros html.
• Carpeta de ficheros php.
• Carpeta de ficheros de estilos.
• Etc.
Junto a esas carpetas, si se trabaja con bases de datos también se tiene en local la
estructura y los datos de las tablas necesarias para el programa desarrollado. Cuando
se está trabajando en local, contamos con toda esta información. A la hora de trasladar este sitio Web a un entorno de
producción, o sea, visible en la web, se debe trasladar toda esa información al hosting de destino.
Para subir todas esas carpetas al hosting se utilizan aplicaciones de transferencias de ficheros. Uno de los más populares es
Filezilla, y permite conectarse al hosting remoto y subir los ficheros necesarios a ese servidor.
En la siguiente imagen se muestra el aspecto visual de este programa. Para conectarse al servidor remoto simplemente
es necesario un usuario y una contraseña que permite acceder a dicho servidor. Esta información nos la suministrará el
administrador donde tengamos nuestro hosting.
El software Filezilla así como un completo manual de como utilizar este programa se puede encontrar en la
siguiente dirección:
• https://filezilla-project.org/
33
Programación web PHP
Unidad 2. El entorno de trabajo
DEFINICIÓN
El alojamiento web (en inglés web hosting) es el servicio que provee a los usuarios de Internet un sistema
para poder almacenar información, imágenes, vídeo, o cualquier contenido accesible vía Web. Es una analo-
gía de hospedaje o alojamiento en hoteles o habitaciones donde uno ocupa un lugar específico, en este caso
la analogía alojamiento web o alojamiento de páginas web, se refiere al lugar que ocupa una página web,
sitio web, sistema, correo electrónico, archivos etc. en Internet o más específicamente en un servidor que por
lo general hospeda varias aplicaciones o páginas web.
Fuente: Wikipedia.
34
Programación web PHP
Unidad 2. El entorno de trabajo
RESUMEN
Antes de empezar a programa en php es necesario montar un entorno de trabajo que permita que el sistema pueda aceptar
peticiones web y también sepa interpretar el código PHP creado. De igual forma es necesario montar un gestor de Base de
datos tipo MySQL, si la aplicación necesita trabajar con datos almacenados.
La instalación del software necesario se hace con un solo asistente y se crea la estructura de directorios necesaria para
poder trabajar.
La forma de trabajar es desarrollar el proyecto en local y posteriormente subirlo al hosting elegido a través de un sofware de
transferencia de ficheros.
En esta unidad se han visto los elementos necesarios para crear un entorno de desarrollo para empezar a programar en php.
En la próxima unidad crearemos nuestro primer programa en PHP y veremos como visualizar el resultado en el navegador.
35
Programación web PHP
Unidad 3. Mi primer programa en PHP
INTRODUCCIÓN
En las unidades anteriores se han detallado las características de los sitios web tanto estáticos como dinámicos, así como
de los recursos de los que debe disponer una estación de trabajo para que se puedan desarrollar programas que contengan
script PHP, y se puedan interpretar.
En esta unidad se va a mostrar cómo crear nuestra primera página en PHP, dónde hay que ubicar dicha página en el servidor
y cómo solicitar dicha página desde el navegador.
Para el desarrollo de nuestra página en PHP, haremos uso de uno de los editores indicados en el tema anterior, en concreto
Notepad++.
CONOCIMIENTOS PREVIOS
37
Programación web PHP
Unidad 3. Mi primer programa en PHP
1. EMPEZAMOS A PROGRAMAR
Podemos definir la programación como la secuencia de instrucciones necesarias
para que un determinado programa realice una cierta tarea. En nuestro caso,
cuando estamos diseñando una página web que contiene programación PHP, existen
dos bloques claramente diferenciadas:
• Código HTML.
• Código PHP.
El código HTML no se puede considerar como programación, pues es un lenguaje de marcas que va definiendo los elementos
de los que consta la página web.
El Código PHP sí es considerado como un lenguaje de programación y como tal, dispone de las características propias de un
programa informático.
La programación requiere de una serie de fases, que son necesarias seguir para su buen funcionamiento y posterior
mantenimiento. Estas fases son:
1. Análisis del problema: Se estudia el problema que hay que solucionar en forma de programa informático.
3. Construcción de la solución en forma de programa: Codificar el algoritmo diseñado en el punto anterior en un lenguaje
de programación.
4. Prueba: Realizar las pruebas necesarias para comprobar que el programa funciona correctamente.
5. Mantenimiento: Corregir posibles deficiencias detectadas en el funcionamiento del programa a lo largo del tiempo.
DEFINICIÓN
Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y ordenada que per-
mite solucionar un determinado problema. Se trata de una serie de instrucciones o reglas establecidas que,
por medio de una sucesión de pasos, permiten llegar a un resultado o solución.
Un algoritmo es independiente del lenguaje de programación. De esta forma se puede diseñar un algoritmo
y luego codificarlo en PHP, C ó Javascript.
38
Programación web PHP
Unidad 3. Mi primer programa en PHP
En el siguiente gráfico se indican los lenguajes de programación más usados a fecha de Agosto de 2015.
39
Programación web PHP
Unidad 3. Mi primer programa en PHP
DEFINICIÓN
Lenguaje de alto nivel: Los lenguajes de alto nivel son aquellos en los que las instrucciones o sentencias son
escritas con palabras similares al lenguaje humano (generalmente en inglés).
Lenguaje de código abierto:
• Su código fuente está disponible para el que lo desee.
• Está continuamente perfeccionándose gracias a los miles de aportes que los programadores de todo el
mundo realizan de forma desinteresada.
HAZLO TÚ MISMO
Investiga por Internet otro lenguaje de programación que comparta las características de PHP en cuanto a
que es abierto, de alto nivel e interpretado.
Lo primero que vamos a hacer es abrir el programa Notepad++. Para esto, nos
vamos a Inicio -- > Programas -- > Notepad++ -- > Notepad++. Se nos abrirá el
programa, mostrando una pantalla similar a la siguiente.
40
Programación web PHP
Unidad 3. Mi primer programa en PHP
Ya tenemos todo listo para poder empezar a crear nuestras páginas PHP.
HAZLO TÚ MISMO
Atendiendo a las indicaciones mostradas anteriormente, descarga, instala y configura Notepad ++ para
poder programar en PHP.
41
Programación web PHP
Unidad 3. Mi primer programa en PHP
EJEMPLO
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
La primera página Html
</body>
</html>
Como observamos en el ejemplo sólo aparecen etiquetas HTML. Si visualizamos dicha página en un navegador simplemente
obtendremos el resultado de las etiquetas indicadas, tal y como se muestra en la siguiente imagen.
Para incluir código php hay que incrustar dicho código en el código html e incluirlo entre las etiquetas <?php y ?>, tal y
como se muestra en el siguiente ejemplo.
42
Programación web PHP
Unidad 3. Mi primer programa en PHP
EJEMPLO
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
La primera página Html
<?php
// Aquí iría el código php
?>
</body>
</html>
PRESTA ATENCIÓN
Los comentarios en los script php se indican con los caracteres // si ocupa una sóla línea.
Si los comentarios ocupan varias líneas se pueden incluir entre los símbolos /* y */.
43
Programación web PHP
Unidad 3. Mi primer programa en PHP
EJEMPLO
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
<?php
echo “¡Hola Mundo!”;
?>
</body>
</html>
DEFINICIÓN
El comando echo simplemente muestra el contenido que se incluye entre comillas en la página html. Todas
las instrucciones del script PHP deben finalizar con el símbolo ;
El código anterior se puede desarrollar utilizando cualquier editor de código de los indicados en el tema anterior. En este caso
se ha utilizado Notepad ++. Una vez que se haya finalizado la edición se ha de grabar con la extensión .php. Por ejemplo lo
podemos llamar prueba.php.
Es muy importante colocar ese fichero (prueba.php) en el subdirectorio donde está instalado el servidor Web Apache. Por
defecto el servidor Web Apache se instala en c:\wamp\www.
Sería interesante crear un subdirectorio dentro de esa carpeta, como por ejemplo pruebas, y colocar ahí dentro el fichero
creado. De esta manera la estructura de directorios junto el fichero creado quedaría así:
44
Programación web PHP
Unidad 3. Mi primer programa en PHP
A partir de este momento, y teniendo en cuenta de que el Servidor Apache debe de estar arrancado, si en el navegador
escribimos http://localhost/pruebas/prueba.php se debe de obtener el siguiente resultado.
Sería interesante crear un subdirectorio dentro de esa carpeta, como por ejemplo pruebas, y colocar ahí dentro el fichero
creado. De esta manera la estructura de directorios junto el fichero creado quedaría así:
Si en este momento pulsamos botón derecho en la página html y le pedimos visualizar código fuente html obtendremos el
código que se muestra a continuación, que como se observa sólo tiene código HTML.
No queda ningún rastro de código PHP, porque ya ha sido interpretado por el servidor y convertido en HTML.
ACTIVIDAD
45
Programación web PHP
Unidad 3. Mi primer programa en PHP
• Salida en el navegador.
<HEAD> <HEAD>
</HEAD> </HEAD>
<BODY> <BODY>
?> </HTML>
</BODY>
</HTML>
HAZLO TÚ MISMO
Crea una página PHP que muestre tu nombre y apellidos en el navegador en una línea y la fecha actual en
otra línea.
46
Programación web PHP
Unidad 3. Mi primer programa en PHP
A continuación se muestran algunos de los errores más frecuentes cuando no se obtiene el resultado esperado.
• El fichero .php siempre tiene que estar ubicado en el subdirectorio www del servidor Apache. Si se graba en otra ubicación
el navegador no lo interpretará correctamente.
• Cuando el servidor Apache detecta algún error en la sintaxis del código php muestra una descripción del error en el
navegador, y no sigue interpretando el resto del script.
ACTIVIDAD
• http://rextester.com/runcode
47
Programación web PHP
Unidad 3. Mi primer programa en PHP
5. El código obtenido se puede copiar y pegar en un fichero html que se puede visualizar directamente en cualquier navegador.
Son numerosos los programas que permiten la comprobación online de código PHP. A continuación se mues-
tran algunos:
• Ideone: https://ideone.com/
• Codepad: http://codepad.org/
• WritephpOnline.com: http://www.writephponline.com/
• Viper-7: http://viper-7.com/
• Repl.it: https://repl.it/languages
48
Programación web PHP
Unidad 3. Mi primer programa en PHP
RESUMEN
En una página html con un script php hay dos bloques diferenciados. Uno de ellos contiene las marcas correspondientes al
diseño de la página web y el otro corresponde a la programación del script.
Con un editor como Notepad++ se facilita mucho la labor de diseñar páginas web con script PHP.
Existen programas online que permiten visualizar el resultado de un código PHP sin necesidad de tener un servidor web.
En esta unidad hemos creado nuestro primer programa en PHP y hemos visto el resultado en el navegador. En la próxima
unidad detallaremos en profundidad todas las características del lenguaje PHP.
49
Programación web PHP
Unidad 4. Programación en PHP
INTRODUCCIÓN
En la unidad anterior creamos nuestro primer programa en PHP y vimos cómo se estructura el código dentro de la página HTML.
En esta unidad vamos a entrar en detalle sobre las características principales que definen al lenguaje de programación PHP.
En los lenguajes de programación se disponen de los elementos, sentencias y estructuras que nos permiten diseñar una
solución al problema planteado. Cada lenguaje tiene su propia sintaxis para definir esos elementos, pero en general todos
comparten unas líneas básicas que nos ayudan a construir la solución.
CONOCIMIENTOS PREVIOS
51
Programación web PHP
Unidad 4. Programación en PHP
1. LENGUAJE DE PROGRAMACIÓN
La programación informática permite resolver problemas simples o complejos
proporcionando soluciones a dichos problemas. En el caso de los scripts PHP,
permiten que las páginas web sean dinámicas.
Los scripts están formados por instrucciones que en algunos casos se ejecutan
de manera secuencial y en otros casos se ejecutan de manera selectiva según
ciertas condiciones.
Sin embargo, los conceptos de programación son similares entre los diferentes lenguajes, y si se comprenden dichos
conceptos, es relativamente fácil poderlos aplicar a otros lenguajes.
El lenguaje de programación PHP está formado por un conjunto de reglas, símbolos y palabras reservadas necesarias para
construir el script y dar solución al problema planteado.
Estas reglas se denominan sintaxis del lenguaje. Sólamente las instrucciones sintácticamente correctas pueden ser
interpretadas por el servidor. El script que contenga errores de sintaxis será rechazado mostrando el error en el propio navegador.
52
Programación web PHP
Unidad 4. Programación en PHP
La combinación de estas instrucciones formarán el script necesario para la programación de la solución. Es importante
indicar y ya se verá en los ejemplos de la unidad, que todas las instrucciones PHP tienen que finalizar con el símbolo ;.
¿SABÍAS QUE…?
El primer lenguaje de programación de alto nivel que fue creado es FORTRAN que significa Traductor de
Formulas y proviene de las palabras en ingles FORmula TRANslating.
HAZLO TÚ MISMO
Investiga por Internet cuál fue el principal uso del lenguaje de programación FORTRAN.
2. VARIABLES Y CONSTANTES
En un script PHP se usan valores que no van a variar durante la ejecución del programa, porque son valores fijos, que se
van a utilizar en diferentes puntos del script. A estos valores se les conoce como constantes. Por ejemplo, se podría definir el
porcentaje de beneficio de una venta como una constante.
Al mismo tiempo, también existen valores que deben cambiar a lo largo de la ejecución del programa. Estos valores son
conocidos como variables. Por ejemplo, una variable podría ir conteniendo un contador con el número de impresiones realizadas.
53
Programación web PHP
Unidad 4. Programación en PHP
ACTIVIDAD
Crea un tema de debate en el foro para discutir lo siguiente: ¿Qué otros ejemplos de constantes y variables
se te ocurren a raiz de las definiciones mostradas anteriormente?
EJEMPLO
El valor de la variable se asigna gracias al operador de asignación ( = ). De esta forma, si indicamos $año=2015, estamos
asignando el valor 2015 a la variable $año a través del operador ( = ).
Las variables no es necesario ni declararlas, ni inicializarlas. El tipo de datos que puede contener la variable puede cambiar a
lo largo del script. De esta forma, podríamos tener el siguiente script y no se generaría ningún error. Como se observa, primero
$año contiene un valor numérico y posteriormente tiene un valor de tipo string.
EJEMPLO
<?php
$año = 2015; // variable de tipo numérico
//después
$año = “bisiesto”; //variable de tipo texto
?> $Mes, $Precio y $Total2015 son ejemplos de variables en PHP.
54
Programación web PHP
Unidad 4. Programación en PHP
PRESTA ATENCIÓN
Para nombrar las variables hay que tener en cuenta ciertas limitaciones:
• PHP distingue entre mayúsculas y minúsculas, por lo que $nombre es distinto de $Nombre.
EJEMPLO
<?php
$numeropositivo= 5;
$numeronegativo= -5;
$numerodecimal= 1.345;
$saludo= “hola”;
$Incentivado= true;
?>
55
Programación web PHP
Unidad 4. Programación en PHP
HAZLO TÚ MISMO
A partir del ejemplo mostrado anteriormente mostrar un ejemplo de valor de cada una de los tipos de varia-
bles.
Para definir una constante, se utiliza la función define(), tal y como se muestra en el siguiente ejemplo:
EJEMPLO
<?php
define(“MI_CONSTANTE”, “Hola Mundo!”);
?>
PRESTA ATENCIÓN
• Para nombrar las constantes hay que seguir las mismas pautas que para las variables.
56
Programación web PHP
Unidad 4. Programación en PHP
ACTIVIDAD
Para una lista completa de las constantes predefinidas del sistema se puede acceder a la siguiente direc-
ción:
• http://ar.php.net/manual/es/reserved.constants.php
57
Programación web PHP
Unidad 4. Programación en PHP
HAZLO TÚ MISMO
Escribir un script PHP donde se muestren los valores de las constantes mostradas anteriormente.
3. OPERADORES
Los operadores son símbolos especiales que se utilizan en los scripts PHP para realizar ciertas operaciones sobre las variables
o constantes definidas. El operador recibe uno o más valores y da como resultado otro valor.
En apartados anteriores ya se ha hecho uso de alguno de ellos, como es el caso del operador de asignación. Por ejemplo:
$valor=5;
Con el símbolo = estamos asignando el valor 5 a la variable $valor. En este punto del tema estudiaremos algunos de los
operadores más utilizados en PHP.
58
Programación web PHP
Unidad 4. Programación en PHP
EJEMPLO
<?php -5
$num1=5; 11
$num2=6; -1
echo -$num1; 30
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
?>
HAZLO TÚ MISMO
59
Programación web PHP
Unidad 4. Programación en PHP
Con este operador simplemente asignamos el valor indicado en la derecha a la variable que se escribe en la izquierda. Hay que
tener cuidado de cómo se nombra la variable, teniendo en cuenta las limitaciones indicadas en el apartado 2.1 de la unidad.
EJEMPLO
<?php Hola
$ciudad="Sevilla";
echo "Hola<br>";
?>
PRESTA ATENCIÓN
Es importante observar que se ha asignado valores a las variables $nombre, $edad y $ciudad. A la hora de
mostrar sus valores, se pueden incluir dentro de las comillas del comando echo, sustituyéndose las variables
por sus valores.
60
Programación web PHP
Unidad 4. Programación en PHP
El valor será TRUE si la comparación devuelve el valor verdadero y FALSE en caso contrario.
EJEMPLO
SCRIPT PHP
<?php
$num1=4;
$num2=9;
61
Programación web PHP
Unidad 4. Programación en PHP
PRESTA ATENCIÓN
Los valores devueltos por los operadores de comparación se pueden utilizar en las estructuras de control para
elegir qué instrucciones hay que ejecutar y cuáles no.
Tienen el mismo efecto de sumar/restar uno y utilizar el operador de asignación al mismo tiempo. Por ejemplo las dos
operaciones siguientes devuelven el mismo valor:
<?php <?php 5
$num1=4; $num1=4;
echo $num1++;
?> $num1=$num1+1;
echo $num1;
?>
HAZLO TÚ MISMO
62
Programación web PHP
Unidad 4. Programación en PHP
La combinación de estos operadores con valores numéricos o de cadenas van a dar como resultado un valor de True o False.
Veamos como se combinan estos operadores.
EJEMPLO
SCRIPT PHP
<?php
$num1=4;
$num2=5;
$a=($num1==$num2); // False
$b=($num1<$num2); // True
63
Programación web PHP
Unidad 4. Programación en PHP
HAZLO TÚ MISMO
Realiza el ejemplo anterior intercambiando los valores de $num1 y $num2. ¿Qué valores se obtienen?.
• Operador de concatenación (.): Devuelve el resultado de concatenar las cadenas que existen tanto a la derecha como a la
izquierda del operador.
• Operador de asignación sobre concatenación (.=): Adiciona el argumento del lado derecho al argumento del lado
izquierdo.
EJEMPLO
Hola Mundo
$a = “Hola “;
$b = “Mundo”;
echo $a . $b;
echo “<br>”;
$a .= “Mundo”;
echo $a;
echo “<br>”;
?>
64
Programación web PHP
Unidad 4. Programación en PHP
ACTIVIDAD
Crear un script php utilizando el operador de asignación sobre concatenación que realice lo siguiente, alma-
cenando los valores en las variables indicadas.
• $nombre: tu nombre
4. ESTRUCTURAS DE CONTROL
Los scripts PHP que hemos visto a lo largo del curso son bastante sencillos.
Constaban de algunas instrucciones de manera secuencial con alguna
asignación y salida, pero poco más.
Sin embargo, los programas PHP no son tan simples, pues en ocasiones
el script tendrá que tomar decisiones complejas y ejecutar diferentes
operaciones de acuerdo a ciertas condiciones que aparezcan. Se podrán
realizar diferentes acciones basadas en los resultados de los operadores
lógicos y de comparación que se vieron en el punto anterior.
65
Programación web PHP
Unidad 4. Programación en PHP
4.1. IF
Esta estructura permite ejecutar un conjunto de sentencias sólo si la condición evaluada es True. A diferencia de los bucles,
que se verán más adelante, el conjunto de sentencias dentro del if se ejecuta una sola vez.
SINTAXIS PARÁMETROS
if ( expresión ) Expresión: cualquier expresión válida que pueda evaluarse a traves de los operadores de comparación
o lógicos y que devuelvan un valor booleano (True o False).
{
Sentencia1;
sentencia1, sentencia2: Sentencias que se van a ejecutar si la expresión evaluada es True.
Sentencia2;
EJEMPLO
if($num1>$num2)
{
echo “$num1 es mayor que $num2”;
}
?>
66
Programación web PHP
Unidad 4. Programación en PHP
PRESTA ATENCIÓN
• Si se van a ejecutar más de una sentencia en el cuerpo del if deben de ir entre {}.
4.2. ELSE
Con la sentencia if hemos visto que cuando se cumple la condición que se indica en la expresión, se ejecutan las instrucciones
encerradas entre las llaves. Con la sentencia else, que va asociada a la sentencia if, se ejecutarán las sentencias que se
indiquen cuando no se cumpla dicha condición.
En resumen, el bloque if se ejecuta cuando la condición es True y el bloque else cuando la condición es False.
SINTAXIS PARÁMETROS
if ( expresión ) Expresión: cualquier expresión válida que pueda evaluarse a traves de los operadores de
comparación o lógicos y que devuelvan un valor booleano(True o False).
{
sentencia1;
sentencia1, sentencia2: Sentencias que se van a ejecutar si la expresión evaluada es True.
sentencia2;
else
sentencia3;
sentencia3, sentencia4: Sentencias que se van a ejecutar si la expresión evaluada es False.
sentencia4;
67
Programación web PHP
Unidad 4. Programación en PHP
EJEMPLO
if($num1>$num2)
{
echo “$num1 es mayor que $num2”;
}
else
{
echo “$num1 es menor que $num2”;
}
?>
ACTIVIDAD
4.3. SWITCH
La sentencia switch es similar a un grupo de sentencias if colocadas de manera secuencial. En numerosas ocasiones se
necesita comparar una variable o una expresión con diferentes valores, y según el valor encontrado, ejecutar una instrucción u
otra. Si tuvieramos que realizar esta comprobación con sentencias if, se tendrían que utilizar muchas de manera secuencial.
68
Programación web PHP
Unidad 4. Programación en PHP
SINTAXIS PARÁMETROS
69
Programación web PHP
Unidad 4. Programación en PHP
EJEMPLO
switch ($num1)
{
case 0:
echo “<br>num1 es igual a 0”;
break;
case 1:
echo “<br>num1 es igual a 1”;
break;
case 2:
echo “<br>num1 es igual a 2”;
break;
}
?>
ACTIVIDAD
Modifica el script anterior para que muestre el mensaje “el número no es ni 0, ni 1, ni 2”.
70
Programación web PHP
Unidad 4. Programación en PHP
4.4. WHILE
Cuando se necesita repetir una instrucción o grupo de instrucciones un numero determinado o indeterminado de veces,
se utilizan los bucles. Estos bucles se ejecutan hasta que se cumpla una condición, o hasta que se llegue a un numero
determinado de ciclos.
SINTAXIS PARÁMETROS
while (expresión) Expresión: mientras la expresión sea cierta se van a ejecutar todas las sentencias que aparecen
{ entre llaves
sentencia 1;
sentencia1, sentencia2,..., sentenciaN: Estas sentencias pueden ser de salida de información,
sentencia 2;
incremento de variables, acceso a base de datos, etc..
...
sentencia N;
}
EJEMPLO
<?php 0
$contador = 0;
1
while ($contador < 5)
{ 2
echo “$contador<br>”;
3
++$contador;
} 4
Como se observa la instrucción echo se ejecuta hasta que la expresión $contador<5 deje de ser cierta. Como en cada
interacción, se va incrementado en uno el contador, llega un momento en el que $contador es mayor de 5 y por eso se sale del
bucle.
71
Programación web PHP
Unidad 4. Programación en PHP
PRESTA ATENCIÓN
Hay que tener mucho cuidado de que la expresión evaluada llegue un momento en el que sea falsa, bien porque
se compare con una variable que estemos modificando internamente o por cualquier otra causa.
HAZLO TÚ MISMO
Modificar el script anterior para que se muestra hasta el número 5 sin hacer la comparación con el número
6.
4.5. DO..WHILE
Esta sentencia es muy parecida a la sentencia While. La única diferencia es que la evaluación de la expresión se hace al final
del bloque de instrucciones. Por ello, como mínimo, se ejecuta una vez las instrucciones incluidas entre llaves.
SINTAXIS PARÁMETROS
72
Programación web PHP
Unidad 4. Programación en PHP
EJEMPLO
<?php 0
$contador = 0;
1
do
{ 2
echo “$contador<br>”;
3
++$contador;
} while ($contador < 5); 4
HAZLO TÚ MISMO
Investiga por Internet, en que situación es interesante utilizar do..while frente a while.
4.6. FOR
Por último, dentro de las sentencias que ejecutan bucles tenemos la sentencia for. En este caso la sintaxis es un poco más
compleja y se muestra a continuación.
73
Programación web PHP
Unidad 4. Programación en PHP
SINTAXIS PARÁMETROS
for (expresión1; expresión2; expresión3) Expresión1: se ejecutará incondicionalmente, y sólo una vez, al comienzo del
{ primer ciclo.
sentencia 1;
Expresión2: se evalúa al comienzo de cada iteración, condiciona la ejecución
sentencia 2;
del código entre llaves, es decir, de las sentencias. Si se evalúa como cierta el
...
bucle se ejecuta, si se evalúa como falsa se interrumpe la ejecución del mismo.
sentencia N;
} Expresión3: se evalúa o se ejecuta al final de cada ciclo.
EJEMPLO
<?php Numero 0
for ($i=0; $i<10; $i++)
Numero 1
{
echo “<br>Numero $i”; Numero 2
}
Numero 3
?>
Numero 4
Numero 5
Numero 6
Numero 7
Numero 8
Numero 9
74
Programación web PHP
Unidad 4. Programación en PHP
A continuación se muestra un ejemplo donde lo que se pretende es mostrar los numeros pares desde el 0 hasta el 20, ambos
incluidos. Para ello se va a hacer uso de dos tipos de estructuras de control:
• For.
• If.
75
Programación web PHP
Unidad 4. Programación en PHP
EJEMPLO
<html> <html>
<head> <head>
<title>Numeros pares</title> <title>Numeros pares</title>
</head> </head>
<body> <body>
Los numeros <b>pares</b> del 0 al Los numeros <b>pares</b> del 0 al
10 son: 10 son:
<?php <br>Numero 0
for ($i=0; $i<=10; $i++) <br>Numero 2
{ <br>Numero 4
if ($i%2==0) <br>Numero 6
{ <br>Numero 8
echo "<br>Numero $i"; <br>Numero 10
} </body>
} </html>
?>
</body>
</html>
HAZLO TÚ MISMO
Crea un fichero HTML con Script PHP similar al mostrado anteriormente que muestre los números impares
del 0 al 50, excluyendo el número 21.
76
Programación web PHP
Unidad 4. Programación en PHP
PRESTA ATENCIÓN
5.1. EJEMPLO 1
Definir tres variables enteras. Luego definir un string que incorpore dichas variables y las sustituya en tiempo de ejecución.
Recordar que una variable se sustituye cuando el string está encerrado por comillas dobles. Ejemplo:
$precio=90;
SOLUCIÓN
<html>
<head>
<title>Ejemplo 1</title>
</head>
<body>
<?php
$nota1=10;
$nota2=7;
$nota3=8;
echo “Juan aprobo la materia con las notas $nota1, $nota2 y $nota3”;
?>
</body>
</html>
77
Programación web PHP
Unidad 4. Programación en PHP
SALIDA EN EL NAVEGADOR
5.2. EJEMPLO 2
Elegir un número entre 1 y el 3. Luego imprimir en castellano el número. Ejemplo: Si se elige el 3 mostrar en la página el string
“tres”. Para ello utilizar la estructura de control switch.
SOLUCIÓN
<html>
<head>
<title>Ejemplo 2</title>
</head>
<body>
<?php
$numero=2;
switch ($numero)
{
case 1:
echo “El numero es el uno”;
break;
case 2:
echo “El numero es el dos”;
break;
case 3:
echo “El numero es el tres”;
break;
}
?>
</body>
</html>
SALIDA EN EL NAVEGADOR
El numero es el dos
78
Programación web PHP
Unidad 4. Programación en PHP
5.3. EJEMPLO 3
Mostrar la tabla de multiplicar del 2, usando While. La salida deberá ser de esta manera: 2-4-6-8-10-12-14-16-18-20
SOLUCIÓN
<html>
<head>
<title>Ejemplo 3</title>
</head>
<body>
<?php
echo “Tabla del 2 con el while”;
echo “<br>”;
$f=2;
while ($f<=20)
{
echo $f;
if ($f!=20)
{
echo “-”;
}
$f=$f+2;
}
?>
</body>
</html>
79
Programación web PHP
Unidad 4. Programación en PHP
5.4. EJEMPLO 4
Mostrar en pantalla una tabla de 10 por 10 con los números del 1 al 100.
SOLUCIÓN
<html>
<head>
<title>Ejemplo 4</title>
</head>
<body>
<?php
echo “<table border=1>”;
$n=1;
for ($n1=1; $n1<=10; $n1++)
{
echo “<tr>”;
for ($n2=1; $n2<=10; $n2++)
{
echo “<td>”, $n, “</td>”;
$n=$n+1;
}
echo “</tr>”;
}
echo “</table>”;
?>
</body>
</html>
SALIDA EN EL NAVEGADOR
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
80
Programación web PHP
Unidad 4. Programación en PHP
6. PROBLEMAS PROPUESTOS
PROBLEMA 1
PROBLEMA 2
Hacer un programa que sume dos variables que almacenan dos números distintos.
PROBLEMA 3
El valor de los euros que se quieren convertir deben de estar almacenados en una variable que se llame $euros.
PROBLEMA 4
Realizar un Programa en PHP que calcula el área de un triangulo cuya formula es a=(b*h)/2.
PROBLEMA 5
Escribir un programa que escriba todos los múltiplos de 3 del número 1 al 1500.
81
Programación web PHP
Unidad 4. Programación en PHP
RESUMEN
Un script PHP está formado por una serie de reglas, variables, operadores y estructuras de control que permiten dar solución
al problema planteado.
En PHP las variables se representan con un signo de dólar ($) seguido por el nombre de la variable. El nombre de la variable
es sensible a minúsculas y mayúsculas.
Los operadores son caracteres o símbolos especiales que se utilizan para realizar ciertas operaciones sobre uno o más
valores. Existen operadores de diferentes tipos.
Las estructuras de control permiten redirigir el flujo de ejecución del código del programa.
En esta unidad se han visto los elementos principales de los que consta un Script PHP. En la próxima unidad veremos cómo se
trabaja con funciones en PHP.
82
Programación web PHP
Unidad 5. Las funciones en PHP
INTRODUCCIÓN
En la programación PHP y en la programación en general, se puede encapsular código reutilizable, para evitar tener que
repetir código que haría ineficiente la ejecución del programa.
Esto facilita construir un código mucho más estructurado y limpio para su posterior mantenimiento. El código sólo se escribe
una vez y puede invocarse las veces que se necesite en cualquier punto del script PHP. En esta unidad se muestra cómo crear
esos bloques de código, su invocación y qué resultados puede devolver.
CONOCIMIENTOS PREVIOS
84
Programación web PHP
Unidad 5. Las funciones en PHP
1. LAS FUNCIONES
A medida que los programas PHP son más complejos, es frecuente encontrarnos con código necesario que realice la misma
tarea. Por ejemplo, comprobar si un número es primo o calcular el IVA de una cantidad.
Cada vez que se tuviera que comprobar si el número es primo, habría que programar y repetir el código necesario que me
indicara si ese número es primo o no.
Para evirtar la repetición de código se utilizan las funciones, que son componentes de programación reutilizables y funcionan
como bloques de código independientes. Esto reduce la cantidad de código a escribir y también hace que el script sea mucho
más claro, conciso a la hora de comprenderlo y de mantenerlo.
PHP permite crear funciones por el propio usuario y también dispone de funciones predefinidas en PHP.
1. Definir la función.
2. Invocar la función.
Sólo es necesario crear la función una vez y puede ser invocada tantas veces como se quiera en el resto del script. Las
funciones se pueden definir en el propio fichero php donde está el script principal o pueden ser creadas en otro fichero PHP
y hacer referencia a él.
De esta manera, podríamos tener un fichero denominado funciones.php, donde se incluyan todas las funciones necesarias y
luego invocarlas en mi programa principal. Esta inclusión se haría con la sentencia include(), de la siguiente manera:
EJEMPLO
<?php
.....
include(“ficheros.php”);
.....
.....
?>
85
Programación web PHP
Unidad 5. Las funciones en PHP
De esta manera es como si el código incluido en ficheros.php, lo hubiera escrito directamente en el script principal. En ese
fichero también se pueden incluir constantes, o variables e inicializarlas.
PRESTA ATENCIÓN
Es importante ubicar el fichero a incluir con la sentencia include, en el mismo subdirectorio donde está el
fichero principal. Si se encontrara en otra ubicación, se deberá indicar su path completo.
ACTIVIDAD
• $Valor2=2;
Utilizando la sentencia include(), crear el fichero1.php que incluya el fichero fichero2.php e imprima los
valores de las variables indicadas con la instrucción echo().
2.1. SINTAXIS
La sintaxis que define una función en PHP se define a continuación:
<?php
//sentencias de la función
return [valor];
?>
86
Programación web PHP
Unidad 5. Las funciones en PHP
• Lo primero que aparece es la palabra reservada function, que le indica al intérprete que las sentencias que vienen a
continuación corresponden al código de una función.
• Después se indica el nombre de dicha función. Para poner nombre a la función hay que seguir las mismas normas que
para la definición de los nombres de las variables, es decir, no usar espacios en blanco, ni caracteres especiales, etc.. Es
importante utilizar un nombre que sea identificativo de lo que realiza la función.
• Entre paréntesis van los argumentos que va a utilizar la función para realizar las operaciones necesarias. Estos parámetros
se indican cuando se invoca a la función. No son obligatorios y una función puede no tener argumentos.
• Por último, la sentencia return se encarga de devolver el valor de la función, a traves de la variable que se indique en valor.
Con esta instrucción se finaliza la función.
A modo de ejemplo se muestra una función que devuelve la multiplicación de dos números que se pasan como parámetros.
EJEMPLO
<?php
function multiplicador($numero1, $numero2)
{
$resultado = ($numero1 * $numero2);
return $resultado;
}
?>
HAZLO TÚ MISMO
Realizar una función en PHP que devuelva la suma de dos números y el resultado lo multiplique por 2.
87
Programación web PHP
Unidad 5. Las funciones en PHP
• $num1: parámetro 1.
• $num2: parámetro 2.
A continuación se muestra un ejemplo donde se utiliza la función definida anteriormente para devolver la multiplicación de
los dos números que se envían como parámetros.
EJEMPLO
<html>
<head><title> Ejemplo de funciones </title>
<?php
function multiplicador($numero1, $numero2)
{
return ($numero1 * $numero2);
}
?>
</head>
<body>
<br>
<?php
echo “ ---- Valores de la multiplicación ---- “;
echo “<br>Ejemplo1: 12 * 23 = “ . multiplicador(12,23);
echo “<br>Ejemplo2: 14 * 12 = “ . multiplicador(14,12);
?>
</body>
</html>
88
Programación web PHP
Unidad 5. Las funciones en PHP
Como se observa en el mismo fichero php, se ha definido la función multiplicador y luego se ha invocado con los parámetros
que se han elegido.
PRESTA ATENCIÓN
Normalmente la definición de la función PHP se realiza entre las etiquetas <HEAD>....</HEAD>. En cuanto a
su invocación se suele realizar entre las etiquetas <BODY>...</BODY>. Su ubicación dependerá de dónde se
quiera mostrar el resultado, por ejemplo, dentro de una tabla, al final de un bloque, etc...
HAZLO TÚ MISMO
Realiza el mismo ejemplo anterior pero extrayendo la función en otro fichero que se llame funciones.php y
luego utilizar la sentencia include(), para incluirlas en el fichero principal.
EJEMPLO
<?php
funcion encabezado($cabecera)
{
echo $cabecera;
return;
}
?>
89
Programación web PHP
Unidad 5. Las funciones en PHP
HAZLO TÚ MISMO
Hay que hacer constar que cuando se usan variables como parámetros, dichas variables se envían por valor y no por su
referencia en memoria. Por lo tanto, si dicha variable se modifica en el interior de la función, cuando se haga referencia a ella
fuera de la función, seguirá manteniendo su valor inicial. Todo esto se ve más claro con un ejemplo:
EJEMPLO
<?php
$var1 = 15;
function prueba($arg1)
{
$arg1 = “67”;
echo $arg1; // Esto mostrará 67
}
prueba ($var1);
echo $var1; // Esto mostrará 15
?>
90
Programación web PHP
Unidad 5. Las funciones en PHP
ACTIVIDAD
Investiga por internet, como sería el envío de parámetros a funciones por referencia, y muestra un ejemplo
similar al anterior, donde se vea que la variable si se modifica.
EJEMPLO
<?php
function mostrarColor ($color = “verde”)
{
return “El color indicado es $color”;
}
echo mostrarColor ();
echo “<br>”;
echo mostrarColor (“rojo”);
?>
Como se observa, la función simplemente imprime el color que se envía como parámetro. En el caso en el que no se envíe
ningún parámetro, se imprimirá el color verde.
91
Programación web PHP
Unidad 5. Las funciones en PHP
HAZLO TÚ MISMO
Realizar una función donde existan dos parámetros que dispongan de valores por defecto.
• http://www.php.net/manual/es/funcref.php
Para conocer su sintaxis, los parámetros que necesita, la función que realiza y el valor devuelto, es necesario acceder a dicha
página donde se detalla toda esta información.
92
Programación web PHP
Unidad 5. Las funciones en PHP
STRLEN()
SINTAXIS:
EJEMPLO:
<?php
$saludo=”hola”;
?>
SUBSTR
SINTAXIS:
Devuelve una parte del string definida por los parámetros start y length.
EJEMPLO:
<?php
$saludo=”hola mundo”;
?>
93
Programación web PHP
Unidad 5. Las funciones en PHP
• STR_REPLACE: Esta función se utiliza para reemplazar caracteres dentro de una cadena de caracteres.
• STRTOLOWER Y STRTOUPPER: Las funciones strtolower y strtoupper transforman una cadena de caracteres en la misma
cadena en minúsculas o mayúsculas respectivamente.
• COUNT_CHARS: La función count_chars sirve para contar el número de apariciones de un carácter en una cadena.
• Etc.
HAZLO TÚ MISMO
DATE()
SINTAXIS:
Devuelve una cadena formateada según el formato dado usando el parámetro de tipo integer timestamp dado o el momento
actual si no se da una marca de tiempo.
EJEMPLO:
<?php
?>
94
Programación web PHP
Unidad 5. Las funciones en PHP
Los parámetros del formateo de la fecha se puede consultar en la página de referencia de PHP.
HAZLO TÚ MISMO
MAX()
SINTAXIS:
EJEMPLO:
<?php
$var1=5;
$var2=6;
$var3=9;
?>
95
Programación web PHP
Unidad 5. Las funciones en PHP
ROUND()
SINTAXIS:
EJEMPLO:
<?php
$var1=5.65;
$var2=5.43;
echo “<br>”;
?>
ABS:
COS:
SIN:
HAZLO TÚ MISMO
Crear un script PHP la función ABS().
96
Programación web PHP
Unidad 5. Las funciones en PHP
RESUMEN
Gracias a las funciones se puede reutilizar código.
Existen funciones creadas por el usuario y otras que vienen predefinidas en PHP.
Las funciones se definen y son invocadas desde el script PHP, obteniendo un resultado que puede ser tratado en el resto del
programa.
Las funciones predefinidas son más de 4.500 y están agrupadas según su funcionalidad.
En esta unidad se ha visto cómo trabajar con funciones para reutilizar código. En la siguiente unidad se verá cómo se trabaja
con formularios HTML y su relación con scripts en PHP.
97
Programación web PHP
Unidad 6. Los formularios
INTRODUCCIÓN
Los programas que hemos desarrollado hasta ahora no han dependido de valores introducidos por el usuario a través de una
página web. Las variables estaban incluidas en el propio código PHP.
En esta unidad vamos a mostrar cómo se interactúa con el usuario a través de los formularios HTML y cómo podemos procesar
la información que envíe el cliente web. Es una característica de un sitio web dinámico poder presentar diferentes resultados
dependiendo de los valores introducidos.
CONOCIMIENTOS PREVIOS
99
Programación web PHP
Unidad 6. Los formularios
1. LOS FORMULARIOS
Los formularios permiten a los usuarios de una página web introducir información que será enviada al servidor para su
tratamiento. Ese tratamiento puede consistir en:
• Etc.
En este punto vamos a resumir los aspectos básicos de los formularios en HTML.
Para una referencia completa de las etiquetas y atributos que podemos usar en los formularios HTML,
disponemos del siguiente enlace:
• http://www.w3schools.com/html/default.asp
ACTIVIDAD DE LECTURA
Acceda al enlace indicado anteriormente y repase las etiquetas principales utilizadas en los formularios
HTML.
100
Programación web PHP
Unidad 6. Los formularios
<form
[ action=”url_de_procesamiento” ]
[ method=”GET”|”POST” ]
[ id=”identificador_formulario” ]
>
...
</form>
• action: URL que indica el script PHP que va a procesar la información introducida en el formulario HTML.
• method: Método por el cual se envía la información del formulario HTML al script PHP.
EJEMPLO
<form action=”procesar.php” method=”GET” id=”entrada_datos”>
.......
</form>
101
Programación web PHP
Unidad 6. Los formularios
En este ejemplo los campos del formulario entrada_datos van a ser procesados por el script del fichero procesar.php. Los
campos van a llegar al script PHP a través del método GET.
Para tener una referencia completa de todos los campos que se pueden utilizar y su sintaxis, nos podemos
dirigir al siguiente enlace:
• http://www.w3schools.com/html/default.asp.
CAMPO EJEMPLO
</TEXTAREA>
Listas desplegables <SELECT NAME=”provincia”>
<OPTION VALUE=”Huelva”>Huelva
</SELECT>
102
Programación web PHP
Unidad 6. Los formularios
ACTIVIDAD
Crea un nuevo debate en el Foro del curso donde muestres algunos campos diferentes a los mostrados.
Para ello puedes acceder al enlace de referencia.
FORMULARIO.HTM
<html>
<meta charset=”UTF-8”> // Esta sentencia es para que se acepten los acentos y la ñ.
<head><title>Ejemplo de formulario</title></head>
<body>
<form action=”procesar.php” method=”POST” id=”entrada_datos”>
Nombre de la ciudad: <INPUT TYPE=”text” name=”ciudad” SIZE=8 MAXLENGTH=20>
<BR>
<BR>
Password: <INPUT TYPE=”password” NAME=”clave” SIZE=8 MAXLENGTH=20>
<BR>
<BR>
Tipo de música:
<BR><INPUT TYPE=”radio” NAME=”musica” VALUE=”Flamenco”>Flamenco
<BR><INPUT TYPE=”radio” NAME=”musica” VALUE=”Pop”>Pop
<BR><INPUT TYPE=”radio” NAME=”musica” VALUE=”Rock”>Rock
<BR>
<BR>
Marque si desea publicidad <INPUT TYPE=”checkbox” NAME=”publi” VALUE=”Sí” checked>
<BR>
<BR>
Campo oculto (identificador y es 8)<INPUT TYPE=”hidden” NAME=”identificador” VALUE=”8”>
<BR>
<BR>
103
Programación web PHP
Unidad 6. Los formularios
SALIDA EN EL NAVEGADOR
104
Programación web PHP
Unidad 6. Los formularios
Si nos fijamos en los atributos de la etiqueta form del ejemplo tenemos los siguientes valores:
• action=”procesar.php”. Este es el fichero php que va a contener el script php que va a procesar la información enviada.
• method=”POST”. En este caso se ha elegido el método post para el envío de la información. De esta manera los datos no
aparecerán en la URL del fichero procesar.php, sino que se envían de manera oculta.
Si se hubiera indicado el método “GET”, los valores de los campos irían indicados en la URL del fichero procesar.php,
comenzando con el símbolo ? y separando los campos con el símbolo &.
EJEMPLO
PRESTA ATENCIÓN
El método GET se utiliza cuando la información que se envía no es sensible y no importa que sea pública.
En el resto de casos siempre es conveniente utilizar el método POST.
105
Programación web PHP
Unidad 6. Los formularios
ACTIVIDAD
Crea un formulario que sirva para el login de un usuario al sistema. Los campos que debe de contener son:
• Caja de texto para el usuario.
2. TRATAMIENTO EN PHP
En el apartado anterior hemos visto los aspectos básicos para crear un formulario en HTML y su envío al script PHP. Según
el método de envío por parte del formulario HTML (GET o POST), la recuperación y el tratamiento de los datos será diferente.
Es muy importante que cada uno de los campos que se hayan incluido en el formulario HTML, conste del atributo NAME=”nombre
del campo”, pues ese va a ser el identificativo que se va a utilizar en la página PHP para poder recuperar su valor.
En los campos de tipo texto, password o Textarea entre otros, se recupera el texto introducido. En los campos de elección, como
botones tipo radio, checkbox o select, el valor que se recupera es el indicado en el atributo VALUE.
• procesar.php?campo1=valor&campo2&valor ........
Para poder recuperar esa información desde el script PHP, hay que acceder a una variable de tipo array que contiene tanto
el nombre del campo como su valor. Esta variable es $_GET. Para acceder al valor de un determinado campo hay que indicar
su nombre entre corchetes:
Teniendo como referencia el ejemplo de formulario de la unidad, si quisieramos acceder y mostrar el valor del campo ciudad
tendríamos que hacerlo de la siguiente manera:
106
Programación web PHP
Unidad 6. Los formularios
El fichero procesar.php indicado en el ejemplo, muestra toda la información incluida en el formulario. Su codificación se
muestra a continuación:
<?php
header(‘Content-type: text/html; charset=utf-8’); // Esta sentencia es para que se acepten los acentos y la ñ.
echo “La ciudad es “ . $_GET[‘ciudad’];
echo “<br>”;
echo “La clave es “ . $_GET[‘clave’];
echo “<br>”;
echo “La música elegida es “ . $_GET[‘musica’];
echo “<br>”;
echo “Tu opción de publicidad es “ . $_GET[‘publi’];
echo “<br>”;
echo “El campo oculto tiene el valor “ . $_GET[‘identificador’];
echo “<br>”;
echo “La caja de texto tiene este contenido: “ . $_GET[‘comentario’];
echo “<br>”;
echo “La provincia elegida es: “ . $_GET[‘provincia’];
?>
PRESTA ATENCIÓN
El nombre del campo que se quiera recuperar del array $_GET debe de ir entre comillas simples.
SALIDA EN EL NAVEGADOR
La salida en el navegador con algunos datos de ejemplo que se han introducido sería el siguiente:
La ciudad es Málaga
La clave es 123456
La música elegida es Pop
Tu opción de publicidad es Sí
El campo oculto tiene el valor 8
La caja de texto tiene este contenido: Texto de ejemplo
La provincia elegida es: Huelva
107
Programación web PHP
Unidad 6. Los formularios
Para poder recuperar la información del formulario desde el script PHP, hay que acceder a una variable de tipo array que
contiene tanto el nombre del campo como su valor. Esta variable es $_POST. Para acceder al valor de un determinado campo
hay que indicar su nombre entre corchetes:
Teniendo como referencia el ejemplo de formulario de la unidad, si quisiéramos acceder y mostrar el valor del campo clave,
tendríamos que hacerlo de la siguiente manera:
El fichero procesar.php indicado en el ejemplo, muestra toda la información incluida en el formulario. Su codificación se
muestra a continuación:
<?php
header(‘Content-type: text/html; charset=utf-8’); // Esta sentencia es para que se acepten los acentos y la ñ.
echo “La ciudad es “ . $_POST[‘ciudad’];
echo “<br>”;
echo “La clave es “ . $_POST[‘clave’];
echo “<br>”;
echo “La música elegida es “ . $_POST[‘musica’];
echo “<br>”;
echo “Tu opción de publicidad es “ . $_POST[‘publi’];
echo “<br>”;
echo “El campo oculto tiene el valor “ . $_POST[‘identificador’];
echo “<br>”;
echo “La caja de texto tiene este contenido: “ . $_POST[‘comentario’];
echo “<br>”;
echo “La provincia elegida es: “ . $_POST[‘provincia’];
?>
108
Programación web PHP
Unidad 6. Los formularios
SALIDA EN EL NAVEGADOR
La salida en el navegador con algunos datos de ejemplo que se han introducido sería el siguiente:
La ciudad es Málaga
La clave es 123456
Tu opción de publicidad es Sí
La función devuelve True si la variable indicada está vacía y False si contiene algún valor. De esta manera podríamos utilizar
una sentencia condicional del tipo IF para mostrar diferentes resultados según el campo tenga contenido o no.
109
Programación web PHP
Unidad 6. Los formularios
EJEMPLO
<?php
header(‘Content-type: text/html; charset=utf-8’);
if (isset($_POST[‘musica’]))
echo “La música elegida es “ . $_POST[‘musica’];
else
echo “No has elegido ningún tipo de música”;
?>
HAZLO TÚ MISMO
Realice un script PHP, para comprobar si se ha marcado o no la opción de recibir publicidad en el formulario
de ejemplo. En el caso de que no se haya marcado, poner el texto: “No se ha pedido publicidad”.
110
Programación web PHP
Unidad 6. Los formularios
RESUMEN
Los formularios permiten al usuario introducir información e interactuar con la página web.
La información introducida en el formulario se puede enviar para que sea visible en la URL ó esté oculta.
La recuperación de la información en el script PHP se realiza a través del array $_GET[] y $_POST[], según el método de envío.
La función isset() nos permite comprobar si un campo del formulario se ha envíado vacío.
En esta unidad hemos visto como trabajar con formularios. En la siguiente veremos como acceder a base de datos desde PHP.
111
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
INTRODUCCIÓN
Una de las ventajas que tiene trabajar con páginas dinámicas es poder procesar la información que se encuentra almacenada
en una base de datos para poder organizar, actualizar y buscar los datos necesarios de una manera mucho más rápida y
simple.
En esta unidad veremos los aspectos básicos para trabajar con bases de datos y como acceder a la información almacenada
desde un script PHP.
CONOCIMIENTOS PREVIOS
113
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
1. BASE DE DATOS
DEFINICIÓN
Una base de datos se puede considerar como un gran almacén que nos permite guardar grandes volúmenes
de información de manera organizada para poder acceder a ella.
Esta información permanece almacenada de manera permanente y suele estar ubicada en un servidor con características
especiales en cuanto a seguridad y fiabilidad. Hay que tener en cuenta que la información almacenada en una base de datos
es vital para que el programa funcione.
Existen en el mercado numerosos gestores de bases de datos como Oracle y Sql Server, que son comerciales, ó PostgreSql y
MySql, que son gratuitos y de código abierto. En la unidad se va a trabajar con MySql, que forma parte del paquete WampServer.
DEFINICIÓN
Una base de datos está formada por tablas. Una tabla está formada por un conjunto de campos (columnas),
y por registros (filas), que van a almacenar la información de manera estructurada. El número de tablas que
contendrá la base de datos dependerá de la información que necesitemos almacenar.
ACTIVIDAD
Crear un tema de debate en el foro e indica otros gestores de bases de datos gratuitos diferentes a los
mostrados anteriormente.
114
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
1.1. MYSQL
EMySql es un gestor de base de datos relacional, donde las tablas se relacionan entre sí a través de claves. La clave
identifica de manera única cada registro de la tabla. A lo largo de la unidad vamos a trabajar con la base de datos que se
detalla a continuación.
La base de datos se llama ACD ( Andalucía Compromiso Digital ) y contiene la tabla agenda.
TABLA AGENDA
Esta tabla contiene 5 registros ( filas ) y cada registro está compuesto por 5 campos ( columnas ) que almacena la siguiente
información:
Cuando se crea la tabla hay que indicar sus campos y que tipo de información va a almacenar. Por ejemplo:
Etc.
En este caso todos los campos son de tipo texto, salvo id que es de tipo entero.
115
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
PRESTA ATENCIÓN
Al tipo Entero se le puede indicar que tenga el atributo autonumérico activado. De esta manera este campo
se incrementa automáticamente cada vez que se inserte un nuevo registro. Se suele utilizar como clave
porque este campo nunca se va a repetir en otro registro.
No es necesario darle un valor a este campo porque se hace automáticamente.
En el siguiente enlace puedes acceder a toda la documentación sobre la gestión de base de datos con
MySql.
• http://dev.mysql.com/doc/
HAZLO TÚ MISMO
Diseña una base de datos que contenga una tabla para almacenar la información sobre los datos de una
película.
1.2. PHPMYADMIN
Este programa se instala con el paquete WampsServer, y nos permite trabajar con las bases de datos. Permite entre otras
cosas:
• Crear tablas.
116
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
• Introducir datos.
• Etc.
Una vez que hayamos instalado WampServer en nuestro ordenador, y estén arrancados los servicios Apache, Php y MySql,
simplemente hay que acceder a la siguiente dirección
• http://localhost/phpmyadmin/
• http://docs.phpmyadmin.net/es/latest/
HAZLO TÚ MISMO
Crea la base de datos acd y la tabla agenda tal y como se muestra en el videotutorial. Esta base de datos
nos servirá para el resto de ejemplos que vienen en la unidad.
2. LENGUAJE SQL
Para poder trabajar con los datos almacenados en las tablas de la base de datos se utiliza un lenguaje declarativo llamado
SQL (Structure Query Language). Este lenguaje contiene tres tipos de sentencias:
• Sentencias de definición: permiten crear bases de datos, tablas, usuarios, vistas, etc.
• Sentencias de manipulación: permiten consultar, insertar, modificar y borrar los datos de las tablas.
117
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
En este curso la definición y el control de la base de datos lo vamos a realizar con PhpMyAdmin. En cuanto a las sentencias
de manipulación se van a mostrar aquellas que son básicas para las operaciones más comunes.
Para una referencia completa de las sentencias de manipulación del lenguaje SQL se puede acceder a la
siguiente referencia:
• http://www.w3schools.com/sql/
DEFINICIÓN
En los siguientes apartados se detallan las sentencias de manipulación que permiten realizar las siguientes operaciones:
• Seleccionar registros.
• Insertar registros.
• Modificar registros.
• Borrar registros.
118
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
SINTAXIS
FROM “nombre_tabla”
[WHERE “condición”]
Los elementos que aparecen entre [] indican que es opcional, es decir, puede aparecer o no en la sentencia SELECT.
DESCRIPCIÓN:
• ORDER BY “nombre_columna”: Columna sobre la cual se van a ordenar los resultados obtenidos.
Cuando se ejecuta una sentencia SELECT se obtiene una subtabla con las columnas solicitadas y con los registros que
cumplen las condiciones indicadas.
EJEMPLO 1
Seleccionar el nombre y la dirección de los contactos de la tabla agenda cuyo id sea mayor de 3, ordenados por id.
EJEMPLO 2
119
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
SINTAXIS
DESCRIPCIÓN:
• SINSERT INTO “nombre_tabla” (“columna1”, “columna2”, ...): se indican las columnas de la tabla donde se van a
insertar valores.
• VALUES (“valor1”, “valor2”, ...): valores que se van a incluir en las columnas indicadas anteriormente.
A diferencia de la sentencia SELECT, en este caso no se obtiene una subtabla como resultado de la ejecución de dicha
sentencia.
Si no ocurre ningún error se insertaría un nuevo valor en la tabla. Para visualizar si se ha insertado correctamente, se puede
utilizar el programa PhpMyAdmin o realizar una sentencia SELECT que muestre todos los registros de la tabla.
EJEMPLO
• INSERT INTO agenda (nombre, direccion, telefono, email) VALUES (‘Antonio Martín Ruiz’,’Calle de los riscos, 3 23568
Madrid’,’678945687’,’amartin@gmail.com’);
SINTAXIS
UPDATE “nombre_tabla”
WHERE “condición”;
120
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
DESCRIPCIÓN:
• SET “columna_1” = [nuevo valor]: se cambia el valor de la columna_1, por el nuevo valor indicado.
• WHERE “condición”: condición que deben cumplir los registros para que se realice la modificación.
A diferencia de la sentencia SELECT, en este caso no se obtiene una subtabla como resultado de la ejecución de dicha
sentencia.
Si no ocurre ningún error se modificaría el valor de la columna indicada. Para visualizar si se ha modificado correctamente, se
puede utilizar el programa PhpMyAdmin o realizar una sentencia SELECT que muestre todos los registros de la tabla.
EJEMPLO
SINTAXIS
DELETE FROM “nombre_tabla”
WHERE “condición”;
DESCRIPCIÓN:
• WHERE “condición”: condición que deben cumplir los registros para que sean borrados
A diferencia de la sentencia SELECT, en este caso no se obtiene una subtabla como resultado de la ejecución de dicha
sentencia.
Si no ocurre ningún error se borrará el registro indicado. Para visualizar si se ha borrado correctamente, se puede utilizar
el programa PhpMyAdmin o realizar una sentencia SELECT que muestre todos los registros de la tabla y comprobar si
verdaderamente se ha borrado.
121
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
EJEMPLO
ACTIVIDAD
En este apartado vamos a ver como se accede a la base de datos a traves de un script PHP. En líneas generales en el script
hay que incluir las sentencias necesarias para realizar las siguientes acciones:
4. Crear el script php que genera la página HTML con los resultados obtenidos.
5. Cerrar la conexión.
Para mostrar como se trabaja en PHP vamos a seguir usando la tabla agenda de la base de datos ACD, cuya definición y datos
se muestran a continuación:
122
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
Hay dos extensiones en PHP para poder acceder a la base de datos MySql que son:
• mysql_
• mysqli_
mysqli_ es más reciente (versión 5 de PHP) y tiene mayor funcionalidad que mysql_ y es la extensión que vamos a utilizar
en la unidad.
¿SABÍAS QUE…?
3.1. CONEXIÓN
La sentencia que permite conectar con la base de datos es mysqli_connect().
SINTAXIS
123
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
PARÁMETROS:
• puerto: puerto a través del cual se accede al servidor. Por defecto el puerto utilizado es el 3306.
Esta función devuelve False si no ha podido conectar con la base de datos. Si la conexión se ha realizado sin problemas se
devuelve un identificador de conexión a dicha base de datos.
EJEMPLO
Conexión a la base de datos ACD en local con el usuario “admin” y contraseña “123”.
<?php
?>
SINTAXIS
mysqli_query(conexion , consulta);
PARÁMETROS:
Esta función devuelve False si no se ha podido realizar la consulta SQL sobre la base de datos.
Si la consulta se ha podido realizar sin problemas, devolvería True en el caso de la inserción, modificación y borrado. En el caso
de una sentencia de consulta tipo SELECT, se obtendría un objeto que contiene la subtabla con los campos de los registros
que cumplen las condiciones indicadas en dicha sentencia.
Dependiendo de la consulta SQL, se podrán realizar listados, inserciones, modificaciones o el borrado de registros de la tabla
agenda.
124
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
LEER REGISTROS
Se obtiene en la variable $resultado los nombres y las direcciones de todos los contactos de la tabla agenda. Si la consulta
es errónea la variable $resultado tendrá el valor False.
<?php
?>
INSERTAR REGISTROS
Se inserta en la tabla agenda un nuevo registro. Si la inserción ha sido correcta en la variable $resultado tendremos el valor
True y en caso contrario False.
<?php
$resultado= mysqli_query($conexion,”INSERT INTO agenda (nombre, direccion, telefono, email) VALUES (‘Antonio Martín
Ruiz’,’Calle de los riscos, 3 23568 Madrid’,’678945687’,’amartin@gmail.com’)”);
?>
MODIFICAR REGISTROS
Se modifica el contacto con id 4 cambiando su número de teléfono. Si la modificación ha sido correcta en la variable
$resultado tendremos el valor True y en caso contrario False.
<?php
?>
125
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
BORRAR REGISTROS
Se borra el contacto con id 4 de la tabla agenda. Si la inserción ha sido correcta en la variable $resultado tendremos el valor
True y en caso contrario False.
<?php
$conexion = mysqli_connect(“127.0.0.1”, “admin”, “123”, “acd”);
$resultado= mysqli_query($conexion,”DELETE FROM agenda WHERE id=1”);
?>
SINTAXIS
mysqli_fetch_row(resultado)
PARÁMETROS:
Cada vez que se llama a esta función se obtiene un registro de manera consecutiva de la subtabla almacenada en resultado.
Por ello es necesaria incluirla en un bucle while. Cuando se llega al final de la subtabla se devuelve False.
Para acceder a los campos del registro hay que indicar el número de columna entre corchetes. A continuación se muestra
un ejemplo.
EJEMPLO
<?php
$conexion = mysqli_connect(“127.0.0.1”, “admin”, “123”, “acd”);
$resultado= mysqli_query($conexion,”SELECT id,nombre FROM agenda”);
126
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
ACTIVIDAD
Crear un script PHP que se conecte a la base de datos ACD, y borre todos los contactos de la tabla agenda
cuyo id sea menor de 3. Una vez que se hayan borrado los registros, listar los contactos que queden en la
tabla.
127
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
Lista todos los contactos de la agenda y muestra los botones del menú principal para realizar las
listado.php
operaciones de inserción, modificación y borrado de contactos.
insertar.php Muestra un formulario para insertar un nuevo registro.
insertar2.php Inserta los valores introducidos en el formulario anterior.
Muestra en un combo los identificadores de todos los contactos de la agenda para indicar que contacto
modificar.php se quiere modificar. Tambien se muestra un cuadro de texto para indicar el nuevo número de teléfono,
que es el campo que se va a modificar.
En esta página se modifica el contacto indicado en el formulario anterior con el teléfono indicado en el
modificar2.php
campo de texto.
Muestra en un combo los identificadores de todos los contactos de la agenda para indicar que contacto
borrar.php
se quiere borrar.
borrar2.php Se borra el contacto indicado en el combo anterior
4.1. LISTADO.PHP
CÓDIGO FUENTE
<html>
<meta http-equiv=”Content-type” content=”text/html; charset=utf-8” />
<body>
<h1>Agenda</h1>
<?php
$link = mysqli_connect(“localhost”,”admin”,”123”,”acd”); // Conexión con la base de datos
mysqli_query($link,”SET NAMES ‘utf8’”); // Permite acentos y la ñ en los campos de la base de datos
128
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
echo “<tr>”;
echo “<td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td>”;
echo “</tr>”;
}
echo “</table> \n”;
?>
<br>
<!-- Botones con código javascript para llamar a las páginas insertar, modificar y borrar -->
<input type=”button” value=”Insertar” onclick=”window.location=’insertar.php’”>
<input type=”button” value=”Modificar” onclick=”window.location=’modificar.php’”>
<input type=”button” value=”Borrar” onclick=”window.location=’borrar.php’”>
</body>
</html>
4.2. INSERTAR.PHP
CÓDIGO FUENTE
<html>
<head>
<meta charset=”UTF-8”>
<title>Inserción de registros</title>
</head>
<body>
<h1>Inserción de datos</h1>
129
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
<!-- Enlace que permite volver al listado general si no se quiere finalmente insertar un nuevo registro -->
<a href=”listado.php”>Cancelar</a>
</body>
</html>
SALIDA EN EL NAVEGADOR
4.3. INSERTAR2.PHP
CÓDIGO FUENTE
<html>
<body>
<?php
header(‘Content-Type: text/html; charset=UTF-8’); // Permitir acentos y la ñ en la página
130
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
<br><br>
4.4. MODIFICAR.PHP
CÓDIGO FUENTE
<html>
<body>
<?php
header(‘Content-Type: text/html; charset=UTF-8’); // Permitir acentos y la ñ en la página
$link = mysqli_connect(“localhost”,”admin”,”123”,”acd”); // Conexión con la base de datos
131
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
?>
</select>
<br><br>
<!-- Enlace que permite volver al listado general si no se quiere finalmente modificar el registro -->
<a href=”listado.php”>Cancelar</a>
</body>
</html>
SALIDA EN EL NAVEGADOR
4.5. MODIFICAR2.PHP
CÓDIGO FUENTE
<html>
<body>
<?php
header(‘Content-Type: text/html; charset=UTF-8’); // Permitir acentos y la ñ en la página
$link = mysqli_connect(“localhost”,”admin”,”123”,”acd”); // Conexión con la base de datos
132
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
<br><br>
<!-- Enlace para volver al listado general-->
<a href=”listado.php”>Volver al listado</a>
</body>
</html>
4.6. BORRAR.PHP
CÓDIGO FUENTE
<html>
<body>
<?php
header(‘Content-Type: text/html; charset=UTF-8’); // Permitir acentos y la ñ en la página
$link = mysqli_connect(“localhost”,”admin”,”123”,”acd”); // Conexión con la base de datos
133
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
</select>
<br><br>
</FORM>
<!-- Enlace que permite volver al listado general si no se quiere finalmente borrar el registro -->
<a href=”listado.php”>Cancelar</a>
</body>
</html>
SALIDA EN EL NAVEGADOR
4.7. BORRAR2.PHP
CÓDIGO FUENTE
<html>
<body>
<?php
header(‘Content-Type: text/html; charset=UTF-8’); // Permitir acentos y la ñ en la página
134
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
<br><br>
<!-- Enlace para volver al listado general-->
<a href=”listado.php”>Volver al listado</a>
</body>
</html>
HAZLO TÚ MISMO
Comprueba en local que el código fuente de todas las páginas php indicadas funcionan y que se realiza
correctamente el mantenimiento de la agenda.
135
Programación web PHP
Unidad 7. Acceso a Base de datos con PHP
RESUMEN
Las bases de datos permiten tener la información estructurada para que su acceso sea rápido y fiable.
136
Programación web PHP
Sigue la actualidad de Andalucía Compromiso Digital
FIN
Web
www.andaluciacompromisodigital.org
Correo electrónico
andalucia.compromisodigital@juntadeandalucia.es
Facebook
www.facebook.com/andaluciacompromisodigital
Twitter
@andaluciacompdig