Más sobre PHP. Francisco José Naranjo Abad



Documentos relacionados
Más sobre PHP. Área de Ingeniería Telemática

PÁGINAS DINÁMICAS WEB CON PHP. Unidad 4 Aplicaciones Web

APRENDE A CREAR UNA PÁGINA WEB CON HTML

Formularios HTML. Desarrollo de Aplicaciones Web Departamento Informática y Sistemas Universidad de Murcia Curso 2013/2014

Desarrollo de sitios web con PHP y MySQL

CGI (Common Gateway Interface) es un modo sencillo de crear contenido dinámico en un sitio Web

Los formularios irán delimitados por las etiquetas <FORM> y </FORM>, la cual tiene dos parámetros:

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

PHP y MySQL. Indice: - Envia de datos de formulario - Método de envio - La variable de interprete - Envio de archivo - Propiedades

CapÍtulo 3: Manejo de Forms.

Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR

ELABORACIÓN DE PÁGINAS WEB. CBTIS No. 02 ISC. RICARDO GARCÍA LÓPEZ

PHP. Introducción (1) Introducción (3) Introducción (2) PHP 1

Curso de PHP. Acceso a bases de datos MySQL en PHP

HTML, PHP y bases de datos

Programación de páginas web dinámicas con CGIs

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Sistemas de Información

DPWEB I, Carrito de Compras Guardar, Ing. Tomas Urbina. Carrito de compras con PHP y MYSQL

2- Formularios y JavaScript Course: Developing web- based applica=ons

Common Gateway Interface (Interfaz Público de Pasarela)

CGI. Qué significa CGI?

1. Servidor Web. (apache). 2. PHP. 3. Manejador de base de datos (mysql, postgress).

Conexión SFTP-SSH2 en PHP a través de un fichero.ppk

Formularios. La mayoría de los elementos de entrada son visuales y pueden interactuar con el usuario.

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Tipos de variables, características generales y aspectos específicos de PHP de estos elementos básicos de la programación.

A continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor:

Bloque IV: Usos avanzados

CGI/ASP (acceso a bases de datos desde una página HTML)

PRACTICA 1 PHP HOLA MUNDO. El comando de PHP para imprimir dentro de la página se llama echo. Nuestro programa "Hola Mundo" será entonces:

Índice: Tema Conexión con Bases de Datos

El olvidado mundo de las variables en PHP

Programación PHP de bases de datos mysql

Server side processing: Introducción a PHP. Área de Ingeniería Telemática

PHP y MySQL. Aplicaciones Web: PHP y base de datos MySQL (décima parte) Autor: Johnny Zulca Mamani

Escribiendo el HTML. Un formulario se declara entre estos dos tags:

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Este tipo de situaciones son solventadas a partir de las variables de sesión.

TEÓRICO-PRÁCTICO - SERVIDOR APACHE INSTALACIÓN Y MANTENIMIENTO DE SERVICIOS DE INTERNET PROFESOR: ARTURO MARTIN ROMERO

INSTITUTO POLITÉCNICO NACIONAL WEB APPLICATION DEVELOPMENT. CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO 3cm3 PROYECTO TERCER PARCIAL MI HOTMAIL CON JOOMLA

CGI. Programación en Internet Curso Índice

Framework Symfony PHP

PHP Hypertext PreProcessor

INSTALACION DE UN SERVIDOR LOCAL CON EasyPHP

Introducción al desarrollo web (idesweb)

Clase 4. Ajax XML. XML Ajax definición Breve explicación de como funciona el HTTP XMLHttpRequest. El XML se creó para que cumpliera varios objetivos.

Práctica 02. Formularios

Introducción a PostgreSQL con PHP

Curso de PHP con MySQL Gratis

Desarrollo de Código Seguro. Seguridad en PHP. Introducción. Register Globals

MANUAL DE FORMULARIOS EN HOSTING

Funcionamiento de Servicios Web, FTP

JavaScript como Orientación a Objetos

PEAR: Modulos y Extensiones de PHP

Manual de instalación Sistema S.I.S.E. Versión 1.0

Tomás P. de Miguel Dpto. Ingeniería de Sistemas Telemáticos. dit UPM

BANNERS CÍCLICOS CON JAVASCRIPT

