Curso de PHP

Indice:

1. Introducción
2. Instalación de PHP en Linux con Apache y MySQL
3. Instalación de PHP en Windows 95/98/NT con Apache y MySQL
4. Seguridad y PHP
5. Lenguaje PHP
6. Variables
7. Constantes
8. Expresiones y operadores
9. Estructuras de Control
10. Funciones
11. Clases y objetos
12. Manejo de Errores
13. Creación de Imágenes GIF
14. Problema de la autentificación de un Usuario con PHP
15. Cookies
16. Utilización de ficheros remotos
17. Manejo de conexiones
18. Conexiones a bases de datos
19. Funciones de PHP
20. Direcciones de Interés

arriba

1. Introducción

Todos los que nos hemos enfrentado con el diseño de páginas Web hemos echado de menos un poco más de dinamismo en ellas.
Representar una página repleta de gráficos y nada más, deja de ser suficiente para ciertas aplicaciones en Internet. Estas aplicaciones requieren de cierta interactividad con el usuario, y han sido muchas las tecnologías aplicadas a este fin (formularios, CGI, etc.).

Ahora está disponible la versión 3 de PHP, o la versión 4 no definitiva, Profesional Home Pages, la solución para la construcción de Webs con independencia de la Base de Datos y del servidor Web, válida para cualquier plataforma. El objetivo final es conseguir la integración de las paginas HTML con aplicaciones que corran en el servidor como procesos integrados en el mismo, y no como un proceso separado, como ocurría con los CGIs. Igualmente interesa que dichas aplicaciones sean totalmente independientes del navegador (lo que no ocurría con otros lenguajes basados en scripts, como JavaScript o VisualBasic Script), independientes de la plataforma y de la Base de Datos.

Perl ha sido el lenguaje que ha servido como estándar para construir CGIs durante mucho tiempo, y aún sigue siendo una de las mejores soluciones para desarrollar aplicaciones Web portables, ya que trabaja sobre cualquier servidor Web que soporte CGIs, y sobre cualquier plataforma que soporte Perl, que son la mayoría, incluso ha servido para desarrollar módulos que extienden la funcionalidad de los servidores. Pero nada tiene que envidiar PHP. PHP, está más orientado a conexiones entre páginas Web y servidores donde se almacenan toda clase de Bases de Datos.

Soporta un único "Safe Mode", es decir, un mecanismo de seguridad que permite que varios usuarios estén corriendo scripts PHP sobre el mismo servidor. Este mecanismo está basado en un esquema de permisos de ficheros, permitiendo el acceso a aquellos ficheros que son apropiados por el mismo identificador de usuario que el del script que está intentando acceder a ese fichero, o bien cuando el fichero está en el directorio que es propiedad del mismo identificador de usuario que el del script que está intentando acceder.

PHP es un lenguaje de programación soportado por HTML. La sintaxis está heredada de C, Java y Perl. Este lenguaje está orientado para los constructores de páginas Webs, permitiendoles crear páginas dinámicamente generadas de forma rápida.

¿Qué es PHP?

Oficialmente, PHP es un preprocesador de hipertextos, pero qué significa?.

Para ilustrar esto podemos ver un simple ejemplo:

        <html>
           <head>
              <title>Example</title>
           </head>
           <body>
              <?php echo "Hi, Esto es un Script PHP";?>
           </body>
        </html>
Esto es muy parecido a cualquier otro Script escrito en Perl o C. El código de PHP está incluido en tags especiales "<?,?>".

Lo que hace diferente a PHP es que el código que se deba ejecutar se ejecuta siempre en el servidor.

Así, al ejecutar el script anterior, el cliente recibirá sólo los resultados de la ejecución por lo que es imposible para el cliente acceder al código que generó la página.

¿Qué se puede hacer con PHP?

En el nivel más básico PHP es equiparable a un CGI cualquiera. La mayor fuerza de PHP es que está preparado para soportar accesos a muchos tipos de bases de datos como:
 
 
  1. Adabas D
  2. dBase
  3. Empress
  4. FiclePro
  5. informix
  6. InterBase
  7. Solid
  8. Sybase
  9. Velocis
  10. Unix dbm
  11. mSQL
  12. MySQL
  13. Oracle
  14. PosgreSQL
Además de esto, PHP soporta la utilización de otros protocolos como IMAP, SNMP, NNTP, POP3 o HTTP a nivel de socket.

Algo de Historia

PHP fue creado por Rasmus Lerdorf a finales de 1994, aunque no hubo una versión utilizable por otros usuarios hasta principios de 1995. Esta primera versión se llamó, Personal Home Page Tools.

Al principio, PHP sólo estaba compuesto por algunas macros que facilitaban el trabajo a la hora de crear una página Web. Hacia mediados de 1995 se creo el analizador sintáctico y se llamó PHP/F1 Versión 2, y sólo reconocía el texto HTML y algunas directivas de mSQL. A partir de este momento, la contribución al código fue pública.

