información php

104
Una introducción al lenguaje Una introducción al lenguaje

Transcript of información php

Page 1: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 1/104

Page 2: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 2/104

¿Qué es PHP?¿Qué es PHP?

Se trata de un lenguaje de programaciónque es interpretado por un servidor web.

No se trata de un lenguaje genérico. PHPestá orientado al desarrollo de sitios webdinámicos.

No depende del navegador del usuario

(como en Javascript). El código PHP seejecuta en el servidor.

Page 3: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 3/104

¿Cómo funciona PHP?¿Cómo funciona PHP?

El usuario escribe una URL en sunavegador y éste envía un petición HTTP

al servidor web. El servidor lee la pagina PHP (lainterpreta) y envía al navegador delusuario un documento compilado enformato HTML.

Page 4: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 4/104

¿Qué necesito para programarlo?¿Qué necesito para programarlo?

Un servidor web como Apache. Loencontraremos en www.apache.org

Las librerías de PHP para que el servidor 

web pueda ³leer´ PHP. Las descargamosdesde www.php.net

Un editor de texto para escribir las

páginas PHP. Colocar las páginas PHP en algúndirectorio del servidor web y listo !!

Usemos

Weaverslave

Page 5: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 5/104

Instalación de Apache yInstalación de Apache yPHP en WindowsPHP en Windows

Page 6: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 6/104

Instalamos Apache 2.0Instalamos Apache 2.0

Localizamos el ejecutable del instalador yempezamos..

Page 7: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 7/104

 Aceptamos los términos de la licencia«

Page 8: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 8/104

Insertamos los valores del servidor, el dominio y elmail del administrador de Apache

Page 9: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 9/104

Elegimos la instalación personalizada..

Page 10: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 10/104

Elegimos ³Change´ para cambiar el directorio deinstalación por uno más ³corto´ como ³C:\´

Page 11: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 11/104

Con el nuevo directorio elegido, continuamos lainstalación..

Page 12: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 12/104

SÓLO PARA WINDOWS XP SP2: le indicamos alfirewall que desbloquee el servicio Apache para

el puerto 80.

Page 13: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 13/104

Comprobamos la instalación tecleandohttp://localhost en un navegador.

Page 14: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 14/104

En la barra de tareas tenemos el icono paragestionar el servicio Apache.

Page 15: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 15/104

Instalamos PHP como módulo deInstalamos PHP como módulo de Apache en Windows Apache en Windows

1) Descomprimimos el ZIP que contiene PHPen el directorio C:\

2) Copiamos todas las librerías DLL deldirectorio C:\php\sapi en el directoriosystem32 de Windows (para Windows2000 sería C:\winnt\system32)

3) En C:\php tenemos el fichero php.ini-recommended, lo renombramos comophp.ini y lo copiamos al directorio Windows(para Windows 2000 sería C:\winnt)

Page 16: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 16/104

4) Editamos el fichero httpd.conf que seencuentra en c:\Apache2\conf y leagregamos estas líneas:

LoadModule php4_ module C:\php\sapi\php4apache2.dll AddType application/x-httpd-php .php

5) El sitio adecuado del fichero para

hacerlo sería donde encontremos otrasdirectivas del tipo LoadModule y AddType

OJO!!

Page 17: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 17/104

6) Copiamos la DLL "php4ts.dll", que

podemos encontrar en nuestro directoriode instalación de PHP (C:\php) en lacarpeta c:\php\sapi

7) Editamos el fichero httpd.conf ybuscamos el valor DirectoryIndex, lomodificamos para dejarlo como éste:

DirectoryIndex index.html index.html.var index.php

Page 18: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 18/104

Escribimos la siguiente página (usando elnotepad, por ejemplo) prueba.php:

<?php

 phpinfo()

?>

Guardamos la página en la carpeta htdocsdel directorio de instalación de Apache

En un navegador cualquiera probamos la

carga de la página con:http://localhost/prueba.php

Page 19: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 19/104

