La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy IMPLEMENTACION DE APLICACIONES INTERNET.

Presentaciones similares


Presentación del tema: "1  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy IMPLEMENTACION DE APLICACIONES INTERNET."— Transcripción de la presentación:

1 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy IMPLEMENTACION DE APLICACIONES INTERNET I Unidad 2: Sesiones con PHP

2 2  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Contenidos Introducción a PHP y aspectos generales de PHP. Conformación equipos de trabajos para la realización del primer proyecto, Entrega tema del primer proyecto, Objetivos y Carta Gantt del proyecto. Variables, constantes, Operadores y Estructuras de Control en PHP, Funciones en PHP. Clases en PHP, Manejo de Archivos. Desarrollo en clases del proyecto. Bases de Datos con PHP, Manejo de sesiones. Desarrollo Modelo de datos orientado al proyecto. Desarrollo en clases del proyecto. Entrega y exposición del primer Avance del Proyecto. (Control numero 1) Construcción Base de datos para el proyecto. Desarrollo en clases del proyecto. Desarrollo de script de conexión a bases de datos. Implementación de sesiones en PHP. Creación de un Login. Desarrollo en clases del proyecto. Prueba de cátedra numero 1. Creación de sentencias SQL para PHP. Entrega y exposición del segundo avance del Proyecto. (Control numero 2) Desarrollo en clases del proyecto. Creación de script orientados al desarrollo del proyecto. Desarrollo en clases del proyecto. Entrega del proyecto finalizado (cátedra numero 2).

3 3  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Recursos importantes en la Web 1.SQLMaestro: Generador de código PHP gratuito para trabajar con bases de datos relacionales. La versión para MySQL puede descargarse de: http://www.sqlmaestro.com/products/mysql/phpgen erator/ http://www.sqlmaestro.com/products/mysql/phpgen erator/ 2.ArgoUML: Herramienta para modelado con capacidad de realizar diagramas UML y de generar código PHP, C++, C#, JAVA, etc. Descargar de: http://argouml.tigris.org/http://argouml.tigris.org/ NOTAS: 1.ArgoUML ambién puede emplearse directo de la Web. 2.Funciona en Windows y Linux, ya que es una aplicación Java.

4 4  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Variables de formulario complejas PHP maneja arrays en el contexto de variables de formularios, pero sólo en una dimensión. Se puede, por ejemplo, agrupar juntas variables relacionadas, o usar esta característica para recuperar valores de un campo select input múltiple: Nombre: Correo: Cerveza: Cristal Escudo Tecate Mexicana

5 5  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Función header() La función header() se utiliza al comienzo de un fichero HTML para enviar las cadenas de texto de la cabecera HTTP. Consulte la Especificación HTTP 1.1 para obtener más información sobre las cabeceras http.Especificación HTTP 1.1 Esta función debe llamarse antes de que se genere salida alguna, bien con etiquetas HTML normales o con PHP. Un error muy frecuente consiste en leer código con include() o con auto_prepend, y que dicho código inserte espacios o líneas en blanco antes de llamar a header().

6 6  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Usando header() Hay dos casos especiales de llamadas a header: La primera es la cabecera "Location". No sólo envía esta cabecera al navegador, sino que también devuelve un código de estado REDIRECT a Apache. Desde el punto de vista del programador de scripts esto no debería ser importante, pero para la gente que comprende las interioridades de Apache sí puede serlo. header("Location: http://www.php.net"); /* Redirect browser to PHP web site */ exit; /* Make sure that code below does not get executed when we redirect. */ El segundo caso especial se produce con cualquier cabecera que comience con la cadena, "HTTP/"(las mayúsculas no son significativas). Por ejemplo, si tiene la directiva ErrorDocument 404 de Apache apuntando a un script PHP, es una buena idea asegurarse de que su script de PHP genera realmente un 404. La primera cosa que debe hacer en su script sería: header("http/1.0 404 Not Found");

