You are on page 1of 15

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP Introduccin


PHP es un lenguaje de script del lado del servidor. Otros lenguajes similares son ASP, JSP o ColdFusion. Los scripts PHP estn incrustados en los documentos HTML y el servidor los interpreta y ejecuta antes de servir las pginas al cliente. El cliente no ve el cdigo PHP sino los resultados que produce.

Creado por Rasmus Lerdorf para uso personal en 1994 (PHP = PHP: Hypertext Preprocessor). Versin actual: PHP 5. Es un mdulo que se aade al servidor web y fue concebido inicialmente para Apache. Es potente, fcil de aprender, de libre distribucin, permite el acceso a bases de datos y otras funcionalidades orientadas a la red. Dispone de abundante soporte en la Web.

Requisitos
Servidor web Apache (www.apache.org) con el mdulo PHP (www.php.net) y la base de datos MySQL (www.mysql.com) si se desea crear pginas dinmicas

Otras utilidades
Herramientas para la gestin de MySQL, como PHPMyAdmin (www.phpmyadmin.net) Editores de PHP, como DevPHP (www.sourceforge.net), Eclipse (www.eclipse.org) o Aptana Studio (www.aptana.com) Manuales de PHP y MySQL

Probar instalacin de PHP


o o Crear una pgina PHP de prueba y cargarla con el navegador Ejemplo: prueba.php en directorio raz de nuestro servidor, con el contenido: <?PHP phpinfo(); ?> Ejecutar el navegador y teclear la URL http://localhost/prueba.php

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP Primeros pasos


Dentro de un archivo PHP se puede alternar entre cdigo html y cdigo PHP. Esto nos permite realizar pginas dinmicas de forma fcil: realizando toda la estructura con html y luego agregando el contenido dinmico. Imaginemos una pgina html comn, pero en lugar de ser index.html es index.php. Cuando se quiera agregar cdigo PHP habr que hacerlo dentro de las etiquetas <?php y ?> o <? y ?>, por ejemplo: <html> <head> <title>hola mundo</title> </head> <body> <h1>incluir cdigo PHP en html</h1> <p><? aqu va el cdigo PHP ?></p> </body> </html> PHP es sensible a las maysculas Las instrucciones se separan con un ; como en C. La marca final ?> implica un ; Comentarios: como en C y Javascript, /* */ (varias lneas ) y // (una lnea) /* Comentario de varias lneas */ print hola; // Comentario de una lnea

Variables
Las variables son elementos que creamos para asignarles un valor o dato especfico (que puede cambiar a lo largo de nuestro archivo). En PHP, las variables se definen anteponiendo el signo $, por ejemplo: // Definimos la variable hola la cual contiene la informacin hola mundo $hola = "hola mundo"; Lo ideal a la hora de programar es definir todas las variables y realizar las operaciones antes del cdigo html y en ese cdigo mostrar los resultados de nuestras variables. Por ejemplo, un cdigo completo de hola mundo sera: <$hola = "hola mundo"; ?> <html> <head> <title> <? echo $hola; ?></title> </head> <body> <h1>incluir cdigo PHP en html</h1> <p><? echo $hola; ?></p> </body> </html>

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


La instruccin echo, al igual que print se utiliza para mostrar mensajes: echo: muestra una o ms cadenas echo cadena1 *, cadena2+; echo Hola mundo; echo Hola , mundo; print: muestra una cadena (se pueden concatenar partes con .) print cadena; print Hola mundo; print Hola . mundo; A una variable se le puede asignar cualquier tipo de informacin: una cadena de texto (string), nmeros enteros (integer), un arreglo (array), true, false, null, etc; As mismo, a una variable que antes era de un tipo se le puede cambiar el tipo de informacin sin ningn problema. Existen dos tipos de variables en php, locales y globales, locales son aquellas que se ejecutan en un nico mbito. Si defino una variable $local y a continuacin uso una funcin que dentro contiene una variable llamada $local, van a ser consideradas como dos variables diferentes y la informacin asignada prioritariamente a la variable $local no se pierde. Para crear una variable global que s puede ser accedida desde todos los mbitos de nuestro script se debe especificar, en caso contrario es local. <? global $miGlobal = esta es una variable global; ?>