Si vemos esto, todo fue bien..

 Ahora ya podemos continuar con PHP..

Page 20: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 20/104

Modificación del entorno PHP: elModificación del entorno PHP: elfichero php.inifichero php.ini

Todas las configuraciones para modificar el comportamiento se hacen a través delfichero php.ini (situado en la carpeta

Windows, como c:\winnt ó c:\windows). Una modificación que debemos hacer 

ahora mismo es cambiar el valor de lavariable register  _ globals para ponerla enOn. Mas adelante veremos el motivo.

register_globals = On Importante

Page 21: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 21/104

¿Se parece en algo a Javascript?¿Se parece en algo a Javascript?

 Aunque la sintaxis del lenguaje esparecida (derivada del lenguaje C) elfuncionamiento de los dos es muy distinto.

Javascript se interpreta en el navegador del usuario mientras se carga la pagina.

PHP se interpreta en el servidor. Si PHP

se ejecuta bien, lo hará bien en cualquier navegador.

Page 22: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 22/104

¿Qué se puede hacer con PHP?¿Qué se puede hacer con PHP?

Cualquier cosa, pero PHP está pensadopara el desarrollo de sitios web dinámicoscomo tiendas virtuales en Internet.

PHP está pensado para la conexión conbases de datos como MySQL.

En Internet hay gran cantidad de sitiosque funcionan con la arquitectura LAMP =Linux + Apache + MySQL + PHP

Page 23: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 23/104

Empezando con PHPEmpezando con PHP

Las instrucciones PHP se pueden colocar dentro del las etiquetas HTML.

Para resaltar el código PHP debemos

incluirlo siempre entre las etiquetas:<?php«««««.aquí va el código PHP

«««««.?>

Siempre

escr ibiremosdentro delbloque php

Page 24: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 24/104

El primer programa PHP que muestra unmensaje en el navegador:<?php

echo ³Empezando con PHP´;?>

OJO: todas las líneas de código PHPterminan con punto y coma. Las omisiones del punto y coma provocan

siempre mensajes de error  No es necesario el punto y coma en las

estructuras de control, como veremos.

Page 25: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 25/104

¿Cómo incluir comentarios al¿Cómo incluir comentarios alcódigo?código?

// esto es un comentario corto

/* este comentarioocupa varias

líneas */

# este comentario también es válido

Page 26: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 26/104

¿Qué es una variable?¿Qué es una variable?

Una variable define un punto dealmacenamiento en la memoria delordenador.

Un nombre define a una variable y luegopodemos asignarle diferentes valores a lolargo del programa.

Por ejemplo, una variable puede llamarsenombre y tomar primero el valor de ³Luis´,después ³Pepe´, etc..

Page 27: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 27/104

Tipos de variables en PHPTipos de variables en PHP

PHP reconoce automáticamente los tiposde variables, ya que fue escrito para la web.

PHP trabaja internamente con variables detipo: string (texto), integer (numero entero) yfloat (numero real en coma flotante)

No es necesario declarar las variables,cuando se les asigna un valor ya seconsideran declaradas.

Page 28: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 28/104

¿Cómo nombrar las variables?¿Cómo nombrar las variables?

Toda variable empieza obligatoriamentepor un signo de $, como $nombre

No se deben usar acentos, espacios,diéresis, ni caracteres especiales delteclado.

Se permite usar el guión bajo:  _ 

PHP distingue mayúsculas y minúsculas,por lo que $nombre es distinto de$Nombre.

Page 29: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 29/104

Un ejemploUn ejemplo

<?php

$nombre=³Juan´;

echo ³Hola $nombre, ¿Qué tal?´;

?>

Los valores strings se asignan siempreentre comillas.

Page 30: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 30/104

¿No es necesario concatenar el¿No es necesario concatenar eltexto y las variables?texto y las variables?

No es necesario, por ejemplo en la ordenecho, se pueden mezclar texto y variables sin

usar ningún operador de concatenaciónespecial.