El crecimiento de PHP desde entonces ha sido exponencial, y han surgido versiones nuevas como la actual, PHP3 y la incipiente PHP4.

arriba

2. Instalación de PHP en Linux con Apache y MySQL

arriba

En este apartado se describe el proceso de instalción de la base de datos MySQL, de un servidor web Apache con PHP, en una máquina con sistema operativo Linux o Unix.

Lo primero que se debe hacer es conseguir los paquetes necesarios, y que mejor para ello que diriguirnos a las páginas web (o cualquiera de sus mirros) de los programas en cuestión:

Para poder realizar todo el proceso de instalación has de tener acceso como root a la máquina Linux.

 Lo primero que se debe hacer es escoger un directorio de instalación, aunque lo normal sería en /usr/local, /urs/src, o bien en /opt. Para el ejemplo se va a seleccionar /usr/local aunque el proceso sería idéntico para cualquier otro.

 Una vez bajados los paquetes se suponen almacenados en el direcctorio /root/install y el primer paso es descomprimir.
 
 

           cd /usr/local

           tar zxvf /root/install/apache-1.3.x.tar.gz

           tar zxvf /root/instal/mysql-3.22.x.tar.gz

           tar zxvf /root/instal/php-3.0.x.tar-gz

Se crean enlaces sencillos al código fuente:
           ln -s /usr/local/apache-1.3.x  /usr/local/apache

           ln -s /usr/local/mysql-3.22.x /usr/local/mysql

           ln -s /usr/local/php-3.0.x /usr/local/php

Se preparan los fuentes para la compilación de Apache:
           cd /usr/loca/apache

           ./configure --prefix=/usr/local/apache

Se compila e instala MySQL:
           cd /usr/local/mysql

           ./configure --witout-debug --prefix=/usr/local/mysql

           make

           make install

           cp /usr/local/support-files/mysql.server /etc/rc.d/init.d/mysql

           chmod 755 /etc/rc.d/init.d/mysql

Se crean las bases de datos del sistema MySQL:
           /usr/local/mysql/bin/mysql_install_db

Se inicia el servidor MySQL:
           /etc/rc.d/init.d/mysql start
Se asigna Password de administrador de MySQL (root):
           /usr/local/mysql/bin/mysqladmin -u root password "clave"

Ahora le toca el turno a la compilación de PHP como módulo de Apache:
           cd /usr/local/php

           ./configure --with-mysql=/usr/local/mysql \

                  --with-apache=/usr/local/apache \

                  --enable-track-vars

           make

           make install

           #cp php3.ini-dist /usr/local/lib/php3.ini

Compilación de Apache:
           cd /usr/local/apache

            ./configure --prefix=/usr/local/apache \

                  --activate-module=src/modules/php3/libphp3.a

                  # si hemos compilado PHP4 utilizaremos

                  #--activate-module=src/modules/php4/libphp4.a

                  # quitar los comentarios para habilitar el módulo de proxy

                  #--activate-module=src/modules/proxy/libproxy.a

           make

           make install

Para definir las extensiones de los scripts PHP, hay que añadir las siguientes lineas en el fichero de configuración de apache (httpd.conf):
           AddType application/x-httpd-php3 .php3

           AddType application/x-httpd-php3 .php

           AddType application/x-httpd-php3 .phtml

Ahora ya sólo resta arrancar el servidor, copiando primero el script de arranque en /etc/rc.d/init.d.
           cp /usr/local/apache/bin/apachecte /etc/rc.d/init.d/apache

           /etc/rc.d/init.d/apache start

Para comprobar la instalación creese un fichero llamado test.php3 con la siguiente línea:
           <?php phpinfo() ?>
Colóquelo en el directorio de documentos de Apache y llámelo desde el navegador. Si todo está correcto, aparecerá una página con información general a cerca del entorno de PHP.
NOTA: Esta instalación es básica, si se desea hacer una instalación más completa será necesario acudir a los manuales que figuran al final de este tutorial.

3. Instalación de PHP en Windows 95/98/NT con Apache y MySQL

En este capítulo se describe el proceso de instalción de la base de datos MySQL, de un servidor web Apache con PHP, en una máquina con sistema operativo Windows.

 Lo primero que se debe hacer es conseguir los programas necesarios, y que mejor para ello es diriguirse a las páginas web (o cualquiera de sus mirros) de los programas en cuestión:
 
 

NOTA: La versión para sistemas Windows de MySQL no es gratuita. Por lo que usaremos la versión shareware que está limitada a 30 días.

La instalación de estos programas es muy fácil, PHP y MySQL vienen comprimidos en formato ZIP y sólo los tenemos que descomprimir en una carpeta, mientras que Apache es autoejecutable:

Descomprimimos PHP en "C:\php3"
Descomprimimos MySQL en "C:\mysql"
Hacemos "doble click" en el fichero de Apache y aceptamos el directorio de instalación por defecto "C:\Archivos de Programas\Apache Group\Apache".
Una vez instalados los programas, sólosólo queda hacer pequeños ajustes de configuración: 1