Introducción

Acrónimo:
 

Originariamente (1994): "Personal Home Page" Actualmente: "PHP: Hipertext Preprocessor"
PHP. Introdución

Lenguaje orientado para la programación en entorno web
 

Lenguaje de scripting que se inserta en documentos html El código PHP se interpreta en el Servidor Web, generando código html que es enviado al browser

PHP. Introdución

Integración en la web
  o o o

Embebido (embedded) en una página html Servidores Web que soportan PHP
Apache Módulo ISAPI para Microsoft Internet Information Server (IIS) ...
PHP. Introdución

Multiplataforma (GNU/Linux, Windows, Mac)

Independiente del Sistema Operativo!
PHP. Ejemplos

Primeros Ejemplos
"Hello World (I)"

El código PHP se inserta dentro del código html utilizando las marcas:

?> </body> </html> PHP. ?> </body> </html> PHP. Ejemplos "Hello World" (III)  Declaración de variables ($nombreVariable) <html> <head> <title>PHP – Hello World</title> </head> <body> <?php // las variables siempre empiezan con ‘$’ $strHello = "Hello". ?> </body> </html> PHP. /* las líneas de código comentadas pueden ocupar más de una línea */ print("$strHello World!"). Ejemplos .o <?php y ?> <html> <head> <title>PHP – Hello World</title> </head> <body> <?php print("Hello World!"). Ejemplos "Hello World" (II)    Mostrar información : print / echo Añadir comentarios a una línea: // Sentencias terminan con . <html> <head> <title>PHP – Hello World</title> </head> <body> <?php // echo y print son equivalentes echo "Hello World!".

(" </head>"). ("</html>"). (" <p>Hello World!</p>"). PHP. Ejemplos "Hello World" – Ejemplo sólo con PHP!  Insertar TODOS los tags html dentro de un script PHP <?php print print print print print print print print ?> ("<html>"). (" </body>"). (" <body>"). (" <title>PHP – Hello World</title>"). ?> </b> </body> </html> PHP. Ejemplos Con el ejemplo "Hello World" hemos aprendido:   o Mostrar datos por pantalla: echo o print (son equivalentes) Añadir comentarios // Esto es un comentario que sólo puede ocupar una línea . ("<head>"). Ejemplos "Hello World" (IV-b)  Insertar tags html dentro de un script PHP <html> <head> <title>PHP – Hello World</title> </head> <body> <?php print("<b>Hello</b> <i>World</i>"). ?> </body> </html> PHP."Hello World" (IVa)  Combinación de tags (etiquetas) html y código PHP <html> <head> <title>PHP – Hello World</title> </head> <body> <b> <?php print("Hello World").

