Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PHP Cur So
PHP Cur So
Introducin
Introduccin
Acrnimo:
PHP. Introducin
Lenguaje orientado para la programacin en entorno web
Lenguaje de scripting que se inserta en documentos html El cdigo PHP se interpreta en el Servidor Web, generando cdigo html que es enviado al browser
PHP. Introducin
Integracin en la web
Embebido (embedded) en una pgina html Servidores Web que soportan PHP o Apache o Mdulo ISAPI para Microsoft Internet Information Server (IIS) o ...
PHP. Introducin
Multiplataforma (GNU/Linux, Windows, Mac)
PHP. Ejemplos
Primeros Ejemplos
"Hello World (I)"
El cdigo PHP se inserta dentro del cdigo html utilizando las marcas: o <?php y ?>
<html> <head> <title>PHP Hello World</title> </head> <body> <?php print("Hello World!"); ?> </body> </html>
PHP. Ejemplos
"Hello World" (II)
Mostrar informacin : print / echo Aadir comentarios a una lnea: // Sentencias terminan con ;
<html> <head> <title>PHP Hello World</title> </head> <body> <?php // echo y print son equivalentes echo "Hello World!"; ?> </body> </html>
PHP. Ejemplos
"Hello World" (III)
<html> <head> <title>PHP Hello World</title> </head> <body> <?php // las variables siempre empiezan con $ $strHello = "Hello";
/* las lneas de cdigo comentadas pueden ocupar ms de una lnea */ ?> print("$strHello World!");
</body> </html>
PHP. Ejemplos
"Hello World" (IVa)
<html> <head> <title>PHP Hello World</title> </head> <body> <b> <?php print("Hello World"); ?> </b> </body> </html>
PHP. Ejemplos
"Hello World" (IV-b)
<html> <head> <title>PHP Hello World</title> </head> <body> <?php print("<b>Hello</b> <i>World</i>"); ?> </body> </html>
PHP. Ejemplos
"Hello World" Ejemplo slo con PHP!
?>
(" <title>PHP Hello World</title>"); (" </head>"); (" <body>"); (" <p>Hello World!</p>"); (" </body>"); ("</html>");
PHP. Ejemplos
Con el ejemplo "Hello World" hemos aprendido:
Mostrar datos por pantalla: echo o print (son equivalentes) Aadir comentarios o // Esto es un comentario que slo puede ocupar una lnea o /* Esto es un comentario que ocupa ms de una lnea */ Declaracin de variables: o $strHello = "Hello"; // Variable $strHello de tipo String Insertar Tags html dentro de un script PHP: o print("<b>Hello</b> <i>World</i>");
PHP. Ejercicios
Ejercicios
Hacer un programa en PHP que escriba vuestro nombre (en negrita) y la ciudad dnde naciste. Hacer un programa en PHP que escriba el resultado de la suma de dos variables (x = -1 e y = 9, por ejemplo).
PHP. Ejercicios
Solucin Ejercicios
Hacer un programa en PHP que escriba vuestro nombre (en negrita) y la ciudad dnde vives.
<?php $nombre = "Oscar"; $ciudad = "Barcelona"; print("<p>Mi nombre es: <b>$nombre</b> </p>"); print("<p>Nac en $ciudad</p>"); ?>
Hacer un programa en PHP que escriba el resultado de la suma de dos variables con los valores: x=-1 , y=9.
<?php $x = -1; $y = 9; $suma = $x + $y; print("El valor de x es: <i>$x</i> <br />"); print("El valor de y es: <i>$y</i> <br />"); print("La suma de x e y es: <i>$suma</i>"); ?>
PHP. Ejercicios
Ejercicio de repaso:
PHP. Ejercicios
PHP. Ejemplos
Trabajando con TAGS (etiquetas) html dentro de PHP
<?php print("<p><font face="Verdana, sans-serif"> Mi nombre es: <b>scar</b> <br /> </font></p>"); ?>
<?php print("<p><font face='Verdana, sans-serif'> Mi nombre es: <b>scar</b> <br /> </font></p>"); ?>
<?php print("<p><font face=\"Verdana, sans-serif\"> Mi nombre es: <b>scar</b> <br /> </font></p>"); ?>
Solucin 3: Trabajar con CSS, para evitar poner parte del "diseo" dentro del cdigo HTML
Tipos de datos bsicos (enteros, strings, ...) Estructuras de control de flujo o Sentencias condicionales (if) o Sentencias iterativas (while y for) Tipos de datos estructurados Simples (arrays) Tipos de datos estructurados Complejos (arrays asociativos) Funciones
Integer (entero, e.g: -1): $x = -1; Double (real, e.g: 1.2e4): $x = 1.2e4;
String (cadena de caracteres, e.g: "Hello"): $x = "Hello"; Boolean (Valores posibles: true, false):
o o $x = true; $x = ( $precio1 > $precio2 );
Array (vector) $productos o Los valores 0, 1 y 2 son los ndices del array o "Azcar", "Aceite" y "Arroz" son los valores que contiene el array o El vector contiene 3 posiciones pero se indexa de 0 a 2 (!) (otra posible) Inicializacin del array $productos
los valores
Indexar el array por tipos de datos complejos (en lugar de indexarlo con un nmero entero). Normalmente, el ndice del array asociativo es un string
// Definir un array que indique, para cada producto, // cul es su precio $precios["Azcar"] = 1; $precios["Aceite"] = 4; $precios["Arroz"] = 0.5;
// Variables que se utilizarn // como parmetros de la funcin $var1 = 3; $var2 = "texto"; // Llamada a la funcin $resultado = nombre_funcion($var1, $var2); // Ahora $resultado ya tieneun valor $var3 = $resultado + $var1;
function sumatorio ($n) { $resultado = 0; while ( $n >= 1 ) { $resultado = $resultado + $n; $n = $n - 1; } return $resultado; }
PHP. Ejercicios
Ejercicios
Introducir un texto para realizar una bsqueda en uno -o varios- sitios web (www.google.com) Entrar en una Intranet (zona restringida), con un nombre de usuario y
password
Gestin del correo via Web-mail Participar en Foros ... En general, cualquier accin que requiera una comunicacin de datos con el servidor!
Mtodo de envo (METHOD) = POST (tambin puede ser GET) Accin a realizar (ACTION) = Normalmente la URL de una pgina web
Cuerpo de un FORMulario:
Escribe tu nombre:
Cerrar un FORMulario:
</FORM>
Paso 1:
Usuario: 1) Rellena los campos con los datos 2) Enva los datos hacia el servidor
Paso 2:
Servidor: 1) Recibe el formulario con los datos 2) Accin (ACTION) a realizar: ir a la pgina procesar_mensaje.php
Nosotros haremos:
$nombre = $HTTP_POST_VARS['nombre'];
Y as, del ejemplo anterior tendramos las variables: $nombre, $mail y $texto con los valores introducidos por el usuario
Escribe tu mail:
Escribe el mensaje:
PHP permite obtener los valores enviados a travs de la pgina y trabajar con ellos
Nosotros haremos:
$cod_pro = $HTTP_GET_VARS['cod_pro'];
Del ejemplo anterior recibiramos (en la pgina productos.php) la variable: $cod_prod y su valor sera 4
Cuando recibimos parmetros (va POST o GET) en una pgina PHP, podemos verificar si el usuario ha asignado algn valor al parmetro, o bien lo ha dejado en blanco
Importante para validar que los datos introducidos son correctos y podemos trabajar con ellos!!!
Ejemplo:
formluario.html
<FORM METHOD='POST' ACTION='procesar_formulario.php'> Escribe tu nombre: <INPUT TYPE='text' NAME='nombre'> <INPUT TYPE='submit' value='Enviar'> </FORM>
procesar_formulario.php
// Verificar que la variable $nombre tenga algn valor if ( !isset($HTTP_POST_VARS['nombre']) || $HTTP_POST_VARS['nombre'] == "" ) die("ERROR:: El nombre no tiene ningn valor!"); else $nombre = $HTTP_POST_VARS['nombre'];
Una aplicacin tpica para usar sesiones de PHP es para el acceso a una Intranet. Una vez validado el usuario (con username y password), podr entrar en una zona privada del sitio web. Los pasos a seguir podran ser: 1. Formulario para autentificar al usuario (username y password) 2. Acceso a la BD (MySQL, en nuestro caso) para validar que el usuario existe y el password es correcto 3. Una vez validado, creamos una sesin que identifique al usuario (guardando en la sesin el username -por ejemplo-) 4. Durante el tiempo que el usuario est navegando por la Intranet no har falta validarse en cada pgina, sino simplemente verificar que previamente se cre una sesin, que contiene su username
Consultar si una variable ($name, por ejemplo) ha sido aadida a la sesin actual:
<? // Fichero: consultar_sesion.php // Reanudar la sesin session_start(); // Consultar si la variable $name existe en la sesin if ( isset($HTTP_SESSION_VARS['name']) ) // $_SESSION['name'] { $name = $HTTP_SESSION_VARS['name']; print("El nombre es $name"); } else { die("Error:: no existe la variable name en la sesin!"); } print ("<a href='terminar_sesion.php'>Terminar la sesin</a>"); ?>
Cdigo de ejemplo
La funcin: session_start() debe ir siempre al principio del fichero, antes de ninguna otra instruccin!
header("Location: fichero.php")
La funcin: header("Location: fichero.php") permite redireccionar la pgina actual hacia la pgina indicada en el Location: fichero.php Atencin! no se puede hacer ningn print antes de la instruccin header!
die(Mensaje)
La funcin: die(Mensaje) permite "cortar" la ejecucin del programa PHP -mostrando el mensaje, parmetro de la funcin-
// Datos de la conexin $host = "localhost"; $user = "userpomXX"; $password = "*****"; $database = "pomXX"; // 1) Abrir una conexin con la base de datos $db = mysql_connect($host, $user, $password); // 2) Seleccionar la base de datos con la cual trabajar mysql_select_db($database, $db); // 3) Consulta SQL $consulta = "select nombre, mail from guestbook"; // 4) Ejecutar la consulta $resultado_consulta = mysql_query($consulta, $db); // 5) Mostrar resultados while ( $fila = mysql_fetch_array($resultado_consulta) ) {
// 6) Liberar recursos y cerrar conexin (opcional) mysql_free_result ( $resultado_consulta ); mysql_close ( $db ); ?>