7 7  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Cookies HTTP Las cookies son un mecanismo para almacenar datos en el navegador y así rastrear o identificar a usuarios que vuelven. PHP soporta cookies de HTTP de forma transparente tal y como están definidas en las Netscape’s Spec.Netscape’s Spec Se pueden crear usando la función SetCookie(). Son parte de la cabecera HTTP, así que se debe llamar a la función SetCookie antes de que se envíe cualquier salida al navegador. Es la misma restricción que para la función Header(). Cualquier cookie que se reciba procedente del cliente será convertida automáticamente en una variable de PHP como con los datos en los métodos GET y POST. Ejemplos: –setcookie("TestCookie","Test Value"); –setcookie("TestCookie",$value,time()+3600); /* expire in 1 hour */ –setcookie("TestCookie",$value,time()+3600,"/misitio/",".ua mericas.cl",1);

8 8  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Efecto del cookie 1.En la primera solicitud se establece el cookie en el equipo del usuario. 2.Cuando realiza la segunda solicitud, el servidor ya “conoce” al usuario porque éste tiene ya el cookie establecido en su equipo.

9 9  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Cookies HTTP (2) Si se quieren asignar múltiples valores a una sola cookie, basta con añadir [] al nombre. Por ejemplo: SetCookie ("MyCookie[]", "Testing", time()+3600); Nótese que una cookie reemplazará a una cookie anterior que tuviese el mismo nombre en el navegador a menos que el camino (path) o el dominio fuesen diferentes. Así, para una aplicación de carro de la compra, se podría querer mantener un contador e ir pasándolo. Por ejemplo: $Count++; SetCookie ("Count", $Count, time()+3600); SetCookie ("Cart[$Count]", $item, time()+3600); Para visualizar un cookie establecido: –echo $TestCookie; –echo $HTTP_COOKIE_VARS["TestCookie"];

10 10  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Variables de entorno PHP hace accesibles las variables de entorno automáticamente tratándolas como variables normales. echo $HOME; /* Shows the HOME environment variable, if set. */ Dado que la información que llega vía mecanismos GET, POST y Cookie crean automáticamente variables de PHP, algunas veces es mejor leer variables del entorno explícitamente para asegurarse de que se está trabajando con la versión correcta. Para ello puede usarse la función getenv(). También se puede asignar un valor a una variable de entorno con la función putenv().

11 11  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Constantes PHP define varias constantes y proporciona un mecanismo para definir más en tiempo de ejecución. Las constantes son como las variables, salvo por las dos circunstancias de que las constantes deben ser definidas usando la función define(), y que no pueden ser redefinidas más tarde con otro valor. Las constantes predefinidas (siempre disponibles) son: __FILE__ El nombre del archivo de comandos que está siendo interpretado actualmente. Si se usa dentro de un archivo que ha sido incluido o requerido, entonces se da el nombre del archivo incluido, y no el nombre del archivo padre. __LINE__ El número de línea dentro del archivo que está siendo interpretado en la actualidad. Si se usa dentro de un archivo incluido o requerido, entonces se da la posición dentro del archivo incluido.

12 12  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Constantes (2) PHP_VERSION La cadena que representa la versión del analizador de PHP en uso en la actualidad. Ejemplo: ’ 5.2.1 (cli) ’. PHP_OS El nombre del sistema operativo en el cuál se ejecuta el analizador PHP: ’Linux’. TRUE Valor verdadero. FALSE Valor falso.

13 13  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Constantes (3) E_ERROR Denota un error distinto de un error de interpretación del cual no es posible recuperarse. E_WARNING Denota una condición donde PHP reconoce que hay algo erróneo, pero continuará de todas formas; pueden ser capturados por el propio archivo de comandos. Un ejemplo sería una inválida regexp en ereg(). E_PARSE El interprete encontró sintaxis inválida en el archivo de comandos. La recuperación no es posible. E_NOTICE Ocurrió algo que pudo ser o no un error. La ejecución continúa. Los ejemplos incluyen usar una cadena sin comillas como un índice "hash", o acceder a una variable que no ha sido inicializada.