Opcionalmente, se puede usar el operador de

concatenación punto ³.´. Por ejemplo: echo ³Hola´ .$nombre. ³¿Qué tal´

Page 31: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 31/104

¿Cómo incluyo saltos de línea?¿Cómo incluyo saltos de línea?

Podemos usar el HTML y escribir ³breaks´con <br>. Por ejemplo:echo ³linea1<br>´;

echo ³linea2´;

O bien usar el comando ³nueva linea´: \nde PHP. Por ejemplo:echo ³linea1\n´;

echo ³linea2´;

Page 32: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 32/104

 Arrays en PHP Arrays en PHP

Un array permite guardar distintos valoresen una variable y distinguirlos por uníndice, por ejemplo:$variable[indice]

El primer elemento se sitúa en el índice 0.

Para asignar valores al array, lo hacemosasí:$variable[indice]=valor 

Page 33: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 33/104

Por ejemplo, un array con los días de lasemana:<?php$dia[0]=³Lunes´;$dia[1]=³Martes´;

«.«.$dia[6]=³Domingo´;// mostrar el Jueves

echo $dia[3];?>

Page 34: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 34/104

También podemos cargar el array con

datos de la siguiente forma:<?php

$dia=array(³Lunes´,´Martes´,«..,´Domingo´);

// mostrar el Sábado

echo $dia(5);

?>

De este modo la asignación de índices se

hace de modo automático.

Page 35: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 35/104

EjercicioEjercicio

La función date( ) permite trabajar con lafecha actual. Por ejemplo date(³w´) nosdevuelve el numero de día de la semana,empezando por el 0.

Se trata de cargar un array con los 7 díasde la semana y usando la función anterior 

poner en pantalla un mensaje que diga:Hoy es ««´

Page 36: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 36/104

La cantidad de elementos de un array se

puede obtener con la función count, por ejemplo, si tengo un array $dia con 7elementos y le pido el valor de count($dia)

me devolverá un 7.

Page 37: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 37/104

Cálculos con PHPCálculos con PHP

PHP incluye los operadores ³+´, ³-´, ³*´ y ³/´

Por ejemplo: $a=3+5

 Además incluye los operadores deincremento / decremento: ³++´ y ³- -´. Por ejemplo: $a++ es lo mismo que $a=$a+1.Si tengo $b=6 y hago $b- - y entoncestengo que $b=5

Page 38: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 38/104

EjercicioEjercicio

Con las variables $a=5 y $b=32. Realizar los cálculos (e imprimir los resultados) de: ± La suma de a y b

 ± La multiplicación de a y b

 ± Sumar 5 unidades a b

 ± Incrementar una unidad a ³a´

 ± Decrementar un unidad a b ± Asignar a ³a´ el valor de b

Page 39: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 39/104

EjercicioEjercicio

Usando los operadores de PHP, calcular imprimir el precio final de un producto que

cuesta 750 ¼ y al que se aplica un IV A de16 %.

Page 40: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 40/104

La función round(valor,decimales) nospermite redondear una cantidad a unnumero concreto de decimales. Por 

ejemplo:round(1.2375,2) devuelve 1.24

Page 41: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 41/104

Formularios con PHP y HTMLFormularios con PHP y HTML

PHP se hizo pensando en un uso sencillocon los formularios HTML.

 A través de PHP podemos validar yvalorar el contenido de los formularios.

Los formularios se crean en HTML conetiquetas <form> e <input> estándar.

Desde PHP usaremos las variables querepresentan los datos del formulario.

Page 42: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 42/104

EjemploEjemplo

Vamos a realizar un simple formulario HTMLcon una caja de texto y un botón de ³Submit´.

Page 43: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 43/104

Lo que haremos será hacer que el action

del formulario sea mostrar la pagina³valorar.php´ y como method pondremos³post´

<form action="valorar.php" method="post">Su nombre:

<input type="text" name="nombre" />

<input type="submit" value="Enviar"/>