y=9. ?> Resultado (HTML) del código 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 .          <?php $nombre = "Oscar". por ejemplo). PHP. Ejercicios Solución Ejercicios  Hacer un programa en PHP que escriba vuestro nombre (en negrita) y la ciudad dónde vives.o  o  o /* Esto es un comentario que ocupa más de una línea */ Declaración de variables: $strHello = "Hello". $suma = $x + $y. PHP. $y = 9. Hacer un programa en PHP que escriba el resultado de la suma de dos variables (x = -1 e y = 9. print("<p>Mi nombre es: <b>$nombre</b> </p>"). print("El valor de y es: <i>$y</i> <br />"). print("<p>Nací en $ciudad</p>"). // Variable $strHello de tipo String Insertar Tags html dentro de un script PHP: print("<b>Hello</b> <i>World</i>"). Ejercicios Ejercicios   Hacer un programa en PHP que escriba vuestro nombre (en negrita) y la ciudad dónde naciste. $ciudad = "Barcelona". .          <?php $x = -1. print("La suma de x e y es: <i>$suma</i>"). print("El valor de x es: <i>$x</i> <br />").

4. Ejemplos Trabajando con TAGS (etiquetas) html dentro de PHP  El problema de las comillas dobles (") <?php print("<p><font face="Verdana. 5. 6. 4. $suma = x + y. ?>. 2. 7. print("El valor de x es <i>$x</i>"). 8. $y = 9. PHP. 6. 8. 9. 9. $y = 9. 5. Cual sería el resultado? PHP. 3. print("El valor de x es <i>$x<i>") <br /> print("El valor de y es <i>$y</i><br />". 3. sans-serif"> Mi nombre es: <b>Òscar</b> <br /> </font></p>").   ?> PHP. ?> . ?>. Ejercicios  Detectar los 7 errores. 2. <?php $x = -1. print("La suma es <b><i>$suma</i></b><br />"). => Estamos fuera de PHP!. print("La suma es <b><i>$suma</i></b><br />"). 7. $suma = $x + $y. <?php $x = -1. Ejercicios Ejercicio de repaso:  Detectar los 7 errores:            1. <br /> => Esto no hace nada aquí !!! print("El valor de y es <i>$y</i><br />"). Solución:            1.

php] if ( $cantidad < 0 ) ..) Estructuras de control de flujo Sentencias condicionales (if) Sentencias iterativas (while y for) Tipos de datos estructurados Simples (arrays) Tipos de datos estructurados Complejos (arrays asociativos) Funciones PHP. PHP. sans-serif'> Mi nombre es: <b>Òscar</b> <br /> </font></p>").g: "Hello"): $x = "Hello". String (cadena de caracteres. Lenguaje y Sintaxis PHP. Lenguaje y Sintaxis Contenido   o o    Tipos de datos básicos (enteros. $x = ( $precio1 > $precio2 ).g: -1): $x = -1. e. e. Lenguaje y Sintaxis Tipos de Datos básicos     o o Integer (entero. .. false): $x = true. ?>  Solución 2: cambiar " por ###BOT_TEXT###quot; dentro de los TAGS html <?php print("<p><font face=###BOT_TEXT###quot;Verdana. strings. e. para evitar poner parte del "diseño" dentro del código HTML PHP.2e4.g: 1. ?>  Solución 3: Trabajar con CSS. Double (real. Lenguaje y Sintaxis Estructuras de control de flujo (I) Sentencias condicionales: if [doc. sans-serif###BOT_TEXT###quot;> Mi nombre es: <b>Òscar</b> <br /> </font></p>").2e4): $x = 1. Solución 1: cambiar " por ' dentro de los TAGS html <?php print("<p><font face='Verdana. Boolean (Valores posibles: true.

} PHP. $i <= 5. $i++. Lenguaje y Sintaxis Sentencias iterativas: for [doc. $x and $y OR ($x o $y son ciertos): $x || $y .{ print("Error:: La cantidad es negativa!"). php] AND ($x e $y son ciertos): $x && $y . . } else { print("La cantidad es: $cantidad"). } PHP. } elseif ( $cantidad < 10 ) { print("La cantidad pedida es menor que 10"). php] for ( $i = 1. while ( $i <= 5 ) { print("$i<br />"). php] $i = 1. // equivalente a hacer: $i = $i + 1. Lenguaje y Sintaxis Operadores de comparación booleana (cierto / falso) [doc. Lenguaje y Sintaxis Operadores de comparación aritmética [doc. $i++ ) { print("$i<br />"). $x or $y NOT (negación de $x): !$x PHP. php] if if if if if if ( ( ( ( ( ( $a $a $a $a $a $a == $b ) => IMPORTANTE!!! No hacer: if ( $a = $b ) <> $b ) => Equivalente a hacer: if ( $a != $b ) > $b ) < $b ) >= $b ) <= $b ) PHP. Lenguaje y Sintaxis Estructuras de control de flujo (II) Sentencias iterativas: while [doc.

Lenguaje y Sintaxis . "</li>". php] $productos[0] = "Azúcar". PHP. Lenguaje y Sintaxis Tipos de datos estructurados (simples): Array (vector o matriz) $productos[0] = "Azúcar". "<br />". 1 y 2 son los índices del array "Azúcar". Lenguaje y Sintaxis Sentencias iterativas:  Diferencias entre while y for ? PHP.} PHP. $productos[1] = "Aceite". ^ ^ ^ [ 0 ] [ 1 ] [ 2 ] PHP. $productos[2] = "Arroz".  o o o  Array (vector) $productos Los valores 0. } print "</ul>". Lenguaje y Sintaxis Mostrar el contenido del array $productos (for) for ($i=0. "Aceite". $productos[2] = "Arroz". Lenguaje y Sintaxis foreach: Mostrar el contenido del array $productos [doc. $productos[1] = "Aceite". } PHP. print "<ul>". "Aceite" y "Arroz" son los valores que contiene el array El vector contiene 3 posiciones pero se indexa de 0 a 2 (!) (otra posible) Inicialización del array $productos $productos = array("Azúcar". $producto . $i<3. $i++){ print $productos[$i] . "Arroz"). foreach ( $productos as $producto ) { print "<li>" .

7).Algunas funciones útiles sobre arrays:      count($array).. Lenguaje y Sintaxis Mostrar el contenido del array $precios (foreach) $precios = array( "Azúcar" => 1. Ordena el vector shuffle($array). "Arroz" => 0.txt'). $precios["Arroz"] = 0. } PHP. el índice del array asociativo es un string // Definir un array que indique. "Aceite" => 4.net PHP. Lenguaje y Sintaxis Tipos de datos estructurados (complejos): Arrays Asociativos   Indexar el array por tipos de datos complejos (en lugar de indexarlo con un número entero). . $precio .  (otra posible) Inicialización del array $precios $precios = array( "Azúcar" => 1. // cuál es su precio $precios["Azúcar"] = 1. PHP.5 ). siendo sus elementos los valores del -4 al 7 (muchas) Más funciones en la documentación del lenguaje: http://www. Mezcla (desordena) el vector $array = range(-4.php. Genera un array. Lenguaje y Sintaxis Lectura de un fichero $linias = file('datos. foreach ( $precios as $producto => $precio ) { print "Producto: " . para cada producto.5 ). foreach ($linias as $num_linea => $linea) { // Mostrar el contenido de la línea print htmlspecialchars($linea). Normalmente. $producto ."<br />". " Precio: " . Devuelve el número de posiciones del vector sort($array). $precios["Aceite"] = 4.5. "Aceite" => 4. "<br />". "Arroz" => 0.

$var2). . return $variable. $var2 = "texto".5 ).} PHP. Devuelve el elemento actual del array list($producto. php]  Declaración de una función nombre_funcion function nombre_funcion ($param1. Lenguaje y Sintaxis Funciones [doc. y vincula el segundo campo del array $precios(precio) con la variable $precio PHP. }   each($precios). "<br />".. " Precio: " . "Aceite" => 4. Lenguaje y Sintaxis Mostrar el contenido del array $precios (while) $precios = array( "Azúcar" => 1. // Llamada a la función $resultado = nombre_funcion($var1. $precio). // Ahora $resultado ya tieneun valor $var3 = $resultado + $var1.. PHP. $producto . }  Llamada a la función nombre_funcion // Variables que se utilizarán // como parámetros de la función $var1 = 3.. $precio ) = each( $precios ) ) { print "Producto: " . Lenguaje y Sintaxis  Declaración de la función sumatorio (suma los n-1 enteros anteriores a n) function sumatorio ($n) { $resultado = 0. $precio . Vincula el primer campo del array $precios (el nombre del producto) con la variable $producto.) { . . while ( list( $producto. "Arroz" => 0.. $param2.

$n = $n . y) Implementar la función abs(x) PHP. En general.sitios web (www. Ejercicios Ejercicios   Implementar la función mayor(x. Lenguaje y Sintaxis Envío de datos al servidor Formularios Envío de parámetros en la URL PHP. el cliente puede enviar datos al servidor Ejemplos:       Introducir un texto para realizar una búsqueda en uno -o varios.. con un nombre de usuario y password Gestión del correo via Web-mail Participar en Foros ."<br />"). 20). PHP. Lenguaje y Sintaxis Ejemplo de Formulario en html: <html> <head> <title>Ejemplo de Formularios</title> .1.while ( $n >= 1 ) { $resultado = $resultado + $n.sumatorio ($n).com) Entrar en una Intranet (zona restringida). }  Llamada a la función sumatorio(n) $n = rand(1. print("Sumatorio de $n es: "..google. } return $resultado. cualquier acción que requiera una comunicación de datos con el servidor! PHP. Lenguaje y Sintaxis Gestión de Formularios html (POST) Formulario = entrada (y envío) de datos Mediante el uso de formularios.

<INPUT TYPE='submit' value='Enviar'>  INPUT TYPE='submit'. Lenguaje y Sintaxis Cabecera de un FORMulario: <FORM METHOD='POST' ACTION='procesar_mensaje. Lenguaje y Sintaxis  Paso 1:    Usuario: 1) Rellena los campos con los datos 2) Envía los datos hacia el servidor ..php'>   Método de envío (METHOD) = POST (también puede ser GET) Acción a realizar (ACTION) = Normalmente la URL de una página web Cuerpo de un FORMulario: Escribe tu nombre: <INPUT TYPE='text' NAME='nombre'> .</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> PHP. Botón de envío de datos (con el texto Enviar -campo 'value'-) Cerrar un FORMulario: </FORM> PHP..

$mail y $texto con los valores introducidos por el usuario // Página formulario. Paso 2:     Servidor: 1) Recibe el formulario con los datos 2) Acción (ACTION) a realizar: ir a la página procesar_mensaje.php PHP permite recoger los valores introducidos en el formulario html  Nosotros haremos: $nombre = $HTTP_POST_VARS['nombre'].html Escribe tu nombre: Escribe tu mail: Escribe el mensaje: Enviar PHP.  A partir de PHP.1.  Y así. Lenguaje y Sintaxis Envío de parámetros en HTTP (GET) . versión 4. del ejemplo anterior tendríamos las variables: $nombre.0: $nombre = $_POST['nombre'].

prueba.org/productos.org/productos.php) la variable: $cod_prod y su valor sería 4 Paso de parámetros (más de uno) http://www.  Del ejemplo anterior recibiríamos (en la página productos.php'> Escribe tu nombre: <INPUT TYPE='text' NAME='nombre'> <INPUT TYPE='submit' value='Enviar'> </FORM>  procesar_formulario.php?cod_prod=4 PHP permite obtener los valores enviados a través de la página y trabajar con ellos  Nosotros haremos: $cod_pro = $HTTP_GET_VARS['cod_pro'].0: $cod_pro = $_GET['cod_pro'].prueba. 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.Protocolo HTTP: permite enviar datos al servidor. mediante el uso de paso de parámetros en la URL http://www.php // Verificar que la variable $nombre tenga algún valor .php?cod_prod=4&precio=40  Separamos los parámetros mediante el símbolo & PHP.  A partir de PHP. versión 4.1. Lenguaje y Sintaxis Verificar si un parámetro tiene valor o no: función isset()   Cuando recibimos parámetros (vía POST o GET) en una página PHP. podemos verificar si el usuario ha asignado algún valor al parámetro.