14 14  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Constantes (4) Las constantes E_* se usan típicamente con la función error_reporting() para configurar el nivel de informes de error. Se pueden definir constantes adicionales usando la función define(). Nótese que son constantes, no macros tipo C; con una constante sólo se pueden representar datos escalares válidos.

15 15  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Ejemplos Definiendo Constantes <?php define("CONSTANTE", "Hola mundo."); echo CONSTANTE; // muestra "Hola mundo." ?> Usando __FILE__ y __LINE__ <?php function report_error($file, $line, $message) { echo "Un error occurrió en $file en la línea $line: $message."; } report_error(__FILE__,__LINE__, "Algo funciona mal!"); ?>

16 16  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Soporte para sesiones El soporte de sesiones en PHP es un sistema que preserva ciertos datos en una serie de accesos, lo que permite construir aplicaciones personalizadas e incrementar el atractivo de un sitio Web. A cada visitante que acceda al sitio se le asigna un único id, conocido como id de sesión, que se almacena en un cookie del usuario o bien se propaga con la URL. El soporte de sesión permite transportar tantas variables como sea necesario a través de las solicitudes del cliente. Cuando un visitante accede al sitio, PHP chequea –automáticamente (si session.auto_start está puesta a 1), –manualmente (si añade el comando session_start()) o –implícitamente (al añadir session_register()) si se ha establecido una sesión concreta con la llamada. Si es así, el entorno grabado es reproducido. La gestión de sesiones se incorporó a partir de la versión PHP 4.0

17 17  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Parámetros de configuración Todas las variables registradas son serializadas tras finalizar la solicitud. Las variables registradas que no estén definidas se marcan como no definidas. En los accesos posteriores, estas variables no las define el módulo de sesión, a no ser que las defina el usuario después. Los parámetros de configuración track_vars y gpc_globals influyen en como se recuperan las variables de sesión. Si track_vars está activado, las variables recuperadas estarán guardadas en la matriz asociativa $HTTP_STATE_VARS. Si gpc_globals está activado, las variables de sesión se recuperarán como variables globales. Si ambos parámetros están activados, las variables globales y los registros de $HTTP_STATE_VARS valdrán lo mismo.

18 18  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Propagar un id de sesión Hay dos formas de propagar un id de sesión: –Cookies –parámetros URL El módulo de sesión soporta ambos métodos. Las Cookies son ideales, pero como su permanencia no la controla el servidor, sino el cliente no son de completo fiar. El segundo método integra el id de sesión en las URLs. PHP es capaz de hacer esto de forma transparente cuando se ha compilado con -enable-trans-sid. Si se activa esta opción, las URIs relativas se cambiarán automáticamente para contener el id de sesión. Otra posibilidad es usar la constante SID, siempre definida, si el cliente no manda la cookie apropiada. SID es de la forma –session_name=session_id o –es una cadena vacía.

19 19  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Cookies de Sesión 1.La primera conexión establece un cookie de sesión: PHPSESSID, que identificará al usuario. 2.Las restantes conexiones recibirán el cookie de sesión y entregaran a cada usuario la página que le corresponde.