Taller de Desarrollo de Aplicaciones Web

Tutorial de Unity 3D Tema 52 Bases de Datos. Tutorial de Unity 3D. Bases de Datos

Desarrollo Web con PHP

PHP Interacción con el cliente

PHP: Interacción con HTML

Security Research XSS CROSS SITE SCRIPTING Chebyte chebyte at gmail.com

Configuración y uso de Server Side Includes (SSI) en Apache

A Mayor Nivel: HTML II. Taller de Proyecto II

3. En caso de que no esté instalado hacemos lo siguiente

Descripción del tutorial. Contenidos.

Tema 4: Tecnologías Web Java

A continuación se presenta la forma en que se puede conectar PHP con el gestor de bases de datos MySQL.

Tema 3. Introducción a programas en el lado del servidor

Tutorial BMS Server Studio UDP

Índice: Tema Aplicaciones basadas en Sesiones

Sesiones en PHP. Área de Ingeniería Telemática

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

Bases de Datos. Marta Elena Zorrilla Pantaleón. Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN

INYECCIóN DE CóDIGO EN APLICACIONES PHP. Autor: Iñaki Rodriguez (2005)

Introducción a PHP. * No es necesario declarar previamente las variables.

MANUAL DE ARQUITECTURA Y PROGRAMACION

Practica 9. Correo Varchar 30 Ninguna Puesto varchar 10 Ninguna Salario Int 10 Ninguna. Realizar lo siguiente.

CESAR BUSTAMANTE

VBScript y ASP. VBScript

Manual de instalación del Programa. Para WINDOWS

Formularios HTML. Elementos de Programación y Lógica

MySQL: Guía de Referencia

CURSO ADMINISTRACIÓN APACHE WEB SERVER. 1. Verificar el servidor Web Apache y MySQL. 2. Acerca de las variables superglobales

PHP LUIS JOSÉ SÁNCHEZ GONZÁLEZ

La única regla que debe de tener presente siempre, es que cada etiqueta que abra <etiqueta> debe de cerrarla en el mismo orden < /etiqueta cerrada>.

Tomar información por pantalla con JavaScript

Proyecto: Buscador de Películas usando XQuery y exist

El servidor Web Tema 2.- Nivel de aplicación en Internet

EXTENSIÓN DE UML PARA APLICACIONES WEB

Capa de Aplicación (Parte 2 de 2)

CORPORACION UNIVERSITARIA AUTONOMA DEL CAUCA PROGRAMA DE INGENIERIA DE SISTEMAS 2o Periodo de 2014 MATERIA: ELECTIVA IV (MEJORAMIENTO DE PROCESOS)

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Introducción. Cómo funciona la cosa. En el momento en que accedemos a una página del tipo que mencionamos, podemos

Transcripción:

Más sobre PHP Francisco José Naranjo Abad Área de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra franciscojose.naranjo@unavarra.es Laboratorio de Interfaces de Redes http://www.tlm.unavarra.es/asignaturas/lir 1/19

Programa de ejemplo (info.php) info.php session_start(); include("inicio.php"); <html> <head> <title>título</title> </head> <body> $server = "localhost"; $usuario = "lir_user"; $password = "lir_pass"; $link = mysql_connect($server, $usuario, $password); mysql_select_db("lir_db", $link); $_SESSION['MiDato'] = "Esto quiero guardar"; <form enctype="multipart/form-data" action="info2.php?parametro=valor" method="post"> Nombre <input type="text" name="nombre" /><br /><br /> <input type="hidden" name="max_file_size" value="300000" /> Enviar fichero: <input name="imagen" type="file" /><br /> <input type="submit" value="enviar fichero" /> </form> </body> include("fin.php"); mysql_close($link); 9 Nov Más sobre PHP 2/19

Destino (info2.php) info2.php session_start(); include("inicio.php"); <pre> print "Server: "; print_r($_server); print "Get: "; print_r($_get); print "Post: "; print_r($_post); print "Env: "; print_r($_env); print "Request: "; print_r($_request); print "Session: "; print_r($_session); print "Files: "; print_r($_files); </pre> include("fin.php"); Los nombres que son clave en el array asociativo $_SESSION, deben tener un nombre válido de variable. Es decir, no pueden empezar por número 9 Nov Más sobre PHP 3/19

