Professional Documents
Culture Documents
Tecnologas de Servidor
Al igual que J2EE, hay otras tecnologas de servidor en otros lenguajes de programacin diferentes de Java. Adems del cambio de lenguaje de programacin, usualmente hay que hacer una serie de cosas comunes para los que cambia la sintaxis y modo de conseguirlo:
Tratamiento de peticiones de entrada Obtener informacin de la peticin HTTP (cabecera+formularios) Responder con informacin al cliente (ejemplo HTML) Mantener la sesin, manejo de cookies, etc. Tratamiento de mltiples peticiones a la vez Tratamiento de errores Conexin con Bases de Datos Acceso y manipulacin de ficheros XML
Diseo de Aplicaciones Telemticas 2
PHP: Variables
Declaracin de variables
$nombre_variable = valor
Ejemplos
No hay que declarar explcitamente el tipo que son, sino que en PHP se interpreta automticamente segn su declaracin Para obtener el valor de una variable
$nombre_variable
String1 . String2
Ejemplo
$s1 = El valor es; $s2 = rojo; echo $s1 . . $s2;
Hay muchas funciones para realizar operaciones con strings, algunas de ellas son parecidas a algunos interpretes de comandos (shells). Ejemplos: strcmp, strncmp, strlen, strpos, bin2hex, strchr, strtolower, strtoupper
Pedro J. Muoz Merino Diseo de Aplicaciones Telemticas 4
PHP: Arrays
Un array permite asociar valores a ndices. Los ndices pueden ser numricos o strings
$var1=array(valor1, valor2, valor3, , valorn); $var2=array(clave1=>valor1, clave2=>valor2, , claven=>valorn); $var3[0]=valor1; $var4[clave1]=varlor1;
PHP: Funciones
La funcin puede retornar un valor que puede ser una variable, tambin un array return $nombre_variable A la funcin se la invoca desde el cuerpo de la siguiente manera nombre_function(param1, param2, , paramn)
PHP: Operadores
+ - * / % Comparacin:
&& || !
PHP: if
Ejemplo if ($a>$b) echo Es mayor; elseif ($a==$b) echo Es igual; else echo Es menor;
PHP: while
PHP: switch
Estructura general switch (expresin) { case valor1: cdigo; break; case valor2: cdigo; break; default: cdigo; }
Pedro J. Muoz Merino
Ejemplo switch ($comida) { case patatas: echo Son patatas"; break; case pescado: echo Es pescado"; break; default: echo No hay comida"; }
PHP: for
En un servidor PHP tendremos varios scripts PHP, que son pginas PHP, implementadas en este lenguaje. A esas pginas llegarn peticiones HTTP que pueden ser tanto GET como POST. Podemos retomar los valores de lo que nos llega, gracias a que queda grabado todo lo que nos llega de entrada en 2 variables
Cualquier cdigo de PHP visto y que veamos ir en la forma de etiqueta de la siguiente manera
Una peticin HTTP GET se produce porque el usuario pone la URL directamente, porque presiona un enlace de URL o porque est puesto en un formulario
$_GET[paramn]
La URL no tiene incrustados los parmetros sino que estos van en el cuerpo del mensaje
$_POST[paramn]
Intercalando etiquetas HTML en los trozos de cdigo de etiquetas PHP Intercalando texto en los trozos de cdigo de etiquetas PHP Utilizando las funciones echo o print en trozos de etiquetas PHP
Para poner: setcookie(nombre, valor, expira, ruta, dominio); Para obtener valor: Con el array $_COOKIE Para eliminar: Cambiar fecha en la que expira
Diseo de Aplicaciones Telemticas 18
include
Funcin include (trae todo lo que haya en el fichero incluido, si hay algn error, slo muestra un warning): include(nombre_fichero.php");
Funcin require (trae todo lo que haya en el fichero incluido por el require pero si y slo si no hay ningn error. En caso de error detiene la ejecucin): require(nombre_fichero.php");
forward
http://stackoverflow.com/questions/433774/does-php-have-anequivalent-of-javas-requestdispatcher-forward
Conectar con la base de datos, devuelve una conexin: mysql_connect(nombre_servidor,usuario,contrasea); Seleccionar una base de datos concreta: mysql_select_db(nombre_BD", $conexion); Ejecucin de sentencias SQL, da un resultado: mysql_query(sentencia_SQL); Obtener valores tras una sentencia SELECT, obtiene las diferentes filas por cada llamada realizada: $variable_fila = mysql_fetch_array($result)) Cerrar la conexin con la base de datos, sobre una conexin: mysql_close($conexion);
Pedro J. Muoz Merino Diseo de Aplicaciones Telemticas 20
Est basado en el lenguaje de programacin Perl Queda como ejercicio ver como cada una de las cosas posibles vistas en J2EE y PHP, se pueden realizar en CGI
Servidor Web que se programa en Python API en python para programacin Web Utiliza una base de datos Tiene una serie de ficheros XML que se denominan XDOCs, accesibles a travs de URLs En la base de datos se guarda informacin sobre usuarios, documentos, estado de documento por usuario, interacciones e tem de interaccin
Se parsea el archivo seleccionado formando un rbol del mismo de objeto XMLTag, importando todos los ficheros python que se referencien como espacios de nombres en los XDOCs Toda etiqueta XML ser procesada segn algn archivo python (.py) de los que estn en el espacio de nombres del XDOC Si el atributo save_state est en el atributo raz del XDOC, entonces se pide autenticacin (por contrasea o certificado) Se construye una variable answers_dict que contiene todos los parmetros que vienen de una peticin POST o GET Se llama al mtodo handle_request (answer_dict) del nodo raz. Desde este mtodo se puede ir llamando a sus homnimos de nodos XML, ejecutando lo que sea conveniente para cada nodo del XML
Diseo de Aplicaciones Telemticas 25
Entre la artillera que se dispone para ejecutar asociada a cada nodo, est cualquier estructura permitida en el lenguaje de programacin python, recuperar el valor de los argumentos que vienen en answers_dict, coger valores de atributos de dicha etiqueta, utilizar cualquier utilidad del API que proporciona XTutor o generar cdigo HTML En caso de que save_state est activado, se puede ir almacenando la informacin que queramos en el estado, de forma que ese usuario conservar dicha informacin durante diferentes accesos a dicho XDOC Finalmente la respuesta con el HTML generado (ser la suma de todas las respuestas de los nodos por los que se va pasando) se le presenta al usuario
Tutorial de PHP (Bsico, Avanzado, Base de Datos, referencia): http://www.w3schools.com/php/default.asp Tutorial de CGI y Perl (Introduction, overview, variables, scalars, arrays, if/else, loopings, database management, cgi programming: http://www.tutorialspoint.com/perl/index.htm Informacin sobre programacin Web con python en XTutor (todos los enlaces de XDocs y tag handlers), http://scripts.mit.edu/~cjt/xtutor/
Referencias Extra
Practical PHP Programming, http://www.tuxradar.com/practicalphp Tim Converse, Joyce Park, PHP bible, Wiley Publishing, 2002 W. E. Weinman, The CGI book, New Riders Pub, 1996 Tutorial de programacin en python, http://docs.python.org/tutorial/