Constantes
Las constantes, como indica su nombre, una vez definidas no varan de contenido y son globales, se pueden utilizar desde cualquier mbito del script. <? define(nombre_constante, valor_constante); ?> Si intentamos definir dos veces una constante, nuestro editor nos devolver un error:
<? define(HOLA, Hola mundo); define(HOLA, Chao mundo); ?>

Para usar una constante utilizamos el nombre que definimos en el primer trmino.

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP SENTENCIAS CONDICIONALES


Las sentencias condicionales nos permiten ejecutar o no una serie de instrucciones, dependiendo del resultado de evaluar una condicin. Las instrucciones ms frecuentes son if y switch.

Sentencia if
Si al evaluar la condicin, el resultado es true (verdadera) se ejecutarn las sentencias posteriores al if, de lo contrario se ejecutarn las del else. <?php if (condicin) { Sentencias a ejecutar cuando la condicin es cierta. } else { Sentecias a ejecutar cuando la condicin es falsa. } ?> Tambin podemos utilizar elseif, que nos permite ir evaluando varias condiciones hasta que se cumpla una. Por ejemplo:
<?php if ( $hoy == Lunes ) { echo Hoy es Lunes, tenemos carne para almorzar; } elseif ( $hoy == Martes ) { echo Hoy es Martes, tenemos fideos para almorzar; } elseif ( $hoy == 'Miercoles' ) { echo Hoy es Miercoles, tenemos estofado para almorzar'; } elseif ( $hoy == 'Jueves' ) { echo Hoy es Jueves, tenemos pizza para almorzar'; } elseif ( $hoy == 'Viernes') { echo Hoy es Viernes, tenemos tarta para almorzar; } elseif ( $hoy == 'Sabado') { echo Hoy es Sabado, tenemos ravioles para almorzar; } else ( $hoy == 'Domingo') { echo Hoy es Domingo, no almorzamos :(; } ?>

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP Sentencia switch


Con la sentencia switch podemos ejecutar unas u otras instrucciones dependiendo del valor que tome la variable que estamos evaluando:
<?php switch($hoy) { case Lunes: echo Hoy es Lunes, tenemos carne para almorzar; break; case Martes: echo Hoy es Martes, tenemos fideos para almorzar'; break; case Miercoles: echo Hoy es Miercoles, tenemos estofado para almorzar'; break; case Jueves: echo Hoy es Jueves, tenemos pizza para almorzar'; break; case Viernes: echo Hoy es Viernes, tenemos tarta para almorzar'; break; case Sabado: echo Hoy es Sabado, tenemos ravioles para almorzar'; break; default: echo Hoy es Domingo, no almorzamos break; }?> ';

Operadores
Al realizar nuestros scripts constantemente estamos realizando operaciones que le dan complejidad a nuestro trabajo.

OPERADORES ARITMTICOS Operador Nombre + * / % Suma Resta Multiplicacin Divisin Mdulo Ejemplo Descripcin 5+6 7-9 6*3 4/8 7%2 Suma dos nmeros Resta dos nmeros Multiplica dos nmeros Divide dos nmeros Devuelve el resto de dividir ambos nmeros, en este ejemplo el resultado es 1

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


++ -Suma 1 Resta 1 $a++ $a-Suma 1 al contenido de una variable. Resta 1 al contenido de una variable.

OPERADORES DE COMPARACIN Operador Nombre ==


!=

Ejemplo Devuelve cierto cuando


$a == $b $a != $b $a < $b $a > $b $a <= $b $a >= $b $a es igual $b $a es distinto $b $a es menor $b $a es mayor $b $a es menor o igual $b $a es mayor o igual $b

Igual Distinto Menor Mayor Menor o igual Mayor o igual

< > <= >=

Ejemplos: ejecuta los siguientes cdigos:


<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; echo $a + $b,"<br>"; echo $a - $b,"<br>"; echo $a * $b,"<br>"; echo $a / $b,"<br>"; $a++; echo $a,"<br>"; $b--; echo $b,"<br>"; ?> </body> </html>

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo $a == $b,"<br>"; echo $a != $b,"<br>"; echo $a < $b,"<br>"; echo $a > $b,"<br>"; echo $a >= $c,"<br>"; echo $b <= $c,"<br>"; ?> </body> </html> OPERADORES LGICOS (Evalan varias comparaciones)

Operador Nombre Ejemplo


&& and ||

Devuelve cierto cuando


Devuelve verdadero cuando ambas condiciones son verdaderas. Devuelve verdadero cuando ambas condiciones son verdaderas. Devuelve verdadero cuando al menos una de las dos es verdadera. Devuelve verdadero cuando al menos una de las dos es verdadera. Niega el valor de la expresin.

Y Y O O No

(7>2) && (2<4) (7>2) and (2<4) (7>2) || (2<4) (7>2) or (2<4) ! (7>2)

or !

Ejecutar el siguiente cdigo:


<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; 7

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


$c = 3; echo ($a == $b) && ($c > $b),"<br>"; echo ($a == $b) || ($b == $c),"<br>"; echo !($b <= $c),"<br>"; ?> </body> </html>

SENTENCIAS REPETITIVAS
Muchas veces debemos realizar tares repetitivas, para ello existen una serie de sentencias, llamadas bucles:

Sentencia while
<? while ( condicion ) { instrucciones } ?> Se ejecutarn las instrucciones enceradas entre llaves mientras se cumpla la condicin.

Sentencia dowhile
<? do { instrucciones } while ( condicion ) ?> La nica diferencia con while es que se ejecutan las instrucciones una vez antes de evaluar la condicin, despus se volvern a ejecutar mientras dicha condicin sea verdadera.

Sentencia for
<? for( inicializacin; condicin; actualizacin ) { instrucciones } ?> La inicializacin se ejecuta la primera vez para dar el valor adecuado a la variable que controlar el bucle, la condicin se debe cumplir para que el bucle siga ejecutndose y la actualizacin es una instruccin que se ejecuta al final de cada repeticin y sirve para modificar el valor de la variable .

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


Ejemplo: <?php for($i=0 ; $i<10 ; $i++) { echo "El valor de i es ", $i,"<br>"; } ?> Se mostrarn diez lneas, en cada una de ellas el valor de i se habr ido incrementando desde 0 (inicializacin) hasta 9 ($i<10).

Ejercicios
1) Detecta los 7 errores: <?php $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 />"); ?>; 2) Genera un valor aleatorio entre 1 y 100. Luego muestra si tiene 1,2 o 3 dgitos. Funcin a utilizar: rand (1,100) 3) Almacena en un vector o array los 10 primeros nmeros pares. Despus imprmelos, cada uno en una lnea.

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP FORMULARIOS


El lenguaje PHP nos proporciona una manera sencilla de manejar formularios, permitindonos de esta manera procesar la informacin que el usuario ha introducido. Al disear un formulario debemos indicar la pgina PHP que procesar el formulario, as como el mtodo por el que se le pasar la informacin a la pgina. <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de procesado de formularios</H1> Introduzca su nombre: <FORM ACTION="procesa.html" METHOD="GET"> <INPUT TYPE="text" NAME="nombre"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body> </html> Al pulsar el botn Enviar, el contenido del cuadro de texto es enviado a la pgina que indicamos en el atributo ACTION (procesa.html) de la etiqueta FORM: En versiones anteriores a 4.2.0 PHP creaba una variable por cada elemento del FORM, esta variable creada tena el mismo nombre que el cuadro de texto de la pgina anterior y el valor que habamos introducido. Pero por razones de seguridad, a partir de entonces, para acceder a las variables del formulario hay que usar el array de parmetros $_POST[] o $_GET[] dependiendo del mtodo usado para enviar los parmetros. En este ejemplo se ha creado una entrada en el array $_GET[] con el ndice 'nombre' y con el valor que haya introducido el navegante. <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de procesado de formularios</H1> El nombre que ha introducido es: <?php echo $_GET['nombre'] ?> <br> </body> </html>

10

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


Otro ejemplo
Queremos procesar el siguiente formulario, de forma que se verifique que se han rellenado todos los campos y se enve por email. De lo contrario, se obtendr un mensaje de error:
<form action="contacto_script.php" method="post" id="contacto"> <label for="input_nombres">Nombre y Apellido</label><br /> <input id="input_nombres" type="text" name="nombres" value="" /><br /><br /> <label for="input_email">Email</label><br /> <input id="input_email" type="text" name="email" value="" /><br /><br /> <label for="input_sexo">Sexo</label><br /> <select id="select_sexo" name="sexo"> <option value="M">Masculino</option> <option value="F">Femenino</option> </select><br /><br /> <label for="textarea_mensaje">Mensaje</label><br /> <textarea id="textarea_mensaje" name="mensaje" rows="5" cols="50"> </textarea><br /><br /> <input type="submit" name="submit" value="Enviar consulta" /> </form>

El script de verificacin (contacto_script.php) sera el siguiente:


<?php // definimos las variables o marcamos el error if ( !empty($_POST['nombres']) ) $nombres = $_POST['nombres']; else $error = true; if ( !empty($_POST['email']) ) $email = $_POST['email']; else $error = true; if ( !empty($_POST['sexo']) ) $sexo = $_POST['sexo']; else $error = true; if ( !empty($_POST['mensaje']) ) $mensaje = $_POST['mensaje']; else $error = true; // verificamos que no exista un error, si es as enviamos notificacin if ( !empty($error) ) { header('Location: contacto_error.php' ); die; } // definimos el cuerpo del email $cuerpo = " De: $nombres \n\r Email: $email \n\r Sexo: $sexo \n\r Mensaje: \n\r $mensaje "; // enviamos el email if ( mail($email,'Recibiste un mensaje a travs del formulario de

11

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


contacto de tu sitio,$cuerpo ) ) { header('Location: contacto_exitoso.php' ); die; } else { header('Location: contacto_error.php' ); die; } ?>

