PHP. Introdución

Introducción

Acrónimo:

PHP. Introdución

Lenguaje orientado para la programación en entorno web

PHP. Introdución

Integración en la web

PHP. Introdución

Multiplataforma (GNU/Linux, Windows, Mac)

PHP. Ejemplos

Primeros Ejemplos

"Hello World (I)"

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

PHP. Ejemplos

"Hello World" (II)

<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 líneas de código comentadas 
      pueden ocupar más 
      de una línea */
	  
      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 sólo con 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:

PHP. Ejercicios

Ejercicios

PHP. Ejercicios

Solución Ejercicios

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

PHP. Lenguaje y Sintaxis

PHP. Lenguaje y Sintaxis

Contenido

PHP. Lenguaje y Sintaxis

Tipos de Datos básicos

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:

PHP. Lenguaje y Sintaxis

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

$productos[0] = "Azúcar";
$productos[1] = "Aceite";
$productos[2] = "Arroz";
$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:

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

// Definir un array que indique, para cada producto, 
// cuál es su precio
$precios["Azúcar"] = 1; 
$precios["Aceite"] = 4; 
$precios["Arroz"] = 0.5;
$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 />";
}

PHP. Lenguaje y Sintaxis

Funciones [doc. php]

function nombre_funcion ($param1, $param2, ...)
{
  ...
  
  return $variable;
}
// 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

function sumatorio ($n) {
  $resultado = 0;
  while ( $n >= 1 ) {
    $resultado = $resultado + $n;
    $n = $n - 1;
  }
  return $resultado;
}
  $n = rand(1, 20); 
  print("Sumatorio de $n es: ".sumatorio ($n)."<br />");

PHP. Ejercicios

Ejercicios

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:

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

Cuerpo de un FORMulario:

  Escribe tu nombre:
  <INPUT TYPE='text' NAME='nombre'>

  ...

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

Cerrar un FORMulario:

</FORM>

PHP. Lenguaje y Sintaxis

PHP permite recoger los valores introducidos en el formulario html

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

Escribe tu mail:

Escribe el mensaje:

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

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

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

PHP. Lenguaje y Sintaxis

Verificar si un parámetro tiene valor o no: función isset()

Ejemplo:

<FORM METHOD='POST' ACTION='procesar_formulario.php'>

  Escribe tu nombre:
  <INPUT TYPE='text' NAME='nombre'>

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

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

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

header("Location: fichero.php")

die(Mensaje)

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