</form>

Page 44: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 44/104

 Ahora crearemos la pagina valorar.php:<?php

echo "Hola $nombre, bienvenido a PHP";?>

Con lo cual, queda claro que para acceder al valor de lacaja, PHP usa el valor del ³name´ de la caja como si

fuese una variable.

Page 45: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 45/104

La estructura condicionalLa estructura condicional if if 

Nos permite evaluar una condición ytomar una decisión según el resultado deltest.

Su sintaxis es:if (condición) {

código a ejecutar si condición es Verdadera }

else {código a ejecutar si condición es Falsa }

Page 46: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 46/104

EjemploEjemplo

Crearemos un formulario HTML con dos botonesde opción (radio), una caja y un botón de Enviar (submit).

Page 47: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 47/104

El código del formulario sería:

<form action="valorar2.php" method="post">Tratamiento

<input type="radio" name="trato" value="h" /> Sr.

<input type="radio" name="trato" value="m³ /> Sra.<br />Su Apellido:

<input type="text" name="apellido" />

<input type="submit" value="Enviar" /></form>

Page 48: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 48/104

 Ahora creamos la pagina valorar2.php:<?php

if  ($trato=="h") {

echo "Hola Se&ntilde;or $apellido";}

else {

echo "Hola Se&ntilde;ora $apellido";}

?>

Page 49: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 49/104

Los operadores de comparaciónLos operadores de comparación

 A==B, permite comprobar si A es igual a B

 A!=B, permite comprobar si A es distintode B

También tenemos: >, >=, <, <= Expr1 && Expr2 es Verdadero si Expr1 y

Expr2 son verdaderas.

Expr1 || Expr2 es Verdadero si Expr1 óExpr2 son verdaderas ó lo son las dos.

Page 50: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 50/104

La funciónLa función isset( )isset( )

Esta función nos permite comprobar siuna variable se ha definido y en ese casodevuelve un True.

La sintaxis es isset($variable)

Muy útil para comprobar si se hanrellenado los campos de un formulario

Page 51: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 51/104

EjercicioEjercicio

Usando la función isset y el bloque if,realizar una comprobación sobre una caja

de texto cualquiera, advirtiendo al usuarioen caso de que la caja se encuentre sindatos.

Page 52: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 52/104

SoluciónSolución

<?php

if (isset($nombre) && $nombre!="") {

echo "Hola $nombre, bienvenido a PHP";}

else {

echo "No has escrito nada"; }

?>

Page 53: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 53/104

Valoración en el propio documentoValoración en el propio documento

<form action=³formulario.php´ method="post"><input type="text" name="nombre" /><input type="submit" name="enviar" /></form>

<?phpif (isset($nombre) && $nombre!="") {echo "Hola $nombre";}else {if (isset($enviar)) {

echo "Rellena los campos";}}

?>

Page 54: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 54/104

Los campos del formulario comoLos campos del formulario comoun arrayun array

PHP puede tratar los datos de unformulario como elementos de un array.

Por ejemplo, si hemos usadomethod=³post´ en el formulario, tendremoslos diferentes campos dentro del array$ _ POST.

Para acceder al campo nombre, loharemos con $ _ POST[³nombre´]

Page 55: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 55/104

EjercicioEjercicio Crear un sencillo formulario con una caja de

texto y un botón de envío que muestre el uso delarray de campos anterior, por ejemplo paraconseguir el campo nombre hacemos:

<?php

if  (isset($_POST["nombre"]) && $_POST["nombre"]!=""&& isset($_POST["boton _ envio"])) {

echo "Hola " .$_POST["nombre"];}?>

Page 56: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 56/104

¿Cómo mantener los datos en un¿Cómo mantener los datos en unformulario?formulario?

Si enviamos un formulario y nos hemosolvidado de cubrir algún campo sabemosque las cajas se vacían (si el formulario sevalida sobre si mismo), en este casopodemos hacer que se rellene un campoautomáticamente haciendo:

