Está en la página 1de 19

PHP.

Introdución

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
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:
<?php y ?>

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

PHP. 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!";
?>
</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";

/* las líneas de código comentadas


pueden ocupar más
de una línea */

print("$strHello World!");
?>

</body>
</html>

PHP. Ejemplos

"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"); ?> </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 sólo con PHP!


Insertar TODOS los tags html dentro de un script PHP

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

PHP. Ejemplos

Con el ejemplo "Hello World" hemos aprendido:


Mostrar datos por pantalla: echo o print (son equivalentes)
Añadir comentarios
// Esto es un comentario que sólo puede ocupar una línea
/* Esto es un comentario
que ocupa más de una línea */

Declaración 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 dónde 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

Solución Ejercicios
Hacer un programa en PHP que escriba vuestro nombre (en negrita) y la
ciudad dónde vives.
<?php
$nombre = "Oscar";
$ciudad = "Barcelona";

print("<p>Mi nombre es: <b>$nombre</b> </p>");


print("<p>Nací en $ciudad</p>");
?>

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 , 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. <?php
2. $x = -1;
3. $y = 9;
4. $suma = x + y;
5. print("El valor de x es <i>$x<i>")
6. <br />
7. print("El valor de y es <i>$y</i><br />";
8. print("La suma es <b><i>$suma</i></b><br />");
9. ?>;

PHP. Ejercicios

Detectar los 7 errores. Solución:

1. <?php
2. $x = -1;
3. $y = 9;
4. $suma = $x + $y;
5. print("El valor de x es <i>$x</i>");
6. <br /> => Esto no hace nada aquí !!!
7. print("El valor de y es <i>$y</i><br />");
8. print("La suma es <b><i>$suma</i></b><br />");
9. ?>; => Estamos fuera de PHP!. Cual sería 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>");
?>

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

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

Solución 3: Trabajar con CSS, para evitar poner parte del "diseño" dentro del
código HTML
PHP. Lenguaje y Sintaxis

PHP. Lenguaje y Sintaxis

Contenido
Tipos de datos básicos (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 básicos


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 comparación aritmética [doc. php]

if ( $a == $b ) => IMPORTANTE!!! No hacer: if ( $a = $b )


if ( $a <> $b ) => Equivalente a hacer: if ( $a != $b )
if ( $a > $b )
if ( $a < $b )
if ( $a >= $b )
if ( $a <= $b )

PHP. Lenguaje y Sintaxis

Operadores de comparación 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 (negación 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] = "Azúcar";
$productos[1] = "Aceite";
$productos[2] = "Arroz";

Array (vector) $productos


Los valores 0, 1 y 2 son los índices del array
"Azúcar", "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", "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] = "Azúcar";
$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 número 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) Más funciones en la documentación 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 línea
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
número entero).
Normalmente, el índice del array asociativo es un string

// Definir un array que indique, para cada producto,


// cuál es su precio
$precios["Azúcar"] = 1;
$precios["Aceite"] = 4;
$precios["Arroz"] = 0.5;

(otra posible) Inicialización del array $precios

$precios = array(
"Azúcar" => 1,
"Aceite" => 4,
"Arroz" => 0.5
);

PHP. Lenguaje y Sintaxis

Mostrar el contenido del array $precios (foreach)

$precios = array(
"Azúcar" => 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(
"Azúcar" => 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]


Declaración de una función nombre_funcion

function nombre_funcion ($param1, $param2, ...)


{
...

return $variable;
}

Llamada a la función nombre_funcion

// Variables que se utilizarán


// como parámetros de la función
$var1 = 3;
$var2 = "texto";

// Llamada a la función
$resultado = nombre_funcion($var1, $var2);
// Ahora $resultado ya tieneun valor
$var3 = $resultado + $var1;

PHP. Lenguaje y Sintaxis

Declaración de la función 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 función sumatorio(n)

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

PHP. Ejercicios

Ejercicios
Implementar la función mayor(x, y)
Implementar la función abs(x)
PHP. Lenguaje y Sintaxis

Envío de datos al servidor

Formularios

Envío de parámetros en la URL


PHP. Lenguaje y Sintaxis

Gestión de Formularios html (POST)

Formulario = entrada (y envío) de datos

Mediante el uso de formularios, el cliente puede enviar datos al


servidor
Ejemplos:
Introducir un texto para realizar una búsqueda en uno -o varios- sitios web
(www.google.com)
Entrar en una Intranet (zona restringida), con un nombre de usuario y
password
Gestión del correo via Web-mail
Participar en Foros
...
En general, cualquier acción que requiera una comunicación 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'>

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

...

<INPUT TYPE='submit' value='Enviar'>

INPUT TYPE='submit'. Botón de envío 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) Envía los datos hacia el servidor

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