$_SERVER Server: Array ( [HTTP_HOST] => localhost [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7 [HTTP_KEEP_ALIVE] => 300 [HTTP_CONNECTION] => keep-alive [HTTP_REFERER] => http://locahost/info.php [HTTP_COOKIE] => PHPSESSID=26465da5723cccfacc1869072db5a8f7 [CONTENT_TYPE] => multipart/form-data; boundary=---------------------------8767276471703 [CONTENT_LENGTH] => 193310 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/x11 [SERVER_SIGNATURE] => Apache/2.0.54 (Unix) DAV/2 PHP/4.4.0 Server at localhost Port 80 [SERVER_SOFTWARE] => Apache/2.0.54 (Unix) DAV/2 PHP/4.4.0 [SERVER_NAME] => localhost [SERVER_ADDR] => 192.168.2.40 [SERVER_PORT] => 80 [REMOTE_ADDR] => 192.168.2.1 [DOCUMENT_ROOT] => /www [SERVER_ADMIN] => fran@navarparty.org [SCRIPT_FILENAME] => /www/info2.php [REMOTE_PORT] => 4079 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => POST [QUERY_STRING] => parametro=valor [REQUEST_URI] => /info2.php?parametro=valor [SCRIPT_NAME] => /info2.php [PHP_SELF] => /info2.php [PATH_TRANSLATED] => /www/info2.php [argv] => Array ( [0] => parametro=valor ) [argc] => 1 ) 9 Nov Más sobre PHP 4/19

$_GET, $_POST, $_ENV Get: Array ([parametro] => valor ) Post: Array ( [nombre] => Plano del departamento [MAX_FILE_SIZE] => 300000 ) Env: Array ( [HZ] => 100 [TERM] => linux [SHELL] => /bin/bash [HUSHLOGIN] => FALSE [USER] => root [LD_LIBRARY_PATH] => /programas/apache2/lib: [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/x 11 [MAIL] => /var/mail/root [PWD] => /programas/apache2 [LANG] => es_es@euro [HOME] => /root [SHLVL] => 2 [LOGNAME] => root [_] => /programas/apache2/bin/httpd 9 ) Nov Más sobre PHP 5/19

$_REQUEST, $_SESSION, $FILES Request: Array ( [parametro] => valor [nombre] => Plano del departamento [MAX_FILE_SIZE] => 300000 [PHPSESSID] => 26465da5723cccfacc1869072db5a8f7 ) Session: Array ( [MiDato] => Esto quiero guardar ) Files: Array ( [imagen] => Array ( [name] => plano_departamento.gif [type] => image/gif [tmp_name] => /tmp/phpx1uena [error] => 0 [size] => 192884 ) ) 9 Nov Más sobre PHP 6/19

Lectura sencilla de MySQL session_start(); include( inicio.php ); <html><head><title>uso PHP, MySQL y HTML</title></head> <body> <table border= 0 > <tr><td>id</td><td>usuario</td></tr> $query = SELECT * FROM Usuarios ; $result = mysql_query($query, $link); while($row = mysql_fetch_array($result)) { print <tr><td>.$row[ id ]. </td><td>.$row[ usuario ]. </td></tr>\n ; </table> </body> include( fin.php ); 9 Nov Más sobre PHP 7/19

Cómo NO hay que completar valores session_start(); include( inicio.php ); <html> <html> <head> <title>ejemplo con selects</title> </head> <body> <form method= post action= info.php > <select name= day > <option value= 1 >1</option> <option value= 2 >2</option> <option value= 3 >3</option>... etc... <option value= 31 >31</option> </select> <select name= month > <option value= 1 >Enero</option> <option value= 2 >Febrero</option> <option value= 3 >Marzo</option>... etc... <option value= 12 >Diciembre</option> </select> <select name= year > <option value= 2005 > 2005 </option> <option value= 2006 > 2006 </option> <option value= 2007 > 2007 </option>... etc... <option value= 2014 > 2014 </option> </select> </form> </body> </html> include( fin.php ); 9 Nov Más sobre PHP 8/19

Cómo SÍ hay que completar valores session_start(); include( inicio.php ); <html> <html> <head> <title>ejemplo con selects</title> </head> <body> <form method= post action= info.php > <select name= day > $meses = array( Enero, Febrero, Marzo,...etc..., Diciembre ); for($i=1;$i<=31;$i++) print <option value=\ $i\ >$i</option>\n ; </select> <select name= day > foreach($meses AS $clave => $actual) print <option value=\.($clave+1). \ >$actual</option>\n ; </select> <select name= year > $init_year = strftime( %Y ); $end_year = $init_year+10; for($i=$init_year;$i<$end_year;$i++) print <option value=\ $i\ >$i</option>\n ; </select> </form> </body> </html> include( fin.php ); 9 Nov Más sobre PHP 9/19

Cómo ayudarnos de MySQL MySQL también puede hacer operaciones, contar filas, agrupar por elementos... Compras 9 Nov Más sobre PHP 10/19

Para ver todos los elementos vendidos (sin repetir) SELECT DISTINCT(elemento) FROM Compras SELECT elemento FROM Compras GROUP BY elemento Ver el dinero gastado en cada compra SELECT id_compra,sum(valor) FROM Compras GROUP BY id_compra Número de unidades vendidas de cada elemento SELECT elemento,count(*) FROM Compras GROUP BY elemento 9 Nov Más sobre PHP 11/19

Mandar mails PHP puede utilizar el Mail Transport Agent (MTA) del sistema para enviar e-mails Con la función mail() bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] ) Ejemplo: mail( daniel.morato@unavarra.es, Datos del programa, Los datos son:\n\n1\n2\n3\n\n y ya está, From:franciscojose.naranjo@unavarra.es\r\n. CC:franciscojose.naranjo@unavarra.es ); 9 Nov Más sobre PHP 12/19

Variables Las variables son locales a su scope Si queremos que traspasen estos límites, usar global Este comportamiento no se cumple con las superglobals puesto que existen en todo el script: $_GET, $_POST, $_SERVER, $_SESSION, etc Ejemplo: $a = DatoA ; $b = DatoB ; function hacer_algo($a) { global $b; global $_GET[ c ]; return $a.$b.$_get[ c ]; 9 Nov Más sobre PHP 13/19

Includes Cuando se realiza un include() de un fichero: El código en él se ejecuta. Por ejemplo: primer ejemplo de hoy Las funciones en él, no se ejecutan, sólo se definen. Permiten su uso, pero no son ejecutadas hasta que se llaman Con las conexiones y demás elementos de patrón Singleton, con require_once() o include_once 9 Nov Más sobre PHP 14/19

Acceso al sistema y ficheros Podemos ejecutar comandos del sistema system( ls al /etc/init.d ) Trabajar con ficheros y directorios (http://es.php.net/manual/en/ref.dir.php) $dir = "/etc/php5/"; // Open a known directory, and proceed to read its contents if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh))!== false) { echo "filename: $file : filetype: ". filetype($dir. $file). "\n"; closedir($dh); 9 Nov Más sobre PHP 15/19

Clases y objetos Siempre que sea posible, usar clases y objetos Pese a que PHP4 realiza una implementación particular, funciona y da buenos resultados La orientación a objetos siempre permite escalabilidad y control sobre el programa Si no se usan objetos, por lo menos dividir el programa en partes y trabajar con funciones e includes 9 Nov Más sobre PHP 16/19

Clases y objetos class Vegetable { var $edible; var $color; function Vegetable($edible, $color="green") { $this->edible = $edible; $this->color = $color; function is_edible() { return $this->edible; function what_color() { return $this->color; class Spinach extends Vegetable { var $cooked = false; function Spinach() { $this->vegetable(true, "green"); function cook_it() { $this->cooked = true; function is_cooked() { return $this->cooked; 9 Nov Más sobre PHP 17/19

Lugares de referencia Usar el manual... Todo está ahí Manual de PHP http://www.php.net/manual/en/ Ayuda de cualquier función de PHP http://www.php.net/funcion Manual de MySQL http://dev.mysql.com/doc/refman/4.1/en/index.html 9 Nov Más sobre PHP 18/19

Y el próximo día... Interfaces gráficos: conceptos básicos y errores más comunes 9 Nov Más sobre PHP 19/19