creamos una sesión que identifique al usuario (guardando en la sesión el username -por ejemplo-) Durante el tiempo que el usuario está navegando por la Intranet no hará falta validarse en cada página. por ejemplo) ha sido añadida a la sesión actual: . 2. para versiones >= 4. que contiene su username  1. $name = "Oscar". print "He inicializado la sesión". Lenguaje y Sintaxis Inicializar (o reiniciar) una sesión: <? session_start(). ?> Añadir una variable a la sesión actual: <? // Fichero: crear_sesion.php'>Siguiente</a>"). else $nombre = $HTTP_POST_VARS['nombre']. Desde que entra en el sitio. print ("<a href='consultar_sesion.1. 4. // $_SESSION['name'] = $name. sino simplemente verificar que previamente se creó una sesión. Lenguaje y Sintaxis Trabajando con Sesiones Una sesión es la secuencia de páginas que un usuario visita en un sitio web. ?> Consultar si una variable ($name.if ( !isset($HTTP_POST_VARS['nombre']) || $HTTP_POST_VARS['nombre'] == "" ) die("ERROR:: El nombre no tiene ningún valor!"). Aplicación típica: Acceso a una Intranet  Una aplicación típica para usar sesiones de PHP es para el acceso a una Intranet.php session_start().0 print ("Acabo de añadir $name a la sesión actual"). hasta que lo abandona. PHP. Los pasos a seguir podrían ser: Formulario para autentificar al usuario (username y password) Acceso a la BD (MySQL. $HTTP_SESSION_VARS["user"] = $name. podrá entrar en una zona privada del sitio web. en nuestro caso) para validar que el usuario existe y el password es correcto Una vez validado. PHP. Una vez validado el usuario (con username y password). 3.

} print ("<a href='terminar_sesion. } else { die("Error:: no existe la variable name en la sesión!").php // Reanudar la sesión session_start(). ?> Terminar la sesión actual: <? // Fichero: terminar_sesion.php'>Terminar la sesión</a>"). // Terminamos la sesion actual con la funcion: unset() unset($HTTP_SESSION_VARS['name']). Lenguaje y Sintaxis Acceso a una Base de Datos MySQL .php")   La función: header("Location: fichero.php Atención! no se puede hacer ningún print antes de la instrucción header! die(Mensaje)  La función: die(Mensaje) permite "cortar" la ejecución del programa PHP -mostrando el mensaje. ?> Código de ejemplo PHP. parámetro de la funciónPHP. antes de ninguna otra instrucción! header("Location: fichero.php") permite redireccionar la página actual hacia la página indicada en el Location: fichero. Lenguaje y Sintaxis Algunos detalles (relacionados con el ejercicio Intranet) session_start()  La función: session_start() debe ir siempre al principio del fichero. // Consultar si la variable $name existe en la sesión if ( isset($HTTP_SESSION_VARS['name']) ) // $_SESSION['name'] { $name = $HTTP_SESSION_VARS['name'].<? // Fichero: consultar_sesion.php session_start(). print("El nombre es $name").

// 5) Mostrar resultados while ( $fila = mysql_fetch_array($resultado_consulta) ) { print("$fila[mail]<br />"). // 2) Seleccionar la base de datos con la cual trabajar mysql_select_db($database. mysql_close ( $db ). $user = "userpomXX". mail from guestbook". // 3) Consulta SQL $consulta = "select nombre. $db). // 1) Abrir una conexión con la base de datos $db = mysql_connect($host. ?> PHP. $password). $db). print("$fila[nombre]<br />"). Lenguaje y Sintaxis FIN DE CURSO!!! . $database = "pomXX". $user. } // 6) Liberar recursos y cerrar conexión (opcional) mysql_free_result ( $resultado_consulta ). $password = "*****". // 4) Ejecutar la consulta $resultado_consulta = mysql_query($consulta.<? // // // // // // // // // ================================================ Postgrado CPOM-2003 Ejemplo codigo PHP + acceso a una BD MySQL ================================================ // Datos de la conexión $host = "localhost".