Manual PHP

download Manual PHP

of 54

Transcript of Manual PHP

  • Curso PHP-MySQL

    1/54

    Curso PHP-MySQL

    Prof. Lic. Jomar R. Gmez Robles, Mastre-Telecom

  • Curso PHP-MySQL

    2/54

    Curso PHP-MySQL Tabla de contenidos

    1 Introduccin 2 HTML

    o 2.1 Qu es HTML? o 2.2 Etiquetas bsicas

    2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9

    o 2.3 Otras etiquetas 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6

    o 2.4 Caracteres especiales o 2.5 Formularios o 2.6 Ejemplo de una pgina HTML

    3 PHP o 3.1 Qu es PHP?

    3.1.1 Historia de PHP 3.1.2 PHP

    o 3.2 Instalando PHP en nuestro servidor o 3.3 Herramientas libres para escribir PHP o 3.4 Sintaxis, variables y operadores o 3.5 Primer script en PHP o 3.6 Instrucciones bsicas o 3.7 Tipos de variables o 3.8 Constantes o 3.9 Estructuras de control

    3.9.1 if/elseif/else 3.9.2 while 3.9.3 do ... while 3.9.4 for 3.9.5 foreach 3.9.6 break 3.9.7 continue 3.9.8 switch

    o 3.10 Incluyendo archivos include() y require()

  • Curso PHP-MySQL

    3/54

    o 3.11 Funciones 3.11.1 Formas de usar una funcin 3.11.2 Devolviendo valores desde funciones return()

    o 3.12 Clases o 3.13 Matrices, arrays o vectores o 3.14 Ficheros

    3.14.1 fopen 3.14.2 fwrite 3.14.3 fread 3.14.4 Upload de ficheros al servidor

    o 3.15 Cookies 3.15.1 Cmo usar las cookies

    o 3.16 Sesiones 3.16.1 Inicio de sesin 3.16.2 Variables de sesin 3.16.3 Cierre de sesin

    4 MySQL o 4.1 Qu es una base de datos relacional? o 4.2 Tipos de datos en MySQL o 4.3 Instalando MySQL en nuestro servidor o 4.4 Creando una base de datos y una tabla

    4.4.1 Modo phpmyadmin 4.4.2 Modo mysql-admin/mysql-query-browser 4.4.3 Modo desde consola

    o 4.5 Consultas MySQL 4.5.1 Consultas de insercin 4.5.2 Consultas de seleccin 4.5.3 Consulta de Actualizacin/Modificacin 4.5.4 Consultas de Eliminacin

    5 Uso de bases de datos desde cdigo PHP o 5.1 Funciones MySQL

    5.1.1 mysql_pconnect 5.1.2 mysql_select_db 5.1.3 mysql_query 5.1.4 mysql_fetch_row 5.1.5 mysql_result 5.1.6 mysql_escape_string

    6 Herramientas para otras plataformas o 6.1 Instalacin de PHP en Apache para Windows o 6.2 Instalacin de MySQL en Windows o 6.3 Herramientas para trabajar con MySQL en Windows o 6.4 Instalacin completa en Windows

    6.4.1 AppServ 6.4.2 XAMMP

    7 Complementos o 7.1 phpMyAdmin o 7.2 CMS

  • Curso PHP-MySQL

    4/54

    HTML

    Qu es HTML? HTML es el acrnimo ingls de HiperText Markup Languaje, lenguaje de marcado de hipertexto en castellano. Es el lenguaje universal de Internet, el que todos los navegadores entienden y en el que se representa ms del 90% del contenido web (el resto son imgenes, animaciones en flash, etc).

    REFERENCIAS: Definicin de HTML segn la Wikipedia en espaol

    Etiquetas bsicas

    Las etiquetas bsicas presentes en cualquier pgina que valide su contenido en HTML son las siguientes: , , , , , , , y . Aunque todas estn escritas con maysculas, no tiene por qu escribirse en mayscula, es ms, desde hace tiempo todas las etiquetas se suelen poner en minscula. Otro aspecto importante en las etiquetas es que casi todas se cierran, as se cierra con , algunas como no se cierran.

    Es la etiqueta que define el inicio del documento html, le indica al navegador que todo lo que viene a continuacin debe tratarlo como una serie de cdigos html. Se cierra con .

    Define la cabecera del documento html, esta cabecera suele contener informacin sobre el documento que no se muestra directamente en el navegador, su codificacin (charset=ISO-8859-1 o UTF-8 ...) , etc. Se cierra con .

    Define el contenido principal o cuerpo del documento, esta es la parte del documento html que se muestra en el navegador, dentro de esta etiqueta pueden definirse propiedades comunes a toda la pgina, como color de fondo y mrgenes. Se cierra con .

    Define el ttulo de la pgina. Por lo general, el ttulo aparece en la barra de ttulo encima de la ventana. Se cierra con .

  • Curso PHP-MySQL

    5/54

    Son encabezados o ttulos del documento en diferentes tamaos de fuente, la X debe se un nmero del 1 al 6, el 1 es el ms grande y el 6 el ms pequeo. Se cierra con donde X debe ser el mismo nmero que abri la etiqueta.

    Es un prrafo nuevo, viene de paragraph. Se cierra con .

    Es un salto de lnea forzado, viene de branch. Esta etiqueta no se cierra en HTML, en XHTML s se cierra con .

    Es el comienzo de una tabla, las filas se identifican con y las celdas dentro de las filas con . La tabla se cierra con , las filas con y las celdas con .

    Indica el comienzo de una divisin vertical de la pgina, se usa mucho para alinear a la izquierda, centro o derecha los textos e imgenes, veamos un ejemplo: Esto es un texto alineado en el centro

    Y el resultado:

    Esto es un texto alineado en el centro

    Como vemos, esta etiqueta se cierra con .

    Otras etiquetas

    Otras etiquetas muy tiles y usadas en HTML son: , , , , , .

    La etiqueta sirve para empotrar una imagen cualquiera en HTML. Su uso suele ser:

    Los parmetros alt, title, width y height no son obligatorios, aunque el primero s es necesario para validar correctamente la pgina en HTML, el segundo se refiere al ttulo

  • Curso PHP-MySQL

    6/54

    de la imagen, ste ser visible si ponemos el ratn encima de la imagen. Los campos width y height hacen referencia al tamao de la imagen, pudiendo modificar el tamao original al gusto del programador, si estos campos no se pasan, se toma el tamao original. Esta etiqueta no se cierra.

    La etiqueta hace referencia a un hiperenlace, puede ser a otra pgina o bien a una subseccin de la misma pgina, lo que se conoce como un ancla. Un ejemplo tpico de su uso sera:

    Pgina web de SOLEUP

    La URL ha de ir siempre entre las comillas o no ser vlido, el texto que est entre y es el que contendr el enlace, es imprescindible cerrar el hiperenlace o bien todo lo que escribamos a partir de estar hiperenlazado. Si no escribimos http:// estaremos haciendo referencia a un enlace en el mismo servidor, por lo que si se nos olvida el enlace estar roto.

    Como muchas etiquetas, esta tambin tiene opciones, uno de las ms usadas y ms detestadas por los usuarios es target="_blank". Se recomienda no usarla porque ltimamente los navegadores ms modernos disponen de solapas o pestaas para navegar, mucho ms til que la apertura de un nuevo navegador, adems los usuarios se quejan de que esta opcion coarta su libertad: "Si quiero abrir un nuevo navegador para ver esa pgina ya lo hago yo, no me obligues".

    Esta etiqueta pude usar distintos protocolos siendo el ms comn http://, otros son, mailto: ftp:// news://.

    Esta etiqueta imprime una lnea horizontal separatoria.

    Esta etiqueta modifica el tipo de fuente, su tamao, su tipo, su color... veamos un ejemplo: este es un texto enriquecido

    Como vemos se ha de cerrar con .

    Esta etiqueta hace que el texto comprendido entre est escrito en cursiva. El acrnimo viene de italic.

  • Curso PHP-MySQL

    7/54

    Esta etiqueta hace que el texto comprendido entre est escrito en negrita. El acrnimo viene de bold.

    Caracteres especiales

    En el castellano tenemos varios caracteres especiales que en ocasiones HTML no entiende muy bien, estos son la , las tildes y los comienzos de pregunta y admiracin. El problema fundamental por el que un navegador puede no interpretar bien estos caracteres es porque el programador ha elegido mal el conjunto de caracteres de codificacin del texto, el charset, porque el navegador es antiguo y no distingue entre codificaciones, o bien porque el servidor web tiene una codificacin distinta a la que usa la pgina. Para ahorrarnos estos problemas siempre que trabajemos con estos caracteres usaremos los caracteres especiales del HTML estndar:

    Para la : & ntilde; Para tilde en la a: & aacute; Para tilde en la e: & eacute; Para tilde en la i: & iacute; Para tilde en la o: & oacute; Para tilde en la u: & uacute; Para el inicio de pregunta: & iquest; Para el inicio de admiracin: & iexcl;

    En las tildes, si queremos ponerlas en maysculas slo habra que sustituir la letra minscula que est despus del ampersn por su equivalente en mayscula.

    Formularios

    Los formularios son herramientas con campos de texto, botones, menus desplegables y/o campos seleccionables que se encuentran en muchas webs, se suelen utilizar para hacer bsquedas, introducir datos, etc. Realmente sirven para interactuar de alguna forma con la pgina web enviando informacin que luego se procesar de alguna manera, en nuestro caso ser va un script o programa en PHP.

    Los formularios siempre se han de enviar a una pgina, puede ser la misma en la que est el formulario o bien otra. Existen dos mtodos de enviar un formulario, get y post, el primero enva todos los datos sin encriptar y son visibles en el navegador, mientras que el segundo los encripta y enva ocultos al navegador, lo que nos da seguridad a la hora de enviar datos.

    Se define un formulario de mtodo post como:

    Podemos tener distintos tipos de modificadores o campos en el formulario: Botones de envo de datos...

  • Curso PHP-MySQL

    8/54

    o de borrado de todos los datos introducidos...

    cajas de texto de tamao 12 y longitud mxima 20...

    campos ocultos de nombre "oculto" y valor "16"...

    reas de texto con 6 filas y 8 columnas de extensin...

    mens desplegables de nica opcin...

    -------- Opcin 1 Opcin 2

    mens desplegables de varias opciones...

    Opcin 1 Opcin 2

    Hay muchas ms opciones para incluir dentro de un formulario, las anteriores son las ms tpicas y bsicas.

    Ejemplo de una pgina HTML Pgina de prueba Este es el ttulo de la pgina Esto es un texto normal.

  • Curso PHP-MySQL

    9/54

    PHP

    Qu es PHP? PHP es el acrnimo recursivo de "PHP: Hypertext Preprocessor". Es un lenguaje multiplataforma de programacin interpretado de alto nivel, pensado para desarrollos web y empotrable en pginas HTML. La facilidad de PHP es que tiene muchas funciones copiadas de C, Java y/o Perl, por ello su curva de aprendizaje es exponencial. Lo que ve el cliente es el cdigo ejecutado, es decir, el cliente solo ve lo que el cdigo PHP ha producido, no la programacin de ste, como pasara con un Javascript.

    PHP est llamado a sustituir a los vetustos CGIs (Common Gateway Interface) que fueron unas de las primeras maneras prcticas de crear contenido dinmico. En los CGIs el servidor web pasa las solicitudes del cliente a un programa externo, como si fuese un script en bash, y la salida es enviada al cliente como un archivo esttico tradicional.

    Historia de PHP

    PHP/FI fu creado por Rasmus Lerdorf en 1995 como un conjunto de scripts escritos en Perl para controlar los accesos de su pgina. Fueron llamados Personal Home Page Tools. Ms tarde fue ampliando su implementacin en C y hacer posibles comunicaciones con bases de datos al tiempo que liber el cdigo para que usuarios de todo el mundo le ayudasen.

    En 1997 se lleg a la versin 2.0 de PHP/FI, segunda escritura de la implementacin en C y se cree que varios miles de usuarios por todo el mundo lo utilizaron. 50.000 dominios de la joven internet de aquel entonces lo tenan instalado, alrededor del 1%. Aunque ya haba mucha gente colaborando con el proyecto era bsicamente el trabajo de una sola persona. PHP/FI 2.0 fue pronto sustituido por las primeras versiones alfa de PHP 3.0.

    PHP 3.0 fue reescrito completamente desde cero y se asemeja bastante al PHP con el que se trabaja hoy da. Andi Gutmans y Zeev Zuraski fueron los autores de PHP 3.0. Rasmus Lerdorf y estas dos personas decidieron anunciar como sucesor ofical del PHP/FI al PHP 3.0 que se perfilaba como una herramienta que podra crear aplicaciones comerciales.

    La caracterstica principal de PHP 3.0 fue su gran extensibilidad, provea adems una infraestructura slida y consistente para muchas bases de datos, protocolos y APIs lo que atrajo a muchos desarrolladores al proyecto que enviaron nuevos mdulos y extensiones. En PHP 3.0 ya empezamos a ver soporte de sintxis orientada a objetos.

    En 1998 se estimaba que cientos de miles de sitios web lo tenan instalado, sobre un 10% del total. PHP 3.0 fue liberado oficialmente en Junio de 1998, despus de muchos meses de pruebas pblicas para comprobar su funcionamiento y robustez y tambin para descubrir errores.

  • Curso PHP-MySQL

    10/54

    PHP

    Como en todo proyecto Open Source, en cuanto sale una Release, los desarrolladores se ponen a trabajar en la siguiente, as pues a finales de 1998 Andi Gutmasn y Zeev Suraski se pusieron a reescribir el ncleo de PHP para mejorar la ejecucin de aplicaciones y la modularidad del cdigo base. El nuevo motor diseado fue llamado Zend Engine y fue introducido a mediadios de 1999. PHP 4.0 fue liberado con este motor en Mayo del 2000. Con soporte para la mayora de servidores web, sesiones HTTP, caractersticas de seguridad y nuevas construcciones del lenguaje.

    Ms del 20% de servidores de internet tienen instalado un servidor con PHP hoy da.

    Existe una mejor implementacin del motor de PHP tambin llamado Zend Engine que precompila las pginas y es mucho ms eficiente en aplicaciones grandes, anque es de pago.

    PHP 5 fu recientemente liberado con un soporte muy amplio para la programacin orientada a objetos, claramente el futuro.

    PHP no es un lenguaje que se interprete en el cliente o en el navegador, es un lenguaje que interpreta el servidor y manda la salida en el formato deseado (HMLT, XML...) al navegador. Esto quiere decir que no necesitamos que nuestro navegador tenga ninguna caracterstica especial para poder ver pginas web programadas en PHP.

    REFERENCIAS:

    (C) PHP Documentation Group Manual oficial de PHP Manual de iniciacin a PHP del Grupo de usuarios de Informtica de la UVA La wikipedia en espaol

    Instalando PHP en nuestro servidor

    La instalacin en el sistema GNU/Linux debian es ms que sencilla, en sus tres versiones actuales (woody, sarge, sid o stable, testing, unstable) tenemos disponible el paquete PHP 4.

    Nos haremos superusuarios (root) de la mquina en una consola o en un terminal desde el escritorio, con el comando:

    'su -'

    Haremos una actualizacin de los paquetes con el comando:

    'apt-get update'

    y a continuacin instalaremos php con:

    'apt-get install php4'

  • Curso PHP-MySQL

    11/54

    Suponemos que ya tenemos instalado el servidor web apache, de lo contrario instalaremos apache y php a la vez con:

    'apt-get install apache2 libapache2-php4'

    El archivo de configuracin estar en el directorio /etc/php4/apache2/ de nuestro sistema y en principio dejaremos todo como el sistema lo ha instalado, ya que no necesitamos tocar las configuraciones para empezar a jugar con PHP.

    Ms adelante veremos cmo instalar PHP en una mquina que use Microsoft Windows y tambin una referencia para instalarlo en un servidor MS-IIS.

    RFERENCIA:

    (C) PHP Documentation Group Manual oficial de PHP

    Herramientas libres para escribir PHP

    Cualquier editor de texto por simple que sea puede ser usado para escribir PHP, desde el omnipresente VI hasta los editores basado en escritorio como NVu, Mozilla Composer, Bluefish o gPHPEdit. Nosotros usaremos durante este curso Bluefish y gPHPEdit ya que el primero es capaz de interpretar cdigos de otros muchos lenguajes y en concreto los dos que nos interesan: HTML y PHP, y el segundo est pensado para PHP y ofrece ms posibilidades en este sentido que Bluefish.

    NVu es un programa muy completo pero an en una fase de desarrollo muy temprana, es un potente editor WYSIWYG (What You See Is What You Get, o lo que ves es lo que obtendrs), aspira a ser rival del conocido Dreamweaver de Macromedia. Esta desarrollado por Linspire (antigua Lindows). El Mozilla Composer es el editor que el paquete de Mozilla trae para todas las plataformas en las que es posible su ejecucin y tambin est bastante bien, es WYSIWYG pero tiene el problema de que muchas veces aade demasiado cdigo extra a nuestras pginas. Por lo general las ventajas de un WYSIWYG slo se ven cuando uno se est iniciando en la programacin web, ms tarde se controla todo mucho ms desde un editor corriente, habiendo mucha gente que las programa desde VI, nano o joe.

    Para instalar bluefish en nuestro escritorio, ya sea GNOME, KDE, XFCE u otro gestor de ventanas cualquiera seguirmos los pasos que hemos dado para instalar PHP, es decir, iremos a una consola o sacaremos un terminal y nos haremos superusuarios (root).

    'su -'

    Si hace falta haremos un apt-get update y si no instalaremos directamente 'bluefish':

    'apt-get install bluefish'

    Si estamos en GNOME o KDE veremos que en el men correspondiente aparecer el programa Bluefish, en XFCE podemos lanzarlo va consola o terminal o desde la barra de ejecucin.

  • Curso PHP-MySQL

    12/54

    RFERENCIAS:

    Pgina web de gPHPEdit Pgina web de Bluefish Pgina web de NVu Pgina web de Mozilla

    Sintaxis, variables y operadores

    Un archivo .php no es ms que un HTML con unos caracteres especiales empotrados en la parte del cdigo que queremos que el motor de PHP lo interprete. Los expresiones o etiquetas que permiten al motor reconocer el cdigo que va a ejecutar son tres principalmente , y pares de entrada/salida. Hay otros caracteres que podemos editar en el archivo de configuracin php.ini pero no lo haremos ya que la inmensa mayora de las veces se usa slo una pareja de etiquetas que es la ms estndar y la que nuestros editores bluefish y gPHPEdit reconocen perfectamente coloreando el cdigo, lo que ayuda enormemente a su interpretacin. Para empotrar cdigo en XML o XHTML el formato es obligatorio.

    Como curiosidad, decir que el PHP tambin admite las etiquetas ASP/ASP.NET de entrada-salida de cdigo.

    Primer script en PHP

    Comenzando por el mismo (y odioso) primer programa que todo el mundo hace en todo lenguaje tambin haremos el conocido "HOLA MUNDO". Para hacer este script veremos la primera funcin, la funcin echo que representa en pantalla lo que se introduzca dentro de las comillas, y para finalizar la llamada a cualquier funcin se escribe punto y coma ";", olvidarse el punto y coma es un error muy tpico que todo programador ha sufrido muchas veces, el punto y coma solo se puede obviar al final del cdigo, ya que las etiquetas "?>" tambin indican el final de la funcin.

    Vamos con el ejemplo, primero abrimos los tags (etiquetas) de comienzo de script:

    las comillas se pueden sobrentender si en lugar de sacar a pantalla un texto representamos una variable, el ejemplo quedara as:

    Como vemos, las variables en PHP se declaran con un smbolo dlar delante del nombre de nuestra variable, no hace falta definir el tipo de variable como en otros lenguajes (C, Pascal ...) simplemente se declara sta y se le da un valor.

  • Curso PHP-MySQL

    13/54

    La funcin echo tambin puede sacar por pantalla cdigo HTML, por ejemplo, si queremos que nuestro "HOLA MUNDO" salga en lugar de con la letra predefinida con una Times New Roman a un tamao distinto del predefinido, como el "4", pondremos esto:

    La cuestin de porqu se ponen barras antes de las comillas es simple, lo que queremos es que escriba en pantalla literalmente lo que hay entre las comillas, si ponemos entre medias del texto unas comillas la funcin creer que hasta ese punto es donde tiene que procesar, para evitar esto se ponen las barras delante de las comillas que queremos que procese.

    En PHP tenemos varias maneras de mostrar la salida de una cadena o variable, usaremos echo ya que es muy fcil y se ha comprobado que es ms rpida que las dems otras dos, print, printf. La funcin print sirve slo para imprimir una cadena, mientras que echo es capaz de imprimir varias. La funcin printf es engorrosa por tener que andar definiendo el formato de salida de las variables, ej:

    La insercin de comentarios dentro del cdigo PHP es igual que en C o C++ pudindose comentar una lnea:

    o bien comentndose un prrafo:

    REFERENCIAS:

    (C) PHP Documentation Group echo (C) PHP Documentation Group print (C) PHP Documentation Group printf

  • Curso PHP-MySQL

    14/54

    Instrucciones bsicas

    Como ya hemos dicho PHP es un lenguaje de programacin interpretado por el servidor en el momento de la demanda de carga de una pgina por un usuario.

    La forma de programar en PHP, es muy parecida a C o javascript, lenguajes no desconocidos para nosotros. Para que el contenido no sea slo texto PHP se ve mezclado frecuentemente con etiquetas HTML para que el diseo de la web sea ms atractivo a la vista.

    a vale 1 a NO vale 1

    Vemos en este ejemplo que el HTML y el PHP van mezclados y obtendremos una salida u otra dependiendo del valor que tenga a. Si a=1 la pgina se vera asi:

    a vale 1

    si a es distinto de 1 se vera asi:

    a NO vale 1

    La tendencia actual es a separar el cdigo PHP (programacin) del HTML (diseo), ya que es una labor que hoy hacen personas distintas en un gran proyecto. Eso se consigue con templates o plantillas y con clases, ya veremos como funcionan.

    Tipos de variables

    PHP soporta ocho tipos primitivos.

    Cuatro tipos escalares:

    * boolean (verdadero/falso, s/no, 1/0) se trata como TRUE o FALSE (1 o 0) * integer (nmero entero) * float (nmero en coma-flotante, tambin conocido como 'double') * string (cadena de texto)

  • Curso PHP-MySQL

    15/54

    Dos tipos compuestos:

    * array (matriz de valores) * object (objetos)

    Y finalmente dos tipos especiales:

    * resource (variable especial, que contiene una referencia a un recurso externo) * NULL (variable no tiene valor)

    PHP dispone de funciones que sirven para averiguar en cada momento si una variable es nula o que tipo de dato contiene (gettype($mivar);, is_int($entero) ), pongamos un ejemplo con gettype():

    Esto nos devolver "boolean", sin embargo si ponemos entre comillas ("TRUE") obtendremos la salida "string" ya que no identifica la variable como un booleana sino como una cadena de texto.

    Constantes

    En PHP se pueden definir constantes:

    define ("saluda", "Buenas tardes.");

    En cualquier parte del cdigo saludo siempre va a valer lo mismo, no puede cambiar su valor. Esto es til para informacin esttica pero modificable como rutas a archivos, o cadenas de conexin a bases de datos. No todos los nombres de constantes estan libres PHP dispone de varias constantes predifinidas, por ejemplo PHP_VERSION.

    Como vemos "saludo" no lleva ningn tipo de comillas ni el smbolo $ de variable porque no es una variable normal (podramos tener la variable $saludo) ni queremos que se escriba literalmente "saludo".

  • Curso PHP-MySQL

    16/54

    Estructuras de control

    Las estructuras tpicas de control de flujo son el if/elseif/else, el while y el do ... while, el for y el foreach, el break, el continue y el switch. Cada una de estas estructuras es controlada por una o ms variables.

    if/elseif/else

    La estructura if corresponde al si del pseudocdigo, puede incluir varias variables en la condicin, al igual que elseif que sera un si_no, si en pseudocdigo o tambin acompaada de un else, si_no en pseudocdigo, que no lleva variables o parmetros de control.

    La expresin o variable es evaluada como booleana, es decir, como VERDADERA o FALSA.

    Una tpica estructura de control de este tipo en php podra ser:

    Cuando estas estructuras slo tienen una sentencia implicada en su ejecucin podemos ahorrarnos las llaves:

    pero conviene ponerlos para ver ms claramente cuando se cierra y abre cada estructura. Un error muy frecuente es poner al final del if un punto y coma ; lo que invalida el control de la estructura.

  • Curso PHP-MySQL

    17/54

    $variable = "NO"; if($variable == "SI"); //esto no funcionar echo "La variable vale SI";

    ?>

    El echo se ejecutar siempre independientemente de la estructura de control.

    REFERENCIAS:

    (C) PHP Documentation Group if (C) PHP Documentation Group else (C) PHP Documentation Group elseif

    while

    La estructura while corresponde al mientras del pseudocdigo, es controlada por una variable de condicin. El comportamiento es igual al que toman estos bucles en C, siendo el tipo de bucle ms fcil de implementar.

    while (parametro) sentencia

    La estructura while le dice a PHP que ejecute la o las sentencias anidadas dentro de su campo de control mientras la variable o parmetro de control sea verdadera/o. El valor de la variable o parmetro de control se evala al principio del bucle antes de ejecutar las sentencias. Si el resultado de la evaluacin es falso la primera vez que se entra en el bucle no se ejecutar ninguna sentencia.

    Como con la estructura if, se pueden anidar varias sentencias dentro del bucle while con llaves o bien con la forma alternativa:

    bien mediante llaves:

  • Curso PHP-MySQL

    18/54

    REFERENCIAS:

    (C) PHP Documentation Group while

    do ... while

    Los bucles do ... while son similares a los bucles while salvo que las condiciones de repeticin del bucle son comprobadas al final del bucle en lugar de al principio. La diferencia principal es que se garantiza la ejecucin del bucle al menos una vez.

    Existe una sla sintaxis para los bucles do ... wile.

    En el ejemplo de arriba, el bucle slo se ejecutar una vez ya que cuando se comprueba la condicin, sta resulta ser falsa:

    $i es igual a '0' y no mayor que '0'

    Este script s que nos hara una cuenta atrs de 10 a 1.

    REFERENCIAS:

    (C) PHP Documentation Group do ... while

    for

    La estructura de control de flujo for corresponde al para de pseudocdigo y est controlada por tres parmetros, uno de comienzo, uno de fin y uno de paso incremental.

    for (expresin1; expresin2; expresin3) sentencia

    La primera expresin ('expresin1') se evala incondicionalmente una vez al principio del bucle. Al comienzo de cada iteracin, se evala 'expresin2'. Si es evaluada como VERDADERA el bucle contina y las sentencias anidadas se ejecutan. Si es evaluada como FALSA la ejecucin del bucle finaliza.

  • Curso PHP-MySQL

    19/54

    Al final de cada iteracin, se evala 'expresin3'.

    Cada una de las expresiones puede estar vaca. Que 'expresin2' est vaca significa que el bucle debera correr indefinidamente (PHP implicitamente lo considera como VERDADERA, al igual que C). Esto puede que no ser tan intil como podra pensarse, puesto que a menudo se quiere salir de un bucle usando una sentencia break condicional en vez de usar la condicin de for.

    Ejemplo tpico de estructura for:

    Con la estructura anterior pasaremos por todos los nmeros del 0 al 9, si queremos incluir el 10 cambiaramos el menor_que por un menor_que o igual_que:

    for ($contador=0; $contador

    aunque procuraremos usar la forma de declarar con llaves ya que est ms extendida y en un cdigo amplio las llaves ayudan mucho a identificar los bucles.

    REFERENCIAS:

    (C) PHP Documentation Group for

    foreach

    La construccin foreach es un mtodo construido especficamente para operar sobre matrices y vectores, esto facilita mucho la utilizacin de este tipo de variables. La

  • Curso PHP-MySQL

    20/54

    sentencia devuelve un error si se usa sobre cualquier tipo de datos que no sean matrices o vectores.

    Hay dos posibles sintaxis para foreach:

    foreach(expresion_vector as $valor) sentencia foreach(expresion_vector as $llave => $valor) sentencia

    Cada una de las sintaxis recorre uno a uno los elementos que forman el array dado por expresion_vector. En cada iteracin, el valor almacenado en expresion_vector se asigna a $valor, de forma que al finalizar el bucle todos los elementos de expresion_vector quedar almacenado en $valor.

    La segunda sintaxis hace lo mismo, salvo que slamente asignar la clave del elemento que est recorriendo en ese momento en la variable $llave. Cuando nos referimos a la clave del elemento estamos haciendo referencia a un array multidimensional en el que los elementos almacenados estn especificados en distintos campos. Esto resulta muy til cuando almacenamos elementos en un array que tienen distintos parmetros que interesan ser referenciados de forma distinta (un buen ejeplo sera una agenda telefnica en el que podramos distinguir la clave nombre y la clave telfono).

    Cuando foreach comienza por primera vez a ejecutarse, el puntero interno a la matriz o vector se reinicia automticamente al primer elemento de la matriz. Esto hace que no sea necesario llamar a reset() antes de un bucle foreach. La estructura foreach trabaja con una copia de la matriz y no con ella en s, por eso el puntero de la lista no se modifica a diferencia de la estructura each(), adems los cambios en el elemento de la matriz devuelto no afectan a la matriz original.

    Ejemplo de uso de foreach:

    En este ejemplo los dos scripts hacen lo mismo, pero como vemos es ms sencillo el implementado con foreach ya que no tenemos que acordarnos de resetear el vector.

    Otros ejemplos ms completo de foreach:

  • Curso PHP-MySQL

    21/54

    // foreach ejemplo 1: slo valor $a = array(1, 2, 3, 17);

    foreach($a as $v) { echo "Valor actual de \$a: $v."; }

    ?>

  • Curso PHP-MySQL

    22/54

    REFERENCIAS:

    (C) PHP Documentation Group foreach

    break

    La sentencia break hace que se finalice una estructura de control, slo es aplicable en bucles for, while, o switch. Accepta un parmetro opcional, el cual determina de cuantas estructuras de control hay que escapar.

    Ejemplo de uso de break:

    Al ejecutar este script veremos que se para en los valores "5" y "10", si queremos comprobar todos los valores slo tendremos que introducir una pequea modificacin al script entre el while y el switch:

    while (++$i) { echo "$i"; switch ($i) {

    La mayora de las veces break se utiliza junto con switch y sin el parmetro opcional.

    REFERENCIAS:

    (C) PHP Documentation Group break

    continue

    La sentencia continue se usa dentro de la estructura de un bucle para saltar el resto de la iteracin actual del bucle y continuar la ejecucin al comienzo de la siguiente iteracin.

    Hay que tener en cuenta que en PHP switch es considerada como una estructura de bucle por continue.

    continue accepta un parmetro opcional, el cual determina cuantos niveles (bluces) hay que saltar antes de continuar con la ejecucin.

  • Curso PHP-MySQL

    23/54

    En bucle while que tienen un "1" dentro, es equivalente a poner TRUE y se refiere a la expresin del primer 'while', ser menor que 5, si cambiamos el "1" por un "0" lo que pasara es que no se ejecutara ninguno de los dos bucles y s los dos echo(s) que estn debajo. Realmente la estructura continue se usa muy poco en scripts normales o de programadores noveles.

    REFERENCIAS:

    (C) PHP Documentation Group continue

    switch

    La sentencia switch es equivalente a una serie de sentencias if en la misma expresin. En muchas ocasiones se quiere comparar la misma variable (o expresin) con nuchos valores diferentes, y ejecutar una parte de cdigo distinta dependiendo de a qu valor es igual. Para ello sirve la sentencia switch.

    Nota: Tener en cuenta que al contrario que otros lenguajes de programacin, continue se aplica a switch y funciona de manera similar a break. Si teneis un switch dentro de un bucle y deseais continuar con el paso siguiente en el bucle externo, usar continue 2.

    Los siguientes dos ejemplos son dos modos distintos de escribir la misma cosa, uno usa una serie de sentencias if, y el otro usa la sentencia switch:

  • Curso PHP-MySQL

    24/54

    echo ""

    switch ($i) { case 0: echo "i es igual a 0"; break; case 1: echo "i es igual a 1"; break; case 2: echo "i es igual a 2"; break; }

    ?>

    Es importante entender cmo se ejecuta la sentencia switch para evitar errores. La sentencia switch ejecuta lnea por lnea (realmente, sentencia a sentencia). Al comienzo, no se ejecuta cdigo, slo cuando se encuentra una sentencia case con un valor que coincide con el valor de la expresin switch PHP comienza a ejecutar las sentencias. PHP contina ejecutando las sentencias hasta el final del bloque switch, o la primera vez que vea una sentencia break. Si no se escribe una sentencia break al final de una lista de sentencias case, PHP seguir ejecutando las sentencias del siguiente case. Por ejemplo:

    Aqu, si la variable $i es igual a '0', PHP ejecutara todas las sentecias echo. Si la variable $i es igual a '1', PHP ejecutara las ltimas dos sentencias echo y slo si $i es igual a '2', se obtendra la conducta 'esperada' y solamente se mostrara 'i es igual a 2'. As, es importante no olvidar las sentencias break, incluso aunque pueda querer evitar escribirlas intencionadamente en ciertas circunstancias.

    En una sentencia switch, la condicin se evala slo una vez y el resultado se compara a cada sentencia case. En una sentencia elseif, la condicin se evala otra vez. Si la condicin es ms complicada que una comparacin simple y/o est en un bucle estrecho, un switch puede ser ms rpido.

    La lista de sentencias de un case puede tambin estar vaca, lo cual simplemente pasa el control a la lista de sentencias del siguiente case.

  • Curso PHP-MySQL

    25/54

    case 0: case 1: case 2: echo "i es menor que 3, pero no es negativo"; break; case 3: echo "i es 3"; }

    ?>

    Un caso especial es el default case. Este case coincide con todo lo que no coincidan los otros case. Por ejemplo:

    La expresin case puede ser cualquier expresin que se evale a un tipo simple, es decir, nmeros enteros o en coma flotante y cadenas de texto. No se pueden usar aqu ni matrices/arrays/vectores ni objetos a menos que se conviertan a un tipo simple.

    Tambin existe sintaxis alternativa para switch.

  • Curso PHP-MySQL

    26/54

    REFERENCIAS:

    (C) PHP Documentation Group switch

    Incluyendo archivos include() y require() Si tenemos una o varias pginas en las que queremos que otras pginas sean includas ya que contienen variables o funciones que queremos utilizar, no tenemos por qu escribir en todas ellas las variables, podemos usar las funciones include('archivo') o require('archivo') y automticamente sern incluidas dentro de nuestra pgina, no se muostrar el archivo pero se evala con lo que el script queda ms limpio y podemos hacer uso de ese o esos archivos con sus respectivos scripts, funciones o variables.

    La nica diferencia entre include() y require() es que el primero continuar la ejecucin del script si no encuentra el archivo pedido produciendo un Warning y el segundo no continuar provocando un Error Fatal, por lo que si el archivo es importante para la ejecucin del script utilizaremos la segunda forma.

    Ejemplo de uso:

    Archivo variables.php

    Archivo que llama a variables.php

    Como vemos podemos usar todas las variables que estn en el archivo variables.php. Para llamar al archivo que queramos tanto include() como require() necesitan que ste vaya entre comillas simples o dobles ("archivo" 'archivo') ya que sin ellas obtendremos un error.

    Tambin tenemos la funcin include_once('archivo') y require_once('archivo') cuya nica diferencia con include y require() respectivamente es que si el archivo ya ha sido incluido anteriormente no volver a hacerlo.

  • Curso PHP-MySQL

    27/54

    REFERENCIAS:

    (C) PHP Documentation Group include (C) PHP Documentation Group require (C) PHP Documentation Group include_once (C) PHP Documentation Group require_once

    Funciones

    Una funcin es un conjunto de cdigo agrupado con la intencin de ejecutarse varias veces, o con distintos parmetros o variables.

    Esta funcin puede recibir como parmetros dos variables numricas, las cuales se imprimen por pantalla, para despus hacer la comparacin de mbas. La sentencia especial return sirve para devolver valores despus de la ejecucin de la funcin desde el lugar donde fue invocada. En nuestro ejemplo devuelve true verdadero si argumento1 es menor que argumento2 y falso en el resto de los casos.

    Formas de usar una funcin

    Para ejecutar el cdigo de una funcin simplemente ponemos su nombre y entre parntesis los parmetros que necesita

  • Curso PHP-MySQL

    28/54

    Este pequeo ejemplo junto con la funcin declarada ms arriba imprimir por pantalla lo siguiente.

    Funcin de ejemplo. Argumento 1 vale: 5 Argumento 2 vale: 10 Argumento 1 es menor que Argumento 2

    Devolviendo valores desde funciones return()

    Si en una funcin queremos devolver un valor el modo de hacerlo es mediante la funcin return(parmetro), donde parmetro puede ser smplemente un "1" para indicar que todo fue correctamente, un "0" para indicar un error o una variable donde devolvamos el valor de lo procesado por la funcin.

    Veamos un ejemplo:

    donde $valor es el resultado devuelto por la funcin o bien pasando un parmetro o una variable a la funcin:

    Las funciones pueden ser llamadas desde include() o require() o directamente desde el script principal, no influye a la hora de ejecutar las funciones y devolver los valores.

    REFERENCIAS:

    (C) PHP Documentation Group return

    Clases

    Como peldao inmediatamente superior a las funciones se encuentran las clases en el cdigo PHP. Esto es lo que hace de PHP un entorno orientado a objetos (POO) como los grandes lenguajes de desarrollo (java).

    Ejemplo de una clase sencilla:

  • Curso PHP-MySQL

    29/54

    $this->nombre = $nombre_leido; }

    function saluda() { echo "Hola " . $this->nombre; } }

    ?>

    Esta es una clase muy bsica que, por ejemplo, guardaramos en el archivo miprimeraclase.inc.php Para despus usarla en cuantos documentos necesitemos sin escribirla de nuevo.

    Una clase puede contener constantes, variables funciones y otras clases. Para nuestra primera clase hemos usado una variable $nombre y dos funciones, a una le pasamos una cadena de texto y otra que imprime en salida estandar la frase "Hola $nombre".

    Para usarla en otro documento, la incluimos y creamos una instancia de esa clase de esta forma:

    El cdigo anterior nos mostrara por pantalla Hola Mundo. Lo que hemos hecho es incluir el cdigo de la clase (siempre al principio del cdigo), crear una instancia de la clase miclase pasar una cadena de texto que la clase almacena como $nombre y para terminar mandar la rden de ejecutar la funcin saluda().

    Este ejemplo no es nada productivo, pero ahora imginamos que creamos una clase que iteraccione con una base de datos y se encargue de hacer de contador de visitas, administrar entradas de usuarios, sessiones y tendramos una importante herramienta que ahorrara muchas lneas de cdigo. La potencia de las clases la pone la imaginacin de cada uno.

    Existen en internet muchos sitios con clases php listas para incluir y usas, uno de ellos es www.phpclasses.org, es necesario darse de alta para descargar alguna clase.

    Matrices, arrays o vectores

    Una matriz es un tipo de variable que permitir almacenar mltiples valores en una nica variable. El trmino array ingls significa cadena, y es comunmente utilizado en los lenguajes de programacin al referirnos a vectores o secuencias de datos. Nos referiremos a matrices con el trmino array ya que supone una extrapolacin a varias dimensiones de un vector.

  • Curso PHP-MySQL

    30/54

    Los arrays suponen un gran ahorro en la programacin ya que nos permite tratar de una forma sistemtica secuencias de datos que de otra forma resultaran muy complejos. La sintaxis para construir un array es la siguiente:

    $invierno = array ("Enero", "Febrero", "Marzo");

    Segn esta sintaxis almacenamos en el array $invierno los valores que mandamos a la funcin array. Este array asigna un nmero a cada elemento de forma automtica, comenzando por el cero.

    En el siguiente ejemplo veremos como referenciar los diferentes valores de nuestro array

    Existen otras formas de construir un array y de aadir nuevos elementos. En este caso se almacenan elemento a elemento.

    $invierno[] = "Enero"; $invierno[] = "Febrero"; $invierno[] = "Marzo";

    Este cdigo funciona exactamente igual que el anterior. Aunque parezca una forma un tanto repetitiva y poco eficaz de construir un vector supone unas ventajas cuando los elementos que se almacenan en el vector son producto de la interaccin con el usuario.

    Los elementos se irn almacenando desde el ndice [0]. En este ejemplo Enero ser el elemento 0 y Marzo ser el 2.

    Hay una forma muy til de almacenar informacin a travs de arrays teniendo en cuenta el tipo de informacin que deseamos almacenar. Se tratan de arrays asociativos y consisten en almacenar la informacin a travs de claves que permitirn acceder a la informacin almacenada de forma ms intuitiva. Lo vemos en el siguiente ejemplo: $ficha = array( nombre=>"Gonso", direccion=>"Alamillos", telefono=>"10494676", edad=>"24" );

    La forma de acceder a este array ser a travs de las claves que hemos definido. Por ejemplo, acceder al nombre sera: $ficha[nombre].

    Los arrays multidimensionales nos permitirn construir arrays construidos por otros arrays. Aunque parece un tanto endogmico resulta muy til. Supongamos que queremos hacer una agenda, definiramos el array $agenda de la forma habitual:

  • Curso PHP-MySQL

    31/54

    $agenda = array();

    y rellenamos los datos de forma referenciada por claves:

    $agenda = array( array( nombre=>"Gonso", direccion=>"Alamillos", telefono=>"10494676", edad=>"24"), array( nombre=>"Peggy", direccion=>"Don Sancho", telefono=>"10494665", edad=>"22"), array( nombre=>"Cremy", direccion=>"Don Sancho", telefono=>"1214665", edad=>"25") );

    Para extraer la informacin de los arrays multidimensionales llamaremos al array $agenda con el nmero que corresonda al array que queremos referenciar y la clave que queremos. Por ejemplo, si quieremos obtener el telfono de Peggy lo haramos de la siguiente manera:

    echo $agenda[1][telefono];

    En lo siguientes apartados se explica el bucle foreach que facilita mucho el uso de vectores.

    Ficheros

    De forma muy parecida a C, PHP permite acceder a lectura y escritura de ficheros.

    En PHP hay varias funciones para ste cometido.

    fopen

    fopen -- Abre un fichero o una URL

    Sntaxis:

    int fopen (string nombre_fichero, string modo [, int use_include_path])

    Esta funcin puede abrir un archivo local o remoto. Los protocolos remotos soportados son http y ftp. El modo puede ser:

    r Apertura para slo lectura; ubica el apuntador de archivo al comienzo del mismo.

    r+ Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo del mismo.

    w Apertura para slo escritura; ubica el apuntador de archivo al comienzo de ste y lo trunca a una longitud de cero. Si el archivo no existe, intenta crearlo.

  • Curso PHP-MySQL

    32/54

    w+ Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo de ste y lo trunca a una longitud cero. Si el archivo no existe, intenta crearlo.

    a Apertura para slo escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo.

    a+ Apertura para lectura y escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo.

    x Creacin y apertura para slo escritura; ubica el apuntador de archivo al comienzo de ste. Si el archivo ya existe, la llamada a fopen() fallar devolviendo FALSE y generando un error de nivel E_WARNING. Si el archivo no existe, intenta crearlo. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT en la llamada de sistema open(2) interna. Esta opcin es soportada en PHP 4.3.2 y versiones posteriores, y slo funciona con archivos locales.

    x+ Creacin y apertura para lectura y escritura; ubica el apuntador de archivo al comienzo de ste. Si el archivo ya existe, la llamada a fopen() fallar devolviendo FALSE y generando un error de nivel E_WARNING. Si el archivo no existe, intenta crearlo. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT en la llamada de sistema open(2) interna. Esta opcin es soportada en PHP 4.3.2 y versiones posteriores, y slo funciona con archivos locales.

    fwrite

    fwrite -- Escribe ficheros en modo binario

    Sntaxis:

    int fwrite (int fp, cadena string [, int longitud])

    fwrite() escribe el contenido de cadena al fichero apuntado por fp. Si se da el argumento longitud, la escritura acaba antes de que longitud bytes sean escritos o se alcance el final de string, lo que ocurra primero.

    fread

    fread -- Lee archivos en modo binario

    Sntaxis:

    string fread (int fp, int longitud)

    fread() lee hasta longitud bytes del apuntador de fichero referenciado por fp. La lectura acaba cuando longitud bytes se han leido o se alcanza EOF, lo que ocurra primero.

    A partir de estas tres funciones simples ya podemos realizar el primer ejemplo de acceso a ficheros.

  • Curso PHP-MySQL

    33/54

    Upload de ficheros al servidor

    Otra opcin muy interesante en cualquier script PHP es la posibilidad de subir ficheros al servidor. Necesitamos un formulario HTML que tenga lo opcin de seleccionar fichero y un script PHP que lo recoja: Enviar un fichero:

  • Curso PHP-MySQL

    34/54

    else{ echo "Ocurri algn error al subir el fichero. No pudo guardarse."; } }

    ?>

    Cookies

    Las cookies (galletas) son pequeos archivos que intercambian el navegador web y el servidor. Su finalidad es que el navegador y el servidor intercambinen informacin y el servidor pueda saber cul es el cliente al que debe enviarla.

    Su funcionamiento es muy bsico, el servidor enva un cookie al navegador y este la almacena hasta que caduque o se borre manualmente. Si el servidor durante esa visita a la web o durante otra (puede ser en distintos das) necesita la informacin el navegador se la enva y el servidor la valida.

    Cmo usar las cookies

    El manejo de cookies en PHP se realiza mediante el uso de la funcin setcookie, esta funcin esta disponible a partir de la versin 3 de PHP.

    Sntaxis:

    int setcookie (string Nombre [, string Valor [, int Expire [, stringPath [, string Dominio [, int Secure]]]]])

    Setcookie() define una cookie que es enviada junto con el resto de la informacin de la cabecera(header). Las cookies deben ser enviadas antes de cualquier etiqueta (tag) de html, por lo tanto deberemos realizar la llamada a estas funciones antes de cualquier etiqueta o . Esta es una restriccin de las cookies no de PHP.

    Todos los argumentos excepto el nombre son opcionales.

    Nombre. Nombre de la cookie. Si creamos una cookie solamente con el nombre, en el cliente se eliminar la cookie que exista con ese nombre. Tambin podemos reemplazar cualquier argumento con una cadena vaca ("").

    Value. Valor que almacenar la cookie en el cliente. Expire. El argumento expire es un argumento entero que indica la hora en que se

    eliminara la cookie. Normalmente se usa time() + N. segundos de duracin, para especificar la duracin de una cookie.

    Path. Subdirectorio en donde tiene valor la cookie. Dominio. Dominio en donde tiene valor la cookie. Si ponemos como dominio

    www.domain.com la cookie no se transmite para domain.com, mientras que si ponemos domain.com la cookie se transmite tanto para domain.com como para www.domain.com

    Secure. El argumento secure indica que la cookie solo se transmitir a travs de una conexin segura HTTPS.

  • Curso PHP-MySQL

    35/54

    Ejemplo:

    Para que el script de PHP (el servidor), recupere el valor de la cookie se lee desde el objeto $_COOKIE['nombre_cookie'].

    Ejemplo:

    Sesiones

    Requiere tener las cookies del navegador activadas.

    Las sesiones consisten en mantener datos en un sitio o pgina web a lo largo de un tiempo, tras el cual son destruidos, son ampliamente usados en sistemas de autenticacin y registros.

    El funcionamiento es sencillo, a cada visitante, diferenciados por el navegador que usen, se le asigna un identificador nico llamado session id o identificador de sesin. Este valor es almacenado en una cookie o bien se propaga en la URL y se hace visible al usuario a travs del navegador.

    Cuando un visitante accede a una web que tiene scripts para tratar las sesiones, PHP comprobar si la variable session.auto_start est puesto a 1 o bien se puede activar mediante session_start() y/o session_register(), este ltimo se considera obsoleto, si ya tiene un identificador de sesin se recrearn las variables que se haban guardado anteriormente.

    REFERENCIAS:

    (C) PHP Documentation Group sesiones

    Inicio de sesin

    Para iniciar una sesin que no tenga nombre concreto se ha de llamar a la funcin session_start();

  • Curso PHP-MySQL

    36/54

    para llamar a una sesin con un nombre concreto deberemos llamar antes a la funcin session_name([cadena]);

    aunque lo anterior no se suele usar para sitios pequeos o sitios que no deban manejar muchas variables de sesin y deban distinguir entre unas sesiones y otras.

    REFERENCIAS:

    (C) PHP Documentation Group session-start (C) PHP Documentation Group session-name

    Variables de sesin

    Las variables de una sesin son globales, es decir, en cualquier momento de un script, de una pgina o de un sitio web entero podemos llamarlas si tenemos la sesin activa. Para registrar una variable de sesin antiguamente se usaba session_register([cadena]); o bien $HTTP_SESSION_VARS[cadena].

    pero est obsoleto y se prefiere siempre el uso de $_SESSION["variable"]

    Son tratadas como variables normales y corrientes, pueden tener valores booleanos, enteros, cadenas, etc.

    Para destruir una variable de sesin concreta se usa unset($variable):

  • Curso PHP-MySQL

    37/54

    pero si queremos destruir todas las variables de sesin a la vez usaremos session_unset():

    REFERENCIAS:

    (C) PHP Documentation Group registro de variables de sesin (C) PHP Documentation Group destruccin de variables de sesin (C) PHP Documentation Group destruccin todas las variables de sesin

    Cierre de sesin

    El cierre de una sesin se hace mediante la funcin session_destroy(); que destruye todos los datos guardados en una sesin pero no destruye ninguna de las variables globales asociadas a la sesin o a las cookies.

    La funcin devuelve TRUE si se ha destruido la sesin correctamente y FALSE si ha habido algn problema al intentarlo.

    REFERENCIAS:

    (C) PHP Documentation Group session-destroy

  • Curso PHP-MySQL

    38/54

    MySQL Qu es una base de datos relacional? Una base de datos es una estructura ordenada de informacin. Puede ir desde una lista de la compra hasta una galera de la ms mplia informacin corporativa de una empresa. Para poder acceder a stos datos y al equipo que los contiene se necesita un gestor/servidor de bases de datos como por ejemplo MySQL.

    Una base de datos relacional, entonces es una aplicacin capaz de almacenar grandes cantidades de informacin y de ofrecerla de manera rpida con capacidad para combinar y ordenar los datos, ajustndose a los requerimientos del usuario.

    SQL es el acrnimo de Structured Query Language (Lenguaje estructurado de consultas). Este es un estndar que utilizan las bases de datos relacionales para insertar, actualizar, eliminar y recuperar informacin. Existen muchas bases de datos relacionales, las ms difundidas son MySQL, Oracle, SQL Server y PostgresSQL. Cada una de ellas es compatible con el estndar SQL, aunque cada una de ellas tiene un juego de instrucciones propias.

    La estructura interna de una base de datos relacional est basada en tablas y a su vez en filas o registros, por ejemplo:

    Tabla: Productos

    id producto precio 1 Pan 0.45 2 Leche 0.80 3 Aceite 1.40

    En este pequeo ejemplo tenemos una tabla llamada Productos que contiene tres columnas: id (identificador), producto y precio. Los datos de la tabla se leen por filas, por ejemplo sabemos que el producto pan tiene un precio de 0.45.

    Tipos de datos en MySQL Igual que veamos en PHP y en otros lenguages de programacin en MySQL hay varios tipos de datos:

    TINYINT, SMALLINT, MEDIUMINT, INT y BIGINT Nmeros enteros. Se diferencian en el rango, es decir, en el mayor nmero representable en un campo.

    FLOAT y DOUBLE Nmero de punto flotante (decimal).

    DATE Un campo de fecha con formato AAAA-MM-DD.

  • Curso PHP-MySQL

    39/54

    DATETIME Campo de fecha y hora. Su formato es AAAA-MM-DD HH:MM:SS.

    CHAR Campo alfanumrico.

    VARCHAR Campo alfanumrico de longitud variable.

    BLOB y TEXT Campos alfanumricos largos.

    MEDIUMBLOB y MEDIUMTEXT Anlogo a los campos BLOB y TEXT. Longitud mxima 16777215 caracteres.

    LONGBLOB y LONGTEXT Anlogo a los campos BLOB y TEXT. Longitud mxima 4294967295 caracteres.

    En todos los tipos de datos (menos en las fechas) es necesario especificar el tamao del campo y para datos numricos si es con signo o sin signo, la diferencia de esto ltimo es que los campos sin signo UNSIGNED tienen el doble de rango que los que usan signo SIGNED

    REFERENCIAS:

    (C) Documentacin MySQL: Tipos de datos

    Instalando MySQL en nuestro servidor Tanto en sistemas Linux como Windows podemos usar este servidor de bases de datos.

    Para instalar MySQL en los equipos que usaremos debemos ejecutar como usuario root: # apt-get update # apt-get install mysql-server mysql-client php4-mysql libapache2-mod-php

    Como interfaz grfico para la creacin de tablas usaremos phpmyadmin o mysql-admin/mysql-query-browser, desde consola podemos usar comandos, instalando el paquete mysql-client

    # apt-get install phpmyadmin # apt-get install mysql-admin mysql-query-browser # apt-get install mysql-client

    Una vez instalado correctamente el sistema por defecto arranca el servicio de mysql y podremos conectarnos a l.

    Creando una base de datos y una tabla

    En las instalaciones por defecto existe un usuario de la base de datos: root, SIN CONTRASEA. Tan pronto como podamos es conveniente asignar contrasea a ese

  • Curso PHP-MySQL

    40/54

    usuario y crear otro con menos privilegios (sta es una de las filosofas de GNU/Linux). En las ltimas versiones de mysql no se permite el acceso del usuario root a la base de datos, nada ms que para administrarla.

    Modo phpmyadmin

    Desde un navegador web entramos en la direccin: http://localhost/phpmyadmin (*) e ingresamos con usuario root y sin clave. Nada ms entrar veremos un aviso en rojo indicndonos que el usuario no tiene clave, picando en ese enlace nos permitir cambiarla.

    Acto seguido en el menu principal, seccin privilegios crearemos un nuevo usuario con el nombre que queramos y que se conecte slo desde la mquina local. Por defecto MySQL viene configurado para no permitir conexiones externas. Le daremos permiso para ejecutar consultas y crear bases de datos.

    Crearemos una base de datos nueva (Men principal) de nombre prueba1, a continuacin en el desplegable izquierdo podremos seleccionar la base de datos que usaremos.

    Creamos una nueva tabla llamada tabla1 con 3 campos. A continuacin especificaremos que tipos de variables vamos a usar para cada una de las tres columnas o campos.

    Campo: id, tipo TINYINT, atributos UNSIGNED, extra auto_increment y marcaremos la casilla Primaria (la que tiene el smbolo de la llave)

    Campo: producto, tipo VARCHAR, tamao 255

    Campo: precio, tipo FLOAT, atributos UNSIGNED

    Pulsamos el botn guardar y obtendremos, si todo ha ido bien, el cdigo SQL que se ejecuta para crear esa tabla: CREATE TABLE `tabla1` ( `id` tinyint(3) unsigned NOT NULL auto_increment, `producto` varchar(255) NOT NULL default , `precio` float unsigned NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;

    (*)Si no pudieramos acceder a esta web tendremos que teclear: # ln -s /usr/share/phpmyadmin /var/www/

    Modo mysql-admin/mysql-query-browser

    Ejecutamos desde consola (como usuario) el comando mysql-admin, en la pantalla que nos sale ponemos los siguientes datos de conexin:

  • Curso PHP-MySQL

    41/54

    Server hostname: localhost Username: usuario Password: pass Port: 3306

    Al pulsar en botn Connect obtendremos el panel de control del servidor de bases de datos local. mysql-admin no permite la creacin de bases de datos pero s la monitorizacin y modificacin. Para el trabajo de crer y modificar usaremos mysql-query-browser

    Ejecutamos desde consola (como usuario) el comando mysql-query-browser, en la pantalla que nos sale ponemos los siguientes datos de conexin:

    Server hostname: localhost Username: usuario Password: pass Port: 3306

    Al pulsar en botn Connect obtendremos el panel de control de consultas sobre la base de datos. A la derecha tendremos las bases de datos que contiene nuestro servidor (Schemata). Pulsando en una base de datos se desplegarn las tablas que contiene, y pulsando nuevamente en la tabla veremos los registros despus de pulsar EXECUTE En la parte inferior derecha tenemos las consultas y funciones que podemos usar en este programa con ayuda incluida.

    Modo desde consola

    Aunque es el modo ms tosco funciona siempre y a veces es til cuando no disponemos de phpmyadmin, el servidor no tiene instalado un servidor grfico o lo hacemos en un equipo remoto conectados por ssh, por ejemplo.

    Para crear la nueva base de datos, ejecutamos: $ mysqladmin -uroot -p create prueba2

    Despus de ingresar la contrasea (si el usuario root no tiene contrasea no poner el modificador -p) ya se habr creado la base de datos nueva. Para ver las tablas de una base de datos:

    $ mysqlshow -uroot -p prueba2 Enter password: Database: prueba2 +--------+

    | Tables | +--------+

    +--------+

    De un modo semi-grfico podremos usar este comando para ver tablas o el contenido de las mismas. Crear un usuario:

    mysql> GRANT USAGE ON * . * TO 'usuario'@'localhost' IDENTIFIED BY 'password'; mysql> GRANT SELECT , INSERT , UPDATE , DELETE, CREATE, DROP ON `prueba` . * TO 'usuario'@'localhost';

  • Curso PHP-MySQL

    42/54

    Ahora debemos crear una tabla e indicar su formato:

    $ mysql -uusuario -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 189 to server version: 4.0.23_Debian-7-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> use prueba2; Database changed

    mysql> create table `tabla2`( -> `id` tinyint(3) unsigned NOT NULL auto_increment, -> `producto` varchar(255) NOT NULL default , -> `precio` float unsigned NOT NULL default '0', -> PRIMARY KEY (`id`) -> ) TYPE=MyISAM AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.03 sec) mysql> exit Bye

    vemos que bsicamente hemos copiado la estructura que us phpmyadmin para crear la otra tabla.

    NOTA IMPORTANTE: Las comillas que indican los nombres de los campos son comillas francesas (comilla grave), la tecla en un teclado espaol est a la derecha de la P y se obtiene presionando una vez la comilla y a continuacin un espacio.

    Para ver si se creo correctamente:

    $ mysqlshow -uusuario -p prueba2 Enter password: Database: prueba2 +--------+

    | Tables | +--------+

    | tabla2 | +--------+

    $ mysqlshow -uusuario -p prueba2 tabla2 Enter password: Database: prueba2 Table: tabla2 Rows: 0

    +----------+---------------------+------+-----+---------+----------------+---------------------------------+

    | Field | Type | Null | Key | Default | Extra | Privileges | +----------+---------------------+------+-----+---------+----------------+---------------------------------+

    | id | tinyint(3) unsigned | | PRI | | auto_increment | select,insert,update,references | | producto | varchar(255) | | | | | select,insert,update,references | | precio | float unsigned | | | 0 | | select,insert,update,references | +----------+---------------------+------+-----+---------+----------------+---------------------------------+

    Consultas MySQL En cualquier base de datos es necesario leer, modificar, aadir y borrar datos, de sta afirmacin se obtienen cuatro tipos de consultas:

    Consultas de insercin

    Tenemos nuestra tabla pero an no contiene datos, la forma de introducir datos nuevos es:

  • Curso PHP-MySQL

    43/54

    INSERT INTO nombre_tabla (columna1,columna2,...,columnaN) VALUES (valor1,valor2,...,valorN)

    Los nombres de los campos se pueden omitir siempre y cuando el nmero de valores coincida con el nmero de campos totales de la tabla.

    Un ejemplo para nuestra tabla de la compra: $ mysql -uusuario -p

    mysql> INSERT INTO tabla2 (`producto`,`precio`) VALUES ('pan', '0.45'); Query OK, 1 row affected (0.10 sec)

    mysql> INSERT INTO tabla2 (`producto`,`precio`) VALUES ('leche', '0.80'); Query OK, 1 row affected (0.10 sec)

    mysql> INSERT INTO tabla2 (`producto`,`precio`) VALUES ('aceite', '1.80'); Query OK, 1 row affected (0.10 sec)

    Consultas de seleccin

    Extrae datos de una o varias tablas, combinando, ordenando o filtrando cuando sea necesario determinados criterios. La sintaxis es la siguiente:

    SELECT expresin [FROM tabla_o_tablas] [[modo_de_unin] JOIN tabla_o_tablas ON expresin_where] [WHERE expresin_where] [ORDER BY columna] [ASC o DESC] [LIMIT [lmite,] registros]]

    Usando nuestro ejemplo anterior: $ mysql -uusuario -p

    mysql> select * from tabla2; +----+----------+--------+

    | id | producto | precio | +----+----------+--------+

    | 1 | pan | 0.45 | | 2 | leche | 0.8 | | 3 | aceite | 1.4 | +----+----------+--------+

    3 rows in set (0.02 sec)

    mysql> exit Bye

    Una calculadora con MySQL: $ mysql -uusuario -p

    mysql> select 5*9; +-----+

  • Curso PHP-MySQL

    44/54

    | 5*9 | +-----+

    | 45 | +-----+

    1 row in set (0.06 sec)

    La consulta SELECT admite varias funciones especiales:

    CONCAT: Junta columnas obteniendo como resultado una nica columna. Ejemplo:

    mysql> SELECT CONCAT('El producto ',`producto`,' vale ',`precio`,' euros') as todo FROM tabla2;

    +-----------------------------------+

    | todo | +-----------------------------------+

    | El producto pan vale 0.45 euros | | El producto leche vale 0.8 euros | | El producto aceite vale 1.4 euros | +-----------------------------------+

    3 rows in set (0.00 sec)

    COUNT: Cuenta el nmero de registros o filas en una base de datos. Ejemplo: mysql> SELECT COUNT(`producto`) FROM tabla2; +-------------------+

    | COUNT(`producto`) | +-------------------+

    | 3 | +-------------------+

    1 row in set (0.00 sec)

    SUM, AVG, MAX, MIN: Devuelven respectivamente la suma, media, mximo y mnimo del campo especificado. Ejemplo:

    mysql> SELECT SUM(`precio`) as total, AVG(`precio`) as media, MAX(`precio`) >as maximo, MIN(`precio`) as minimo FROM tabla2; +-----------------+------------------+-----------------+------------------+

    | total | media | maximo | minimo | +-----------------+------------------+-----------------+------------------+

    | 2.65 | 0.883 | 1.4 | 0.45 | +-----------------+------------------+-----------------+------------------+

    1 row in set (0.00 sec)

    LIMIT: Muy importante cuando tenemos muchos registros, el rendimiento de una lectura de una tabla de ms de 3.000 registros es apreciablemente ms

  • Curso PHP-MySQL

    45/54

    lento, ms de 10.000 registros (depende de la potencia del servidor) puede llegar a colgarlo. Lleva asociado dos nmeros, el primero indica el primer registro a mostrar (se empieza a contar desde 0) y el segundo el nmero de registros. Por ejemplo, para mostrar dos registros a partir del segundo pondramos:

    mysql> SELECT * FROM tabla2 LIMIT 1,2; +----+----------+--------+

    | id | producto | precio | +----+----------+--------+

    | 2 | leche | 0.8 | | 3 | aceite | 1.4 | +----+----------+--------+

    2 rows in set (0.00 sec)

    ORDER BY: Ahora que sabemos como leer registros vamos a ordenarlos. Esta sentencia por defecto usa el rden ASCendente, pero tambin se puede usar DESCendente. Se pueden usar varios nombres de campos para que compare el primero y en caso de ser iguales el segundo, compara caracteres y nmeros. Ejemplo:

    mysql> SELECT * FROM tabla2 ORDER BY `precio` DESC; +----+----------+--------+

    | id | producto | precio | +----+----------+--------+

    | 3 | aceite | 1.4 | | 2 | leche | 0.8 | | 1 | pan | 0.45 | +----+----------+--------+

    3 rows in set (0.00 sec)

    WHERE: Es la expresin que permite filtrar la consulta, es de las ms usadas en lenguaje SQL. Permite operadores de igualdad, comparacin (mayor >, menor que SELECT * FROM tabla2 WHERE `precio` SELECT * FROM tabla2 WHERE `producto` LIKE '%cei%'; +----+----------+--------+

    | id | producto | precio | +----+----------+--------+

    | 3 | aceite | 1.4 | +----+----------+--------+

    1 row in set (0.00 sec)

  • Curso PHP-MySQL

    46/54

    JOIN: Consulta de unin para seleccionar datos de varias tablas. Las uniones pueden ser por la izquierda LEFT, por la derecha RIGHT, e internas INNER. El ejemplo aqu es ms dificil ya que necesitamos dos tablas:

    mysql> SELECT tabla1.campo1 tabla1.campo2 tabla2.campo1 tabla2.campo2 > LEFT JOIN tablas tabla2 ON tabla1.campo1=tabla2.campo1;

    Este ejemplo tan enrevesado lo que hace es tomar dos campos de tabla1 y dos campos de tabla2 y mostrara los datos de una supuesta tabla llamada tablas donde los campos1 de las anteriores son los mismos.

    Consulta de Actualizacin/Modificacin

    UPDATE: Con esta consulta modificamos el valor de los registros, su sintaxis es:

    UPDATE tabla SET campo1=valor1, campo2=valor2 .... WHERE filtro

    Podemos modificar el valor de una campo o de varios a la vez y modificar toda la tabla o slo aquellos registros que cumplan un determinado filtro WHERE. Ejemplo: mysql> UPDATE tabla2 SET producto='Aceite de Oliva' WHERE producto='Aceite'; Query OK, 1 row affected (0.09 sec) Rows matched: 1 Changed: 1 Warnings: 0

    mysql> SELECT * FROM tabla2; +----+-----------------+--------+

    | id | producto | precio | +----+-----------------+--------+

    | 1 | pan | 0.45 | | 2 | leche | 0.8 | | 3 | Aceite de Oliva | 1.4 | +----+-----------------+--------+

    3 rows in set (0.00 sec)

    Consultas de Eliminacin

    DELETE: Consulta que elimina todos o algn registro de una tabla. Su sntaxis es:

    DELETE FROM tabla WHERE filtro

    Igual que antes la condicin WHERE es opcional. Ejemplo: mysql> DELETE FROM tabla2 WHERE precio SELECT * FROM tabla2; +----+-----------------+--------+

    | id | producto | precio | +----+-----------------+--------+

    | 3 | Aceite de Oliva | 1.4 | +----+-----------------+--------+

    1 row in set (0.00 sec)

  • Curso PHP-MySQL

    47/54

    Uso de bases de datos desde cdigo PHP PHP permite iteraccionar con bases de datos relacionales como son Oracle, MySQL, SQLServer, mSQL, PostgreSQL, etc.

    Nos vamos a centrar en MySQL, aunque la sntaxis es similar en otras bases de datos.

    Un buen punto de referencia para todas las funciones que vamos a usar se encuentra en:

    referencia MySQL en PHP

    Funciones MySQL PHP dispone de varias funciones para el acceso a datos, una es la encargada de realizar la conexin y otras en leer los datos, por ejemplo.

    mysql_pconnect

    Sntaxis:

    mysql_pconnect(servidor, login, password)

    Abre una conexin persistente con la base de datos, el tipo de conexin puede ser local, por red, o por socket, ejemplos:

    Por comodidad usaremos la primera, ya que el nombre especial localhost siempre es la mquina local. El servidor mysql por defecto slo permite conexiones desde el host local (aunque se puede activar las conexiones remotas). Archivo /etc/mysql/my.cnf # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 192.168.0.3

    Antes exista una lnea skip-networking que con descomentarla ya podamos acceder desde el exterior, ahora se usa la IP desde la que se quieren realizar conexiones (127.0.0.1 slo local)

    Esta funcin devuelve un tipo de dato especial llamado recurso, si la conexin falla devuelve un error. Si queremos llevar un control de errores en nuestras web hechas con PHP deberemos leer los errores en los puntos donde sea posible detectarlos. Ejemplo:

  • Curso PHP-MySQL

    48/54

    mysql_select_db

    Sntaxis:

    mysql_select_db (base_de_datos, identificador_de_conexin)

    Una vez establecida la conexin con el servidor deberemos indicar desde qu base de datos queremos leer (o modificar/borrar) datos. Esta funcin selecciona la base de datos activa para la conexin actual, y es similar a la sentencia use base_de_datos, que veamos en modo consola. Ejemplo:

    Si no especificamos identificador, esta funcin usa el ltimo devuelto por la funcin mysql_pconnect.

    mysql_query

    Sntaxis:

    mysql_query (consulta, identificador_de_conexin)

    Es la funcin encargada de hablar con el servidor MySQL, es decir, enviar acciones como insertar, borrar, o leer. Ejemplo:

  • Curso PHP-MySQL

    49/54

    mysql_fetch_row

    Sntaxis:

    mysql_fetch_row (recurso_devuelto_por_la_consulta)

    Recupera los registros de la base de datos y los devuelve como un array (vector). Si lo llamamos varias veces ir devolviendo los siguientes registros hasta que no haya ms, en este caso devuelve FALSE. Ejemplo:

    Para leer todos los valores devueltos por una consutla se suelen usar estructuras de control del tipo while, foreach, for. Ejemplo:

    El resultado de este script debera ser:

    1---pan---0.45---

    2---leche---0.8---

    3---aceite---1.8---

    mysql_result

    Sntaxis:

  • Curso PHP-MySQL

    50/54

    mysql_result ( id_resultado, numero_de_fila [, mixed campo] )

    Devuelve el contenido de una celda de resultado de la ejecucin de una consulta MySQL.

    Este script debera imprimir por pantalla aceite

    mysql_escape_string

    Sntaxis:

    mysql_escape_string (cadena)

    Esta funcin es una de las ms importantes en el tema de seguridad en bases de datos y un fenmeno conocido como SQL Injection, basado en pasar caracteres especiales en consultas mysql con el fin de saltar restricciones como usuario o contrasea o incluso BORRAR NUESTRA BASE DE DATOS. vamos a poner un ejemplo de una consulta que valida un usuario cuyos datos estan guardados en una tabla.

  • Curso PHP-MySQL

    51/54

    Ahora imaginamos que ponemos:

    http://localhost/prueba.php?username=user&password=1%27%20OR%20TRUE SELECT * FROM usuarios WHERE usuario='user' AND password='1' OR TRUE'

    Con lo que la consulta que se ejecutara tendra muy mala pinta, el usuario se logueara con el nombre y la contrasea del primer usuario registrado (administrador?) sin necesidad de saber la clave. Puede parecer de risa pero existen algunas web con estos fallos y mucho peor, los webmaster los desconocen.

    Para evitarlo todos los datos que leamos de un formulario a travs de $_GET o $_POST deberemos filtrarlos con la funcin mysql_escape_string o mysql_real_escape_string:

  • Curso PHP-MySQL

    52/54

    Para instalar apache sobre Windows entraremos en uno de los mirror (en Espaa rediris) y buscaremos los binarios del servidor web:

    http://apache.rediris.es/httpd/binaries/win32/

    En marzo de 2.005 hay disponibles dos versiones:

    Apache 1.3.3 Apache 2.0.53

    Descargaremos el archivo .exe o .msi que corresponda y lo instalaremos como cualquier otro programa de windows. Posiblemente nos instale apache como servicio de inicio (Windows NT, 2000, XP) o lo lance al iniciar sesin (Windows 98, Me).

    Instalacin de MySQL en Windows MySQL es un servidor de bases de datos relacional. Es uno de los servidores de bases de datos ms rpidos a la hora de generar consultas simples.

    Para su instalacin en windows de manera similar a apache vamos a su web y escojemos el mirror ms cercano (rediris de nuevo) http://mysql.rediris.es/

    Tenemos que descargar (Seccin Windows) el paquete Windows Essentials (x86) o Windows (x86), la diferencia de mbos adems del tamao de la descarga es que el primero trae lo bsico para funcionar y el segundo es el completo.

    Herramientas para trabajar con MySQL en Windows phpmyadmin, incluido en XAMMP, que veremos ms tarde, es un gestor de

    bases de datos mysql programado en php, con el que podremos gestionar usuarios, bases de datos, tablas, hacer consultas, eliminar campos, etc... Slo necesitamos un navegador para usarlo.

    mysql-admin y mysql-query-browser, nueva versin del gestor de bases de datos mysql, con una apariencia bastante agradable, capaz de hacer las misma cosas que phpmyadmin y adems generar backups de la base de datos programados, replicado, monitorizar el estado del servidor, e incluso configurar el mismo si el usuario que lo ejecuta tiene los permisos apropiados.

    Si queremos podemos gestionar tablas, y consultas desde programas como Excel o Access con el conector ODBC de mysql.

    Instalacin completa en Windows

    Debido a la "dificultad" de instalar todos los servidores que necesitemos y ponerlos a funcionar en conjunto, se han contruido paquetes para facilitar el proceso de montaje de un servidor web, base de datos, correo, ftp, etc... en un slo paquete.

  • Curso PHP-MySQL

    53/54

    AppServ

    AppServ es un paquete completo que facilita la instalacin, configuracin e interoperabilidad de Apache, PHP y MySQL.

    El paquete completo contiene:

    Apache PHP MySQL Motor Zend Optimizer phpMyAdmin

    Hay dos versiones de desarollo, una basada en Apache 1.3 y otra en Apache 2.0, adems la primera trae PHP 4.x y la segunda PHP 5.x que trae un motor Zend ms potente y mejor soporte para programacin orientada a objetos.

    Este es un paquete bsico para comenzar a trabajar con pginas web, PHP y SQL, pero si deseamos tener ms caractersticas o lenguajes de programacin para nuestras pginas y no sabemos muy bien como aadir mdulos, deberemos irnos a algn otro paquete.

    Web del proyecto

    http://www.appservnetwork.com/

    XAMMP

    Uno de los paquetes ms completos es XAMMP, que incluye:

    Apache MySQL PHP + PEAR Perl Mdulos de apache (mod_php, mod_perl, mod_ssl) OpenSSL phpMyAdmin Webalizer Mercury Mail Transport System for Win32 and NetWare Systems v3.32 JpGraph FileZilla FTP Server mcrypt Turck MMCache SQLite WEB-DAV + mod_auth_mysql

    Est basado en la filosofa de descomprimir y ejecutar, y con unos pocos clics podremos tener funcionando todo un servidor.

    Para descargar XAMMP podemos hacerlo desde http://www.apachefriends.org/en/xampp-windows.html#641

  • Curso PHP-MySQL

    54/54

    Para instalarlo se debe descomprimir en la raiz de una particin, por ejemplo C:\ y seguir las instrucciones que tiene el archivo readme.

    Web del proyecto

    http://www.apachefriends.org/en/xampp.html

    Complementos phpMyAdmin

    CMS

    CMS es el acrnimo de Content Management System y es un conjunto de scripts PHP que trabajan de forma conjunta, con el fin de realizar alguna labor.

    Existen muchos CMS, podremos ver, descargar e incluso probar online muchos de los que existen en:

    opensourcecms

    Los CMS estn normalmente clasificados segn su uso:

    Portales completos (PostNuke, PHP-Nuke, Drupal, Mambo, Geeklog, etc...)

    Blogs o diarios (Wordpress, pLog, BLOG:CMS, etc...)

    Tiendas virtuales (osCommerce, ZenCart, etc...)

    Entornos colaborativos de trabajo en grupo (PHPGroupWare, PhpProject, etc...)

    Foros (phpBB, Phorum, etc...)

    Entornos educacionales para profesores (Escritorio Virtual) (Claroline, WordCicle)

    Wikis o entornos de colaboracin documentativa (Mediawiki)

    Otros (Gallery, Webcalendar)

    Algunos de los CMS estn disponibles para distribuciones basadas en Debian, como Drupal, phpBB o Wordpress.

    Como tarea aadida se propone descargar e instalar un CMS en el equipo local, cada alumno podr elegir el que quiera. Las instrucciones de instalacin est incluidas en el archivo comprimido de cada uno.

    Obtenido de "http://soleup.eup.uva.es/mediawiki/index.php/Curso_PHP-MySQL"