Vous êtes sur la page 1sur 17

Introduccin

Acrnimo:

Originariamente (1994): "Personal Home Page" Actualmente: "PHP: Hipertext Preprocessor"


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
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

Multiplataforma (GNU/Linux, Windows, Mac)

Independiente del Sistema Operativo!


PHP. Ejemplos

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

"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)

Declaracin de variables ($nombreVariable)


<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)

Combinacin de tags (etiquetas) html y cdigo PHP


<html> <head> <title>PHP Hello World</title> </head> <body> <b> <?php print("Hello World"); ?> </b> </body> </html>

PHP. 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. Ejemplos

"Hello World" Ejemplo slo con PHP!

Insertar TODOS los tags html dentro de un script PHP

<?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

Con el ejemplo "Hello World" hemos aprendido:


o

Mostrar datos por pantalla: echo o print (son equivalentes) Aadir comentarios
// Esto es un comentario que slo puede ocupar una lnea

o o o

/* Esto es un comentario que ocupa ms de una lnea */

Declaracin de variables:
$strHello = "Hello"; // Variable $strHello de tipo String

Insertar Tags html dentro de un script PHP:


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>"); ?>

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:

Detectar los 7 errores:


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

Detectar los 7 errores. Solucin:


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

Trabajando con TAGS (etiquetas) html dentro de PHP