contacto_exitoso.php y contacto_error.php sern sendos scripts que contendrn avisos de que el contacto se ha realizado con xito y se ha enviado un mail a su correo o ha habido algn error.

Funciones utilizadas en el script y otras: empty($campo); pregunta si la variable campo est vaca, devolver true o false. mail ( $para , $asunto , $mensaje ); Funcin de envo de correo, en el primer parmetro agregamos la direccin donde queremos que se enve el mensaje, en el segundo parmetro ponemos el asunto y en el tercero el cuerpo, o sea el mensaje en s. Esta funcin va a responder true o false, dependiendo si se pudo ejecutar correctamente. isset ( $variable );
Nos permite comprobar si una variable est definida, devolviendo true si lo est. Se puede utilizar para saber si se ha pulsado un botn.

count ( $vector );
Devuelve el nmero de elementos que hay en un array o vector

FUNCIONES DE FECHA
En Php existen varias funciones que devuelven la fecha y hora actuales, una de ellas es date(formato); que recibe la fecha del sistema. Esta funcin nos devuelve una cadena de caracteres que se corresponde con una fecha a la que se ha aplicado un determinado formato. Para definir el formato de la fecha se dispone de las siguientes opciones: Opcin a A d Descripcin Hace que en la hora aparezca la cadena am o pm Hace que en la hora aparezca la cadena AM o PM Da del mes con dos dgitos desde 01 a 31

12

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


D F h H g G i j l(L min) L m M s S t U w Y y z Z Da de la semana como cadena de tres letras(en ingls).Ejemplo: "Mon" Nombre del mes completo como una cadena de caracteres.Ejemplo: "March" Hace que la hora aparezca en formato 01 a 12 Hace que la hora aparezca en formato 00 a 23 Hace que la hora aparezca en formato 1 a 12 Hace que la hora aparezca en formato 0 a 23 Hace que los minutos aparezcan en formato 00 a 59 Hace que el da aparezca en formato 1 a 31 Da de la semana completo. Ejemplo: Monday Escribe 0 si no es ao bisiesto y 1 si lo es Hace que el mes aparezca en formato 01 a 12 Hace que el mes aparezca en formato 1 a 12 Hace que los segundos aparezcan en formato 00 a 59 Cadena de caracteres con el sufijo ordinal.Ejemplo: "th","nd". Nmero de das del mes especificado de 28 a 31 Nmero de segundos desde el comienzo de la "era UNIX" Nmero del da de la semana de 0 a 6 Ao con cuatro cifras Ao con dos cifras Da del ao de 0 a 365 Obtiene la diferencia horaria en segundos con respecto al GMT

Ejemplo: <html> <body> La fecha de hoy es: <?php echo date( d/m/Y); ?> </body> </html>

