Introducción al lenguaje PHP Instalación y Configuración del servidor Conceptos básicos Programación avanzada en PHP PHP PHP Hypertext Pre-processor Antonio LaTorre <atorre@fi.upm.es> José María Peña <jmpena@fi.upm.es> Programación Web en Servidor 2006/2007 Antonio LaTorre de la Fuente, José María Peña PHP
176
Embed
PHP - PHP Hypertext Pre-processor - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/pws/...Introducción al lenguaje PHP Instalación y Configuración del servidor Conceptos básicos
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Introducción al lenguaje PHPInstalación y Configuración del servidor
• A una variable se le pueden asignar valores de tiposdiferentes.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables IV
Variables
$enanitos="siete";$enanitos=7;echo "Hay $enanitos personas pequeñas";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables V
Escritura de las variables en PHP• En los nombres de variables no puede haber espacios.• Las variables con mayúsculas y minúsculas se consideran
diferentes entre sí.• Se recomienda usar nombres de variables que sean
significativos (que digan qué contiene esa variable).
Variables
$ovejas ="Churras";$Ovejas ="Merinas";$consejo_de_la_abuela="No hay que mezclar ";echo "Consejo: $consejo_de_la_abuela";echo "$ovejas con $Ovejas";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables VI
Cadenas de caracteres• Se pueden usar tanto comillas dobles ("· · · ") como simples
(’· · · ’) para delimitarlas:• Las comillas dobles expanden las variables.• Las comillas simple no lo hacen.
Variables
$nombre="Elena Nito del Bosque";echo "Ni nombre es $nombre";echo ’ es el valor de la variable $nombre’;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables VII
Imprimir valores• Para imprimir un salto de linea:
• Incluir "\n": Implica un salto en código generado (facilita lalectura pero no lo ve el navegador.
• Incluir "<BR>": Implica un salto en el HTML que sevisualiza (lo vería el navegador).
Saltos de línea
echo "Si sólo pongo \\n no se separa la línea...\n";echo "Pero si pongo BR<BR>Las líneas se separan";echo "Mejor los dos <BR>\n";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante• Definir variables para:
• plato.• precio.• cantidad.
• Imprimir esas variables en una línea.• Redefinir las variables.• Volver a imprimir la línea.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante
$plato="Pollo al Chilindrón";$cantidad=2;$precio=6.75;echo "$plato , $cantidad a $precio euros\n<BR>";$plato="Bonito en Pepitoria";$cantidad=1;$precio=7.25;echo "$plato , $cantidad a $precio euros\n<BR>";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores I
Operadores aritméticos• Existen los siguientes operadores suma(+), resta (-),
división (/), multiplicación (*) y módulo ( %).• Para realizar operaciones entre variables se pueden
realizar conversiones de tipos.• Para ello se usa el tipo numérico más general que puede
albergar el resultado.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores II
Operadores aritméticos
$a="1"; $b=2; $c=3;$d=1.2 + $a; // Valdrá 2.2 (número real)$e=$c / $b; // Valdrá 1.5 (número real)$f="3 peras" + "4 manzanas"; // Valdrá 7 (entero)// Quien dijo que no se podían sumar peras y manzanas!
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores III
Operadores de cadenas• Entre las cadenas existe un operador de concatenación, el
punto (.).• Se puede usar con enteros, concatenándolos a una
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante• Definir dos contadores:
• raciones.• total.
• Inicializar estas variables.• Actualizar los valores de las mismas por cada plato.• Imprimirlas.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante
$raciones=0;$total =0.0;// Aqui se declararía un plato (como antes)$raciones += $cantidad;$total += $cantidad * $precio;// Ídem para el otro platoecho "$raciones raciones\n<BR>";echo "Total $total euros\n<BR>";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Referencias I
Referencias entre variables• Se usa el símbolo (&) delante de una variable y como
parte derecha de una expresión.• Indica que la variable a la izquierda es una referencia a la
otra.• En la práctica: Son dos nombres para la misma variable
(mismo valor).• Cuando se modifica una se modifica la otra.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Referencias II
Referencias entre variables
$una = 315;$otra = &$una;// $una=315 y $otra=315;$otra += 2; // $una=317 y $otra=317;$una -= 100; // $una=217 y $otra=217;$mal = &34; // Da un error, no es una variable
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos I
Asignación explícita de tipos• Como las variables pueden cambiar de tipo (entero, real,
cadena, . . . ) de forma dinámica.• Existen funciones para consultar su tipo:
• is_int(): Indica si es entero.• is_float(): Indica si es real.• is_string(): Indica si es una cadena.• gettype(): Devuelve una cadena con el tipo de la
variable.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos de estructuras de Control I
Tipos de estructuras de control• Se encargan del control del flujo de ejecución del
programa.• La gran mayoría están heredadas de C, C++ o Java.• El esquema general de las estructuras de control consiste
en la evaluación de una condición (booleana) ydependiendo de ello seleccionar entre diferentesalternativas.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos de estructuras de Control II
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores de condición I
Operadores de comparación• Las condiciones viene indicadas por expresiones lógicas,
variables booleanas o expresiones:• Comparación: <, >, <=, >=.• Aplicables tanto a valores numéricos.• También a cadenas de caracteres (comparación alfabética).
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays III
Indices de un array• Un elemento de un array se puede eliminar.• Esto implica que los arrays no son necesariamente
consecutivos.
Indices de un array
$foo=array(11,22,33,44);unset($foo[2]); // 33 desaparece// Pero $foo[3] sigue siendo 44$baa[0]="Adios";$baa[12]="mundo";$baa[30]="cruel";$baa[991]="!";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays IV
Indices de un array• Para insertar un elemento al final de un array se puede
usar "[]".• Esto asocia al elemento el siguiente valor de la clave
numérica más alta del array.
Indices de un array
$baa[991]="!";$baa[]="."; // Equivale a $baa[992];
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays V
Arrays asociativos• Las claves (indices) de los arrays también pueden ser
cadenas de caracteres.• Un array puede tener variables numéricas y cadenas a la
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays VIII
Imprimiendo un array• Al hacer un echo sobre una variable array no se obtiene
su contenido.• La función print_r() permite imprimir un array.• El resultado está formateado con "\n"no con < BR >.
Imprimiendo un array
$m=array("A"=>11, "B"=>33);echo $m; // Sale "Array"echo "<pre>";print_r($m);echo "</pre>";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays IX
Iteración sobre arrays• count() muestra el número de elementos del array.• Recorrer con un for desde 0 hasta ese valor puede
causar problemas.• Hay que recordar que los elementos pueden no ser
consecutivos.
Iteración sobre arrays
$num[0]=100;$num[3]=200;for($i=0;$i<count($num);$i++) // 0 y 1
echo $num[$i]; // No saldrá $num[3]
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays X
Iteración sobre arrays• Existe un bucle especial para iterar sobre los arrays.• foreach recorre uno a uno todos los elementos del array.• Este bucle es independiente de las claves.
Iteración sobre arrays
$num[0]=100;$num[3]=200;foreach($num as $n) // $n es el elemento
echo $n; // 100, 200
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XI
Iteración sobre arrays• Existe otra forma de iterar sobre arrays.• Para ello se usan las funciones:
• reset(): Se pone al comienzo del array.• end(): Se pone al final del array.• current(): Te da el elemento actual.• next(): Avanza y te da el elemento siguiente.• prev(): Retrocede y te da el elemento anterior.
• Si no hay elemento estas funciones devuelven false.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XII
Iteración sobre arrays• Existe otra función, each(), análoga a next().• Esta función devuelve un par (clave, elemento).• Su valor hay que recogerlo con un list.
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones V
Argumentos variables• Son funciones con un número indeterminado de
argumentos.• func_num_args(): Indica el número de argumentos.• func_get_args(): Mete los argumentos en un array.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones VI
Argumentos variables
function suma(){
if(func_num_args()<1)return "Al menos un argumento";
$args=func_get_args();$cnt=0;foreach($args as $n)
$cnt+=$n;return $cnt;
}suma(10,21,32,43);suma(1,0.23,11);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones VII
Referencias• Son argumentos que pueden modificarse dentro de la
función.• El argumento no es una copia del valor sino una referencia
a la misma variable.
Referencias
function incrementa(& $num){
$num++;}$x=2;incrementa($x);echo $x;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones VIII
Ámbito de las variables• Las variables usadas dentro de una función son sólo
visibles dentro de la misma.• Eso indica que mantienen el valor y la declaración
mientras están dentro de la función.• Al terminar la función la variable pierde su definición.• Esto también es aplicable a los argumentos.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones IX
Variables globales• Hay dos formas de declarar variables globales que sean
visibles fuera de la función y que no pierdan su definiciónal terminar la función:
• Declarar la variable con global.• Accediendo al array $GLOBALS.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones X
Variables globales
function incrementa_a(){
global $a;$a++;
}
function decrementa_a(){
$GLOBALS["a"]++;}
$a=10;incrementa_a();decrementa_a();
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio I
Juego del ahorcado• El programa dispone de un fichero con varias palabas (de
5 a 8 letras).• Elige una de las palabras al azar.• Muestra:
• Un campo de texto para introducir las letras.• Las letras que se han acertado y las posiciones que están
ocultas• Las letras dichas y no acertadas.• Un monigote que muestra el estado de los fallos del
usuario (imágenes).
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio II
Detector de palíndromos• El programa debe ser capaz de detectar si una frase
introducida es o no un palíndromo.• Debe ignorar espacios, acentos y signos de puntuación.• Muestra:
• Un campo de texto para introducir la frase letras.• Un botón para validar la frase.
• Algunos palíndromos:• Anita, la gorda lagartona, no traga la droga latina.• Dábale arroz a la zorra el abad.• ¿Acaso hubo búhos acá?
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
1 Introducción al lenguaje PHP
2 Instalación y Configuración del servidor
3 Conceptos básicos
4 Programación avanzada en PHPFormularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Procesamiento de Formularios I
• Dos mecanismos para enviar información medianteformularios
• GET• POST
• Las variables son “parseadas“ automáticamente por elservidor
• La información puede ser accedida de varias maneras:• Por medio de variables superglobales: $_GET, $_POST,
$_REQUEST, etc.• Directamente como variables PHP con el mismo nombre
que los campos formulario
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Procesamiento de Formularios II
Método GET
$patron = $_GET[’patron’]; /* Forma recomendada */$patron2 = $patron; /* Sólo si
register_globals es true */$patron3 = $HTTP_GET_VARS[’patron’]; /* En desuso */$patron4 = $_REQUEST[’patron’]; /* Otra opción */
Método POST
$texto = $_POST[’texto’]; /* Forma recomendada */$texto2 = $texto; /* Sólo si
register_globals es true */$texto3 = $HTTP_POST_VARS[’texto’]; /* En desuso */$texto4 = $_REQUEST[’texto’]; /* Otra opción */
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Envío de archivos al servidor I
• El formulario debe tener un tipo de codificación”multipart/form-data“
• La información del archivo se guarda en la variablesuperglobal $_FILES
• $_FILES es un array asociativo que contiene:• ’name’: nombre original del archivo• ’size’: tamaño en bytes• ’type’: tipo MIME del archivo, si el navegador lo proporciona• ’tmp_name’: nombre temporal de la copia del archivo en el
servidor• ’error’: código del error sucedido, si procede
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Envío de archivos al servidor II
Ejemplo de Formulario
<FORM ENCTYPE="multipart/form-data" METHOD="POST"><H2>Escoja el archivo que desea enviar:</H2><INPUT NAME="fich" TYPE="file"><BR><INPUT TYPE="submit" VALUE="Enviar"></FORM>
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Envío de archivos al servidor III
Procesamiento de los datos del archivo
echo "Los datos relativos al archivo suministradoson:<BR>";
echo "Nombre original: ".$fich[’name’]."<BR>";echo "Tipo de archivo: ".$fich[’type’]."<BR>";echo "Tamaño del fich: ".$fich[’size’]."<BR>";echo "Nombre temporal: ".$fich[’tmp_name’]."<BR>";
if (!empty($fich[’error’]))echo "Error ocurrido: ".$fich[’error’]."<BR>";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funcionamiento básico y especificación I
• (Breve) Información de estado almacenada por elnavegador del cliente
• Estado válido únicamente para un conjunto de URLs(dominio)
• Esta información es enviada por el navegador enposteriores visitas al mismo servidor
• Algunos ejemplos de aplicación:• Carritos de la compra en tiendas virtuales• Identificación de usuarios• Almacenamiento de preferencias de usuario para la
visualización de una página web (por ejemplo Google)
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funcionamiento básico y especificación II
• Deben ser enviadas antes de que el script produzcaninguna otra salida
• El formato de una cookie es:• ’name’: nombre de la cookie• ’value’: valor de la cookie• ’expire’: hora de expiración de la cookie (número de
segundos desde el 1 de enero de 1970• ’path’: ruta en el servidor en el que estará disponible la
cookie• ’domain’: dominio en el que la cookie estará disponible• ’secure’: decide si la cookie ha de ser enviada mediante
conexión segura
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo II
Presentamos el Formulario
<FORM METHOD="POST">Introduzca un número entero entre 0 y 9999:<BR>Número: <INPUT NAME="numero" TYPE="text"><INPUT NAME="envio" TYPE="submit" VALUE="Probar"><INPUT NAME="reinicio" TYPE="submit" VALUE="Reset"></FORM>
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo III
Procesamos la información
if (empty ($secreto) || $_REQUEST[’envio’] == "Reiniciar") {echo "Intente adivinar el número secreto.<BR><BR>";$secreto = rand (0,9999);$intentos = 0;
} else if (empty ($numero)) {echo "Intente adivinar el número secreto.<BR><BR>";
} else if ($secreto < $numero) {$intentos++;echo "El número secreto es menor que " . $numero . "<BR>";echo "¡Lleva usted " . $intentos . " intentos!<BR>";
} else if ($secreto > $numero) {
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo IV
Destruimos la sesión
} else {echo "<BR>";echo "ENHORABUENA, el número secreto era " . $numero .
"<BR>";echo "<BR>";session_destroy ();exit ();
}
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Otras consideraciones
• Si PHP fue compilado con la opción -enable-trans-id elidentificador de sesión se añade automáticamente a cadaenlace
• Para poder usar las variables de sesión hay que llamar a lafunción session_start() al comienzo de cada script
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejercicio
Calendario de este mes• Obtener:
• El día del mes actual.• El día de la semana actual.• El nombre del mes.
• Tomando el día del mes y la semana calcular en qué díacayó el día 1 del mes.
• Imprimir una tabla con el calendario.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros I
Uso de ficheros• Una de las alternativas para mantener información
persistente de las operaciones del usuario es la utilizaciónde ficheros.
• En la gran mayoría de los sistemas hay que considerarademás los aspectos de propiedad y seguridad de losficheros.
• Hay que tener en cuenta que el proceso que ejecuta elservidor Web debe poder realizar las operacionessolicitadas sobre los ficheros.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros II
Gestión de ficheros• Hay dos formas de manipular ficheros:
• Por medio de las funciones heredadas de C/UNIX.• El interfaz de funciones propias de PHP.
• Las primeras, no obstantes no se recomiendan, salvo paraoperaciones muy particulares.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros III
Manejo básico• Existen dos funciones que permiten gestionar ficheros por
medio de cadenas:• file_get_conents(): Esta función carga en una
cadena el contenido del fichero.• file_put_conents(): Esta función vuelca el contenido
de una cadena en un fichero.
Manejo básico
$cadena="La vida es maravillosa";file_put_contents("fichero.txt",$cadena);$leido=file_get_contents("fichero.txt");echo "He leido: $leido";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros IV
Manejo con arrays• La función file() permite cargar un fichero en un array.• El array comenzará en la clave 0.• Cada elemento será una línea del fichero.• El carácter de final de línea \n también se guardará al final
de cada elemento.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros V
Manejo con arrays
$poema="A un panal de rica miel\n mil moscas acudieron\n Yo.";file_put_contents("poema.txt",$poema);$lineas=file("fichero.txt");echo $lineas[0]; // A un panal de rica miel\necho $lineas[1]; // mil moscas acudieron\necho $lineas[2]; // Yo.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros VI
Recorrido de directorios• Para manipular directorios se usan las siguientes
funciones:• opendir(): Devuelve un manejador para empezar a
recorrer un directorio.• readir(): Se le da el manejador de un directorio y te
devuelve el siguiente nombre de fichero en dicho directorio.• closedir(): Cierra un directorio abierto.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros VII
Recorrido de directorios
$d=opendir("datos/");while($f=readdir($d))
echo "Entrada: $f<BR>\n";closedir($d);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros VIII
Otras funciones útiles• Existen otra serie de funciones asociadas a ficheros:
• file_exists(): Indica si un nombre de fichero que se lepasa existe.
• fopen(): Abre un fichero, devolviendo un manejador. Elvalor devuelto lo usan otras funciones.
• fpassthru(): Se le pasa un manejador de fichero yvuelca su contenido por la salida.
• is_dir(), is_file(): Consulta si un nombre de ficherose corresponde con un fichero, propiamente dicho o con undirectorio.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros IX
Otras funciones útiles
$fichero="mis_datos.txt";if(is_file($fichero)){
$f=fopen($fichero);fpassthru($f); // Imprime el fichero
}else if (is_dir($fichero))ç
echo "Era un directorio mendrugo";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros X
Ficheros remotos• El nombre de un fichero se puede sustituir por una URL.• Hay diferentes protocolos de acceso a ficheros remotos, lo
más habitual es usar http://.
Ficheros remotos
// Redirigimos a una página de error$err_page=fopen("http://www.datsi.fi.upm.es/error.html");fpassthru($err_page); // Imprime el fichero
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejercicio
Juego del ahorcado• El programa dispone de un fichero con varias palabas (de
5 a 8 letras).• Elige una de las palabras al azar.• Muestra:
• Un campo de texto para introducir las letras.• Las letras que se han acertado y las posiciones que están
ocultas• Las letras dichas y no acertadas.• Un monigote que muestra el estado de los fallos del
usuario (imágenes).
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Conceptos de Bases de Datos
Base de datos• Conjunto de datos interrelacionados• Almacenados sistemáticamente
Gestor de bases de datos• Programa informático• Almacena los datos de forma eficiente• Recupera y accede a los datos rápidamente
SQL – Structured Query Language• Lenguaje estándar para consultar una base de datos• Es un estándar ANSI/ISO
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD