Académique Documents
Professionnel Documents
Culture Documents
Acrnimo:
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
o o o
Embebido (embedded) en una pgina html Servidores Web que soportan PHP
Apache Mdulo ISAPI para Microsoft Internet Information Server (IIS) ...
PHP. Introducin
Primeros Ejemplos
"Hello World (I)"
El cdigo PHP se inserta dentro del cdigo html utilizando las marcas:
<?php y ?>
<html> <head> <title>PHP Hello World</title> </head> <body> <?php print("Hello World!"); ?> </body> </html>
PHP. Ejemplos
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
PHP. Ejemplos
PHP. Ejemplos
PHP. Ejemplos
<?php print print print print print print print print ?>
("<html>"); ("<head>"); (" <title>PHP Hello World</title>"); (" </head>"); (" <body>"); (" <p>Hello World!</p>"); (" </body>"); ("</html>");
PHP. Ejemplos
Mostrar datos por pantalla: echo o print (son equivalentes) Aadir comentarios
// Esto es un comentario que slo puede ocupar una lnea
o o o
Declaracin de variables:
$strHello = "Hello"; // Variable $strHello de tipo String
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>"); ?>
Resultado (HTML) del cdigo anterior (con un ejemplo de CSS): Mi nombre es: Oscar Nac en Barcelona
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:
1. 2. 3. 4. 5. 6. 7. 8. 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 es <b><i>$suma</i></b><br />"); ?>;
PHP. Ejercicios
1. 2. 3. 4. 5. 6. 7. 8. 9.
<?php $x = -1; $y = 9; $suma = $x + $y; print("El valor de x es <i>$x</i>"); <br /> => Esto no hace nada aqu !!! print("El valor de y es <i>$y</i><br />"); print("La suma es <b><i>$suma</i></b><br />"); ?>; => Estamos fuera de PHP!. Cual sera el resultado?
PHP. Ejemplos
Solucin 3: Trabajar con CSS, para evitar poner parte del "diseo" dentro del cdigo HTML
PHP. Lenguaje y Sintaxis
Tipos de datos estructurados Simples (arrays) Tipos de datos estructurados Complejos (arrays asociativos) Funciones
PHP. Lenguaje y Sintaxis
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):
$x = true; $x = ( $precio1 > $precio2 );
PHP. Lenguaje y Sintaxis
{ print("Error:: La cantidad es negativa!"); } elseif ( $cantidad < 10 ) { print("La cantidad pedida es menor que 10"); } else { print("La cantidad es: $cantidad"); }
Sentencias iterativas:
o o o
Lectura de un fichero
$linias = file('datos.txt'); foreach ($linias as $num_linea => $linea) { // Mostrar el contenido de la lnea print htmlspecialchars($linea)."<br />"; }
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;
each($precios). Devuelve el elemento actual del array list($producto, $precio). Vincula el primer campo del array $precios (el nombre del producto) con la variable $producto, y vincula el segundo campo del array $precios(precio) con la variable $precio
PHP. Lenguaje y Sintaxis
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!
PHP. Lenguaje y Sintaxis
</head> <body> <FORM METHOD='POST' ACTION='procesar_mensaje.php'> Escribe tu nombre: <INPUT TYPE='text' NAME='nombre'> Escribe tu mail: <INPUT TYPE='text' NAME='mail'> Escribe el mensaje: <TEXTAREA rows='11' name='texto' cols='60'></textarea> <INPUT TYPE='submit' value='Enviar'> </FORM> </body> </html>
Cabecera de un FORMulario:
<FORM METHOD='POST' ACTION='procesar_mensaje.php'>
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: <INPUT TYPE='text' NAME='nombre'> ... <INPUT TYPE='submit' value='Enviar'>
INPUT TYPE='submit'. Botn de envo de datos (con el texto Enviar -campo 'value'-)
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
// Pgina formulario.html Escribe tu nombre:
Escribe tu mail:
Escribe el mensaje:
Enviar
Protocolo HTTP: permite enviar datos al servidor, mediante el uso de paso de parmetros en la URL
http://www.prueba.org/productos.php?cod_prod=4
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:
Formulario para autentificar al usuario (username y password) Acceso a la BD (MySQL, en nuestro caso) para validar que el usuario existe y el password es correcto Una vez validado, creamos una sesin que identifique al usuario (guardando en la sesin el username -por ejemplo-) 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
1. 2. 3. 4.
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
PHP. Lenguaje y Sintaxis
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 funcinPHP. Lenguaje y Sintaxis
<? // // // // // // // // // ================================================ Postgrado CPOM-2003 Ejemplo codigo PHP + acceso a una BD MySQL ================================================
// 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) ) { print("$fila[mail]<br />"); print("$fila[nombre]<br />"); } // 6) Liberar recursos y cerrar conexin (opcional) mysql_free_result ( $resultado_consulta ); mysql_close ( $db ); ?>
FIN DE CURSO!!!