A partir de PHP, versión 4.1.0:

$nombre = $_POST['nombre'];

Y así, del ejemplo anterior tendríamos las variables: $nombre, $mail y $texto
con los valores introducidos por el usuario

// Página formulario.html
Escribe tu nombre:

Escribe tu mail:

Escribe el mensaje:

Enviar

PHP. Lenguaje y Sintaxis

Envío de parámetros en HTTP (GET)

Protocolo HTTP: permite enviar datos al servidor, mediante el uso de


paso de parámetros en la URL

http://www.prueba.org/productos.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'];

A partir de PHP, versión 4.1.0:

$cod_pro = $_GET['cod_pro'];

Del ejemplo anterior recibiríamos (en la página productos.php) la variable:


$cod_prod y su valor sería 4

Paso de parámetros (más de uno)

http://www.prueba.org/productos.php?cod_prod=4&precio=40
Separamos los parámetros mediante el símbolo &
PHP. 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, 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 algún valor


if ( !isset($HTTP_POST_VARS['nombre']) || $HTTP_POST_VARS['nombre'] == "" )
die("ERROR:: El nombre no tiene ningún valor!");
else
$nombre = $HTTP_POST_VARS['nombre'];

PHP. Lenguaje y Sintaxis

Trabajando con Sesiones

Una sesión es la secuencia de páginas que un usuario visita en un


sitio web. Desde que entra en el sitio, hasta que lo abandona.

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. Una vez validado el usuario (con username y password), podrá
entrar en una zona privada del sitio web.
Los pasos a seguir podrían 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 sesión que identifique al usuario (guardando en la
sesión el username -por ejemplo-)
4. Durante el tiempo que el usuario está navegando por la Intranet no hará falta
validarse en cada página, sino simplemente verificar que previamente se creó una
sesión, que contiene su username

PHP. Lenguaje y Sintaxis

Inicializar (o reiniciar) una sesión:

<?
session_start();
print "He inicializado la sesión";
?>

Añadir una variable a la sesión 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 añadir $name a la sesión actual");


print ("<a href='consultar_sesion.php'>Siguiente</a>");
?>

Consultar si una variable ($name, por ejemplo) ha sido añadida a la


sesión actual:

<?
// Fichero: consultar_sesion.php

// Reanudar la sesión
session_start();

// Consultar si la variable $name existe en la sesión


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 sesión!");
}

print ("<a href='terminar_sesion.php'>Terminar la sesión</a>");

?>

Terminar la sesión actual:

<?
// Fichero: terminar_sesion.php

session_start();

// Terminamos la sesion actual con la funcion: unset()


unset($HTTP_SESSION_VARS['name']);

?>

Código de ejemplo
PHP. Lenguaje y Sintaxis

Algunos detalles (relacionados con el ejercicio Intranet)

session_start()
La función: session_start() debe ir siempre al principio del fichero, antes de
ninguna otra instrucción!

header("Location: fichero.php")
La función: header("Location: fichero.php") permite redireccionar la página
actual hacia la página indicada en el 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, parámetro de la función-
PHP. Lenguaje y Sintaxis

Acceso a una Base de Datos MySQL


<?

//
// ================================================
//
// Postgrado CPOM-2003
//
// Ejemplo codigo PHP + acceso a una BD MySQL
//
// ================================================
//

// Datos de la conexión
$host = "localhost";
$user = "userpomXX";
$password = "*****";
$database = "pomXX";

// 1) Abrir una conexión 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 conexión (opcional)


mysql_free_result ( $resultado_consulta );
mysql_close ( $db );

?>

PHP. Lenguaje y Sintaxis

FIN DE CURSO!!!

También podría gustarte