El problema de las comillas dobles (")


<?php print("<p><font face="Verdana, sans-serif"> Mi nombre es: <b>scar</b> <br /> </font></p>"); ?>

Solucin 1: cambiar " por ' dentro de los TAGS html


<?php print("<p><font face='Verdana, sans-serif'> Mi nombre es: <b>scar</b> <br /> </font></p>"); ?>

Solucin 2: cambiar " por \" dentro de los TAGS html


<?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
PHP. Lenguaje y Sintaxis

PHP. Lenguaje y Sintaxis


Contenido
o o

Tipos de datos bsicos (enteros, strings, ...) 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. Lenguaje y Sintaxis

Tipos de Datos bsicos


o o

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

Estructuras de control de flujo (I)


Sentencias condicionales: if [doc. php]
if ( $cantidad < 0 )

{ print("Error:: La cantidad es negativa!"); } elseif ( $cantidad < 10 ) { print("La cantidad pedida es menor que 10"); } else { print("La cantidad es: $cantidad"); }

PHP. Lenguaje y Sintaxis

Operadores de comparacin aritmtica [doc. 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

Operadores de comparacin booleana (cierto / falso) [doc. php]


AND ($x e $y son ciertos): $x && $y , $x and $y OR ($x o $y son ciertos): $x || $y , $x or $y NOT (negacin de $x): !$x

PHP. Lenguaje y Sintaxis

Estructuras de control de flujo (II)


Sentencias iterativas: while [doc. php]
$i = 1; while ( $i <= 5 ) { print("$i<br />"); $i++; // equivalente a hacer: $i = $i + 1; }

PHP. Lenguaje y Sintaxis

Sentencias iterativas: for [doc. php]


for ( $i = 1; $i <= 5; $i++ ) { print("$i<br />");

PHP. Lenguaje y Sintaxis

Sentencias iterativas:

Diferencias entre while y for ?


PHP. Lenguaje y Sintaxis

Tipos de datos estructurados (simples): Array (vector o matriz)


$productos[0] = "Azcar"; $productos[1] = "Aceite"; $productos[2] = "Arroz";

o o o

Array (vector) $productos


Los valores 0, 1 y 2 son los ndices del array "Azcar", "Aceite" y "Arroz" son los valores que contiene el array El vector contiene 3 posiciones pero se indexa de 0 a 2 (!)

(otra posible) Inicializacin del array $productos


$productos = array("Azcar", "Aceite", "Arroz"); ^ ^ ^ [ 0 ] [ 1 ] [ 2 ]

PHP. Lenguaje y Sintaxis

Mostrar el contenido del array $productos (for)


for ($i=0; $i<3; $i++){ print $productos[$i] . "<br />"; }

PHP. Lenguaje y Sintaxis

foreach: Mostrar el contenido del array $productos [doc. php]


$productos[0] = "Azcar"; $productos[1] = "Aceite"; $productos[2] = "Arroz"; print "<ul>"; foreach ( $productos as $producto ) { print "<li>" . $producto . "</li>"; } print "</ul>";

PHP. Lenguaje y Sintaxis

Algunas funciones tiles sobre arrays:



count($array). Devuelve el nmero de posiciones del vector sort($array). Ordena el vector shuffle($array). Mezcla (desordena) el vector $array = range(-4, 7);. Genera un array, siendo sus elementos los valores del -4 al 7

(muchas) Ms funciones en la documentacin del lenguaje: http://www.php.net


PHP. Lenguaje y Sintaxis

Lectura de un fichero
$linias = file('datos.txt'); foreach ($linias as $num_linea => $linea) { // Mostrar el contenido de la lnea print htmlspecialchars($linea)."<br />"; }

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 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;

(otra posible) Inicializacin del array $precios


$precios = array( "Azcar" => 1, "Aceite" => 4, "Arroz" => 0.5 );

PHP. Lenguaje y Sintaxis

Mostrar el contenido del array $precios (foreach)


$precios = array( "Azcar" => 1, "Aceite" => 4, "Arroz" => 0.5 ); foreach ( $precios as $producto => $precio ) { print "Producto: " . $producto . " Precio: " . $precio . "<br />";

PHP. Lenguaje y Sintaxis

Mostrar el contenido del array $precios (while)


$precios = array( "Azcar" => 1, "Aceite" => 4, "Arroz" => 0.5 ); while ( list( $producto, $precio ) = each( $precios ) ) { print "Producto: " . $producto . " Precio: " . $precio . "<br />"; }

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

Funciones [doc. php]

Declaracin de una funcin nombre_funcion


function nombre_funcion ($param1, $param2, ...) { ... return $variable; }

Llamada a la funcin nombre_funcion


// 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;

PHP. Lenguaje y Sintaxis

Declaracin de la funcin sumatorio (suma los n-1 enteros anteriores a n)


function sumatorio ($n) { $resultado = 0;

while ( $n >= 1 ) { $resultado = $resultado + $n; $n = $n - 1; } return $resultado; }

Llamada a la funcin sumatorio(n)


$n = rand(1, 20); print("Sumatorio de $n es: ".sumatorio ($n)."<br />");

PHP. Ejercicios

Ejercicios

Implementar la funcin mayor(x, y) Implementar la funcin abs(x)


PHP. Lenguaje y Sintaxis

Envo de datos al servidor


Formularios Envo de parmetros en la URL
PHP. Lenguaje y Sintaxis

Gestin de Formularios html (POST)


Formulario = entrada (y envo) de datos Mediante el uso de formularios, el cliente puede enviar datos al servidor Ejemplos:

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

Ejemplo de Formulario en html:


<html> <head> <title>Ejemplo de Formularios</title>

</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. Lenguaje y Sintaxis

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>

PHP. Lenguaje y Sintaxis

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

PHP permite recoger los valores introducidos en el formulario html

Nosotros haremos:
$nombre = $HTTP_POST_VARS['nombre'];

A partir de PHP, versin 4.1.0:


$nombre = $_POST['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

PHP. Lenguaje y Sintaxis

Envo de parmetros en HTTP (GET)

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'];

A partir de PHP, versin 4.1.0:


$cod_pro = $_GET['cod_pro'];

Del ejemplo anterior recibiramos (en la pgina productos.php) la variable: $cod_prod y su valor sera 4

Paso de parmetros (ms de uno)


http://www.prueba.org/productos.php?cod_prod=4&precio=40

Separamos los parmetros mediante el smbolo &


PHP. Lenguaje y Sintaxis

Verificar si un parmetro tiene valor o no: funcin isset()


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'];

PHP. Lenguaje y Sintaxis

Trabajando con Sesiones


Una sesin es la secuencia de pginas que un usuario visita en un sitio web. Desde que entra en el sitio, hasta que lo abandona. Aplicacin tpica: Acceso a una Intranet

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.

PHP. Lenguaje y Sintaxis

Inicializar (o reiniciar) una sesin:


<? session_start(); print "He inicializado la sesin"; ?>

Aadir una variable a la sesin actual:


<? // Fichero: crear_sesion.php session_start(); $name = "Oscar"; $HTTP_SESSION_VARS["user"] = $name; // $_SESSION['name'] = $name; para versiones >= 4.1.0 print ("Acabo de aadir $name a la sesin actual"); print ("<a href='consultar_sesion.php'>Siguiente</a>"); ?>

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>"); ?>

Terminar la sesin actual:


<? // Fichero: terminar_sesion.php session_start(); // Terminamos la sesion actual con la funcion: unset() unset($HTTP_SESSION_VARS['name']); ?>

Cdigo de ejemplo
PHP. Lenguaje y Sintaxis

Algunos detalles (relacionados con el ejercicio Intranet)


session_start()

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

Acceso a una Base de Datos MySQL

<? // // // // // // // // // ================================================ 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 ); ?>

PHP. Lenguaje y Sintaxis

FIN DE CURSO!!!

Vous aimerez peut-être aussi