13

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP VALIDACIN DE UN CHEKBOX


Los posibles valores se recogen en una variable de tipo array o vector.
<?php //Compruebo si vino el vector con opcin elegida if (isset($_POST['nombre_check'])) { //Como s que es un vector, calculo su tamao para recorrerlo despus $checks = $_POST['nombre_check']; $longitud = count($checks); $i = 0; //recorro cada elemento del vector while ($i < $longitud) { //lo muestro en la pagina o hago lo que tenga que hacer. //tener en cuenta que por cada opcin tildada en el form //aqu cargar lo que pusiste en value. echo "checks[$i]"; $i++; } } ?>

EJEMPLO DE CHECKBOX RECOGIDO EN PHP


<form action="trataformulario.php" method="POST"> Nombre: <input type="text" name="nombre"><br> Apellidos: <input type="text" name="apellidos"><br> Email: <input type="text" name="email"> <br> Cerveza: <br> <select multiple name="cerveza[]"> <option value="SanMiguel">San Miguel</option> <option value="Mahou">Mahou</option> <option value="Heineken">Heineken</option> <option value="Carlsberg">Carlsberg</option> <option value="Aguila">Aguila</option> ... </select><br> <input type="submit" value="Enviar datos!" > </form> Y para recoger la informacin y tratarla (en tratarformulario.php) actuaramos del siguiente

14

Implantacin de Aplicaciones Web

2 ASIR 2 evaluacin

Tema 8: Lenguajes de script de servidor, PHP


modo... <?php echo "Nombre: ", $_POST["nombre"]; echo "<br>Apellidos: ", $_POST["apellidos"]; echo "<br>E-mail: ", $_POST ["email"]; $cervezas=$_POST["cerveza"]; //recorremos el array de cervezas seleccionadas. No olvidar que la primera posicin de un //array es la 0 for ($i=0;$i<count($cervezas);$i++) { echo "<br> Cerveza " , $i, ": ", $cervezas[$i]; } ?>

EJERCICIO FINAL TEMA 8


Realizar un formulario, recogido y validado en un script de php, atendiendo a las siguientes caractersticas: 1.- El formulario debe constar de, al menos, cinco o seis elementos, siendo uno de ellos un checkbox. 2.- Validar que se hayan rellenado todos los campos (en caso del checkbox, se deber haber marcado alguna de las opciones), de lo contrario emitir un aviso. 3.- Si no hay error, mostrar todos los datos por pantalla y/o enviar a una direccin de correo. 4.- Recoger el da de la semana utilizando alguna de las funciones definidas en php y mostrar distintas bienvenidas o comentarios dependiendo de l.

15

You might also like