<input type="text" name="nombre" value="<?phpif(isset($nombre)) {

echo $nombre;}?>"/>

Page 57: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 57/104

Redirección conRedirección con header header 

La función header de PHP permiteredireccionar nuestra página hacia otracualquiera.

Su sintaxis es header(³Location: URL´), por ejemplo: header(³Location: destino.html´)

Es importante que que esta orden seencuentre antes de la etiqueta <html>inicial

Page 58: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 58/104

EjercicioEjercicio

Redireccionar alguna página HTML haciaotra cualquiera que tengamos en nuestropropio servidor.

Modificar ahora el header para que todaslas conexiones a nuestra página seredirigan a http://www.google.com

Page 59: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 59/104

Page 60: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 60/104

El bloqueEl bloque switchswitch

Comprueba si una variable coincide conalgún valor concreto; en caso afirmativoejecuta un bloque de ordenes.

En caso de no coincidir se ejecuta elbloque default

Después de cada caso pondremos la

orden break para evitar mascomprobaciones.

Page 61: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 61/104

Sintaxis del bloque switch :

switch ($variable) {

case valor1:instrucciones;break;

case valor1:

instrucciones;break;

«..

default:instrucciones por defecto;}

Page 62: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 62/104

EjemploEjemplo<?php

switch ($numero) {case 1:echo ³Has puesto el uno";break;case 2:echo ³Has puesto el dos";break;case 3:echo ³Has puesto el tres";

break;default:echo "No has puesto ni uno, ni dos, ni tres";}?>

Page 63: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 63/104

EjercicioEjercicio

Usando una estructura switch realizar unscript PHP (llamado switch.php) quepermita escribir un día de la semana e una

caja de texto y al darle al botón de enviar nos imprima un texto personalizado. Parasimplificar los casos vamos a considerar como respuestas posibles el lunes, elviernes y el domingo. Los demás días seconsiderarán en el bloque por defecto.

Page 64: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 64/104

EjercicioEjercicio

Sabemos que la etiqueta <bodybgcolor=³color´> permite especificar uncolor de fondo para nuestra pagina.

Se trata de realizar un script PHP (llamado

color.php) que mediante 3 botones deopcion (radio) y un boton estandar desubmit nos permita cambiar el color defondoe entre estos 3 colores: ³white´,

³silver´, ³green´. Por defecto se mostraráel fondo en ³blue´.

S l ióS l ió

Page 65: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 65/104

SoluciónSolución<body bgcolor="<?php

switch ($color) {

case 1:echo "white";break;case 2:echo "silver";break;

case 3:echo "green";break;default:echo "blue";}?>">

<form action=³color.php" method="post">Blanco<input type="radio" name="color" value="1"/>Silver<input type="radio" name="color" value="2"/>Verde<input type="radio" name="color" value="3"/><input type="submit³ /></form>

</body>

Page 66: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 66/104

El bucleEl bucle whilewhile

Un bucle sirve para ejecutar un grupo deinstrucciones un determinado numero deveces, mientras una condición sea cierta.

Sintaxis del while:

while (condición) {

ordenes;

}

Page 67: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 67/104

EjemploEjemplo

El siguiente bucle imprime la frase ³unaiteracion del bucle´, 5 veces:

$contador=1;

while ($contador<=5) {

echo ³una iteracion del bucle <br>´;

$contador++;}

Page 68: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 68/104

EjercicioEjercicio

Realizar un script PHP llamado while.phpque muestre todos los números impares

que hay entre 1 y 100 Realizar ahora el mismo ejercicio anterior 

pero en este caso mostrando los númerosen el orden inverso

Page 69: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 69/104

El bucleEl bucle do«whiledo«while

Similar al while estandar, pero en estecaso la comprobación de la condición sehace al final del bucle con lo cual nosaseguramos que al menos una vez se

ejecutará el bucle. Sintaxis:

do {

código a ejecutar;while (condición)

Page 70: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 70/104

EjemploEjemplo

<?php

$a=0;

do {

echo ³$a <br>´;$a++;}

while($a>=1 && $a<=100)

?>

Este bucle impr ime también el valor 0

Page 71: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 71/104

El bucleEl bucle for for 

Permite realizar un grupo de iteracionessobre un conjunto de valores concretos,mientras una condición sea cierta.

Sintaxis:

for (inicio; condición _ seguir; incremento) {

ordenes a ejecutar;

}

Page 72: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 72/104

EjemploEjemplo

for ($i=1;$i<=100;$i++) {

echo ³$i <br>´;

} Este bucle se inicia con $i valiendo 1, secomprueba que se cumple la condición(1<=100), se incrementa $i en una unidad($i=2) y se sigue así hasta que $1 se pasede 100, entonces se para.

Page 73: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 73/104

EjercicioEjercicio

Realizar las mismas iteraciones anteriores(las del bucle while) pero esta vez usandoel bucle for.

Crear un bucle for que muestre todos losnúmeros impares que hay entre el 10 y el30.

Page 74: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 74/104

El bucleEl bucle foreachforeach para arrayspara arrays

Permite recorrer un array y devolver losvalores que contiene.

Tiene una sintaxis simple y otra extendida

Ejemplo de sintaxis simple:

foreach ($array as $value) {

echo ³$value <br>´;}

Page 75: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 75/104

Ejemplo de sintaxis extendida:

foreach ($array as $key => $value) {echo ³$key vale $value <br>´;

}

Es claro que en el array, $key equivale alíndice y $value al valor del array para eseíndice

Page 76: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 76/104

EjercicioEjercicio

Crear un array $dias con los días de lasemana y mostrar todas sus parejasindices / valores mediante el bucle foreach

Page 77: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 77/104

Funciones en PHPFunciones en PHP

Una función consiste en agrupar varioscomandos en un solo comando que sealmacena como una función.

Sintaxis de la declaración de una función:

function nombrefuncion($parametros,«)

{

// Aquí van las órdenes de la funciónreturn $valor; }Valor que

devuelve

Page 78: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 78/104

EjemploEjemplo

La siguiente función devuelve la cantidad desegundos que hay en un determinado numerode días:

function segundos($dias)

{ $total=$dias*24*60*60;

return $total; }

echo ³6 dias son ³ .segundos(6). ³segundos´;

El parámetro

$dias recibela cantidad

de dias

El cálculode los segundos se

guarda en $total

Se llamaa la f unción

con el valor 6

La f uncióndevuelve el

cálculo

¿Cómo incluir un fichero PHP en¿Cómo incluir un fichero PHP en

Page 79: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 79/104

¿Cómo incluir un fichero PHP en¿Cómo incluir un fichero PHP enotro? (muy útil para las funciones)otro? (muy útil para las funciones)

Para ello usaremos la función include( )

Sintaxis:include(nombre _ fichero);

Ejemplo:<?php

echo ³Antes de cargarlo´;include (³otro.php´);echo ³Despues de cargarlo´;

?>

Las órdenesdel fichero³otro.php´

se carganaquí

E í d f l iE í d f l i ilil

Page 80: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 80/104

Envío de formularios por eEnvío de formularios por e--mailmail

Para enviar correos desde PHP usaremosla función mail , cuya sintaxis es:mail (³email del destinatario´,´asunto´,´mensaje´,´From: email del remitente´)

La función mail devuelve un True si el mailse envió correctamente y un False en

caso contrario. Se necesita un servidor SMTP local parapoder enviar los correos, o indicar otroexterno

Page 81: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 81/104

Este formulariopermite enviar correos a unadirección decorreo fija

EjercicioEjercicio

Page 82: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 82/104

EjercicioEjercicio Crear un script PHP que conste de un formulario

como el de la diapositiva anterior y que permitaenviar correos a nuestra cuenta de Educastur:[email protected]

Como no tenemos un servidor local de SMTP

que nos envié los correos, iremos al ficherophp.ini (en c:\winnt), y modificaremos la variableSMTP, para que sea:

SMTP = smtp.educastur.princast.es

Después de este cambio reiniciaremos elservicio Apache desde la barra de tareas

Page 83: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 83/104

Un contador de visitas en PHPUn contador de visitas en PHP

Crearemos un contador tipo texto desdePHP.

Usaremos un archivo para guardar lasvisitas a nuestra página, quegestionaremos desde PHP.

Pero primero, tenemos que ver como

acceder a archivos desde PHP. Vremoscomo abrir archivos y como cerrarlos.

Page 84: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 84/104

¿Cómo abrir archivos?¿Cómo abrir archivos?

Usaremos la función fopen( )

Sintaxis para abrir un fichero:

$puntero=fopen(nombrearchivo,modo); ± Nombrearchivo: nombre del fichero quequeremos abrir, por ejemplo ³contador.txt´

 ± Modo: se puede abrir en modo lectura (r), en

modo lectura / escritura (r+), en modo sóloescritura (w), etc..

Page 85: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 85/104

¿Para qué sirve el puntero?¿Para qué sirve el puntero?

Define un canal a través del cual seaccede al fichero.

Desde que el fichero está abierto setrabaja con el puntero.

Cuando se abre el fichero, el puntero secoloca al principio del fichero para esperar 

instrucciones.

Page 86: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 86/104

La funciónLa función fgets( )fgets( )

Permite leer los datos de un archivo.

Se termina de leer cuando se alcanza elúltimo carácter del fichero o el último bytede datos.

Sintaxis:

fgets($puntero,byte);

donde byte indica cuantos bytes(caracteres) queremos leer del fichero

Page 87: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 87/104

Las funcionesLas funciones rewind( )rewind( ) yy fputs( )fputs( )

rewind( ) permite colocar el puntero alprincipio de la linea.

fputs( ) permite escribir datos en el fichero,su sintaxis es:

fputs($puntero,datos _ a  _ escribir);

Page 88: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 88/104

Cierre del fichero conCierre del fichero con fclose( )fclose( )

Cuando terminamos de trabajar con elfichero debemos cerrarlo siempre.

Sintaxis:

fclose($puntero);

Page 89: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 89/104

EjercicioEjercicio

Realizar un contador de visitas en PHP.

En la carpeta htdocs, crearemos unfichero de texto ³visitas.txt´ y escribiremosen él un 0.

Crearemos un fichero contador.php eimplementaremos en él las siguientes

instrucciones:

1 Ab i l fi h d l / i

Page 90: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 90/104

1. Abrir el fichero en modo lectura / escritura.

2. Leer del fichero 8 bytes (ó la cantidad

deseada) y guardarlos en una variable quellamaremos $contador 

3. Escribir en pantalla: ³Esta es la visitanumero: $contador´

4. Incrementar el contador en una unidad

5. Colocar el puntero al principio del fichero

6. Escribir el nuevo valor del contador en el

fichero7. Cerrar el fichero

Page 91: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 91/104

SoluciónSolución

<?php$puntero=fopen("visitas.txt","r+");$contador=fgets($puntero,8);

echo ³Esta es la visita numero: $contador´;$contador++;rewind($puntero);fputs($puntero,$contador);

fclose($puntero);?>

Otras funciones: las funciónOtras funciones: las función fread( )fread( )

Page 92: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 92/104

Otras funciones: las funciónOtras funciones: las función fread( )fread( )

y fwrite( )y fwrite( )

fread() es similar a la función fgets( ), peroes este caso se lee todo al fichero, no se valínea por línea como en el caso de fgets( )

Sintaxis:fread($puntero,byte);

fwrite() nos permite escribir un valor en unfichero con la sintaxis:fwrite($puntero,valor);

Page 93: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 93/104

Otras funciones: la funciónOtras funciones: la función filesize( )filesize( )

Permite averiguar el tamaño en bytes deun fichero.

Muy útil para usarla con las funcionesfgets( ) y fread( )

Su sintaxis es:

filesize(nombrearchivo);

Page 94: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 94/104

Otras funciones: la funciónOtras funciones: la función readfile( )readfile( )

Esta función lee y muestra todo elcontenido de un fichero.

Sintaxis:

readfile(nombrearchivo);

Page 95: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 95/104

EjercicioEjercicio

Usando las funciones fwrite() y readfile(),implementar un libro de visitas en PHP,que conste de una caja de texto y un

botón para escribir los comentarios. Los comentarios del fichero se mostraranen la pagina PHP, separados por párrafos

El fichero de visitas se abrirá en modo ³a´(append) para permitir sólo añadir nuevosdatos

Page 96: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 96/104

C ki PHPC ki PHP

Page 97: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 97/104

Cookies con PHPCookies con PHP

Las cookies (galletas informáticas) sonsimples ficheros de texto mediante loscuales un sitio web almacena información

en el ordenador del usuario. Solamente el sitio que ha creado la cookie

es capaz de volver a leerla.

Las cookies son un asunto privado entreel sitio web y el usuario

Có í ki ?Có í ki ?

Page 98: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 98/104

¿Cómo se envía un cookie?¿Cómo se envía un cookie?

Para establecer una cookie usaremos lasintaxis:

setcookie(³nombre´,´valor´,caducidad);

donde: ± nombre: es el valor que le damos a la cookie

 ± valor: sería el valor que le damos

 ± caducidad: indica la fecha en la que caducarála cookie, por ejemplo: time()+(86400*30), esdecir dentro de 30 días

Page 99: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 99/104

Importante: si usamos cookies, la primeraorden deberá ser establecer la cookie.

Ejemplo:

<?php

setcookie(³micookie´,´si´,time()+86400)?>

El ejemplo anterior establece una cookiede nombre ³micookie´ con el valor ³si´ yque durará un día.

Có l ki ?Có l ki ?

Page 100: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 100/104

¿Cómo leer una cookie?¿Cómo leer una cookie?

Lo mejor de todo es que el nombre de lacookie se maneja como una variable PHPcorriente.

En el ejemplo anterior, podemos usar lavariable $micookie para comprobar si estáestablecida y si tiene el valor de ³si´.

De este modo se pueden mostrar mensajespersonalizados al navegador del usuario,usando por ejemplo la sentencia if 

EjemploEjemplo

Page 101: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 101/104

EjemploEjemplo<?php

setcookie(³micookie","si",time()+(86400*30));?><html><head><title>Mi pagina</title>

</head><body>

<?phpif (isset($micookie) && $micookie=="si") {echo "Gracias por volver a mi pagina"; }else {

echo "Bienvenido a mi pagina"; }?></body>

</html>

Seestablecela cookie

Secomprueba

siestáestablecid

a y suvalor 

Có b ki ?Có b ki ?

Page 102: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 102/104

¿Cómo borrar una cookie?¿Cómo borrar una cookie?

Para borrarla se establece la mismacookie de nuevo, pero esta vez se envíaun tiempo de caducidad que ya hayapasado, por ejemplo:

setcookie(³micookie´,´si´,time()-86400);

Page 103: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 103/104

SoluciónSolución

Page 104: información php

8/2/2019 información php

http://slidepdf.com/reader/full/informacion-php 104/104

SoluciónSolución<?phpif (isset($galleta)&& $galleta!="") {

echo "Tu nombre es: $galleta<br />";}?><html><head><title>Ejemplo de una cookie</title>

</head>

<body><form action="hola.php" method="post">Indica tu nombre<input type="text" name="nombre" /><input type="submit" value="Enviar nombre" /></form>

<?phpsetcookie("galleta",$nombre,time()+86400);?>

</body></html>

Si la cookie estáestablecida se

muestra su valor 

Se pregunta por el nombre

Se establece laCookie con el

valor de la cajade texto