20 20  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Funciones para Sesiones Las principales funciones son: bool session_start() crea una sesión (o continua con la actual basada en el id de sesión pasado mediante una variable GET (o una cookie). bool session_destroy() elimina todos los datos asociados a la sesión en curso. string session_name([string name]) devuelve el nombre de la sesión en curso. Si name está especificado, el nombre de la sesión en curso es cambiado por éste. string session_id ([string id]) devuelve el id de la sesión en curso. Si se especifica id, se reemplazará el id de la actual sesión. bool session_register (mixed name [, mixed...]) tiene un número variable de argumentos, cada uno de los cuales puede ser una cadena que contiene el nombre de la variable, o un vector que contenga esos nombres de variables u otros vectores. Por cada variable que se encuentre, la función registra el nombre de la variable como variable global en la sesión en curso.

21 21  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Funciones … (2) bool session_unregister (string name) desliga (olvida) la variable global llamada name de la sesión en curso. Esta función devuelve true cuando la variable se ha desligado de la sesión. Otras funciones existentes son: –session_name() devuelve el nombre de la sesión en curso. Si name está especificado, el nombre de la sesión en curso es cambiado por éste. –session_module_name() devuelve el nombre del módulo de sesión en curso. Si module está especificado, dicho módulo será usado en su lugar. –session_save_path() devuelve la ruta del directorio que se está usando para grabar la sesión en curso. Si el parámetro path se indica, el path donde se graben los datos cambiará. –session_is_registered() devuelve true si hay una variable que se llame name registrada en la sesión en curso. –session_decode() extrae los datos de sesión en data, dando valores a las variables almacenadas en la sesión. –session_encode() devuelve una cadena con los contenidos de la sesión en curso dentro.

22 22  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Ejercicios 1.Haga una página Web que use un cookie para contar cuantas veces un usuario específico la ha visitado. La primera vez que un usuario particular acceda esta página, deberá mostrársele un mensaje que diga “Visita: 1”. Las restantes veces, la página deberá decir cuál número de visita es: “Visita: n”. 2.Escriba una aplicación que muestre un formulario de órdenes que debe listar seis productos. Junto al nombre de cada producto, coloque una caja de texto para que el usuario pueda introducir la cantidad del producto que desea ordenar. Cuando el usuario envíe la forma, los datos enviados deben guardarse en una sesión. Cree otra página que muestre el contenido de la orden guardada así como un enlace para retornar a la página del formulario si el usuario desea arreglar su orden y un botón de Aceptar si está conforme con su selección. Si el usuario selecciona volver al formulario, deberá desplegarse conteniendo los valores introducidos previamente en las cajas de texto correspondientes. Cuando el usuario acepta la orden, deberán limpiarse los datos registrados en la sesión. Código utilizable como apoyo y referencia: cookies_sesiones_php.txtcookies_sesiones_php.txt

23 23  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Bibliografía.pdf para PHP Manual Programación PHP.pdf, Caps: “Funciones HTTP” p391 (391 de 1063) y “Funciones para el manejo de sesiones” p845 (845 de 1063) PHP 5 and MySQL Bible (2004).pdf, Chap. 24 - p455 (496 de 1083) PHP and MySQL for Dummies 2nd Ed_2004_John.Wiley.and.Sons.pdf, Chap. 9 - p257 (278 de 459) OReilly-Professional PHP Programming.pdf Wrox - Beginning PHP, Apache, MySQL Web Development - 2004 -.pdf (bpamweb) (BP5AM) Chap. 11 - p311 (340 de 723) OReilly.Learning.PHP.5.Jul.2004.eBook-DDU.chm, Chap. 8 Wiley - Secure PHP Development - Building 50 Practical Appli.pdf, Chap. 5 - p121 (151 de 916)

24 24  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Otros manuales digitales eBooks on PHP and MySQL_Sams Teach Yourself MySQL in 21 Days.pdf eBook_MySQL- PHP_Database_Applications.ShareReactor.pdf Web Application development with PHP –WeberDev - (0735719971.pdf) Linux Web Solution - php - mySql - Apache.pdf Informática - Diseño Programacion de Paginas Web.pdf (eBook PHP) How to Make Flash & PHP Talk.pdf

25 25  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy Bibliografía - Web http://www.solotuweb.com/area.asp?area=PHP http://www.weberdev.com/CodeExamples.php http://www.php.net/ http://www.php.org/ http://www.e-learningcenter.com/php.htm


Descargar ppt "1  2007 Universidad de Las Américas - Escuela de Ingeniería - Aplicaciones Internet - Dr. Juan José Aranda Aboy IMPLEMENTACION DE APLICACIONES INTERNET."

Presentaciones similares


Anuncios Google