Documente Academic
Documente Profesional
Documente Cultură
Qu es PHP?
Se trata de un lenguaje de programacin que es interpretado por un servidor web. No se trata de un lenguaje genrico. PHP est orientado al desarrollo de sitios web dinmicos. No depende del navegador del usuario (como en Javascript). El cdigo PHP se ejecuta en el servidor.
Insertamos los valores del servidor, el dominio y el mail del administrador de Apache
Elegimos Change para cambiar el directorio de instalacin por uno ms corto como C:\
SLO PARA WINDOWS XP SP2: le indicamos al firewall que desbloquee el servicio Apache para el puerto 80.
OJO!! 5) El sitio adecuado del fichero para hacerlo sera donde encontremos otras directivas del tipo LoadModule y AddType
6) Copiamos la DLL "php4ts.dll", que podemos encontrar en nuestro directorio de instalacin de PHP (C:\php) en la carpeta c:\php\sapi 7) Editamos el fichero httpd.conf y buscamos el valor DirectoryIndex, lo modificamos para dejarlo como ste:
DirectoryIndex index.html index.html.var index.php
Guardamos la pgina en la carpeta htdocs del directorio de instalacin de Apache En un navegador cualquiera probamos la carga de la pgina con: http://localhost/prueba.php
OJO: todas las lneas de cdigo PHP terminan 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.
Qu es una variable?
Una variable define un punto de almacenamiento en la memoria del ordenador. Un nombre define a una variable y luego podemos asignarle diferentes valores a lo largo del programa. Por ejemplo, una variable puede llamarse nombre y tomar primero el valor de Luis, despus Pepe, etc..
Un ejemplo
<?php $nombre=Juan; echo Hola $nombre, Qu tal?; ?>
Arrays en PHP
Un array permite guardar distintos valores en una variable y distinguirlos por un ndice, por ejemplo:
$variable[indice]
El primer elemento se sita en el ndice 0. Para asignar valores al array, lo hacemos as:
$variable[indice]=valor
Ejercicio
La funcin date( ) permite trabajar con la fecha actual. Por ejemplo date(w) nos devuelve el numero de da de la semana, empezando por el 0. Se trata de cargar un array con los 7 das de la semana y usando la funcin anterior poner en pantalla un mensaje que diga: Hoy es
La cantidad de elementos de un array se puede obtener con la funcin count, por ejemplo, si tengo un array $dia con 7 elementos y le pido el valor de count($dia) me devolver un 7.
Ejercicio
Con las variables $a=5 y $b=32. Realizar los clculos (e imprimir los resultados) de:
La suma de a y b La multiplicacin 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
Ejercicio
Usando los operadores de PHP, calcular imprimir el precio final de un producto que cuesta 750 y al que se aplica un IVA de 16 %.
La funcin round(valor,decimales) nos permite redondear una cantidad a un numero concreto de decimales. Por ejemplo:
round(1.2375,2) devuelve 1.24
Ejemplo
Vamos a realizar un simple formulario HTML con una caja de texto y un botn de Submit.
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>
La estructura condicional if
Nos permite evaluar una condicin y tomar una decisin segn el resultado del test. Su sintaxis es:
if (condicin) { cdigo a ejecutar si condicin es Verdadera } else { cdigo a ejecutar si condicin es Falsa }
Ejemplo
Crearemos un formulario HTML con dos botones de opcin (radio), una caja y un botn de Enviar (submit).
La funcin isset( )
Esta funcin nos permite comprobar si una variable se ha definido y en ese caso devuelve un True. La sintaxis es isset($variable) Muy til para comprobar si se han rellenado los campos de un formulario
Ejercicio
Usando la funcin isset y el bloque if, realizar una comprobacin sobre una caja de texto cualquiera, advirtiendo al usuario en caso de que la caja se encuentre sin datos.
Solucin
<?php if (isset($nombre) && $nombre!="") { echo "Hola $nombre, bienvenido a PHP";} else { echo "No has escrito nada"; } ?>
Ejercicio
Crear un sencillo formulario con una caja de texto y un botn de envo que muestre el uso del array de campos anterior, por ejemplo para conseguir el campo nombre hacemos:
<?php if (isset($_POST["nombre"]) && $_POST["nombre"]!="" && isset($_POST["boton_envio"])) { echo "Hola " .$_POST["nombre"];} ?>
Ejercicio
Redireccionar alguna pgina HTML hacia otra cualquiera que tengamos en nuestro propio servidor. Modificar ahora el header para que todas las conexiones a nuestra pgina se redirigan a http://www.google.com
El bloque switch
Comprueba si una variable coincide con algn valor concreto; en caso afirmativo ejecuta un bloque de ordenes. En caso de no coincidir se ejecuta el bloque default Despus de cada caso pondremos la orden break para evitar mas comprobaciones.
Ejemplo
<?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";} ?>
Ejercicio
Usando una estructura switch realizar un script PHP (llamado switch.php) que permita escribir un da de la semana e una caja de texto y al darle al botn de enviar nos imprima un texto personalizado. Para simplificar los casos vamos a considerar como respuestas posibles el lunes, el viernes y el domingo. Los dems das se considerarn en el bloque por defecto.
Ejercicio
Sabemos que la etiqueta <body bgcolor=color> permite especificar un color de fondo para nuestra pagina. Se trata de realizar un script PHP (llamado color.php) que mediante 3 botones de opcion (radio) y un boton estandar de submit nos permita cambiar el color de fondoe entre estos 3 colores: white, silver, green. Por defecto se mostrar el fondo en blue.
Solucin
<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>
El bucle while
Un bucle sirve para ejecutar un grupo de instrucciones un determinado numero de veces, mientras una condicin sea cierta. Sintaxis del while: while (condicin) { ordenes; }
Ejemplo
El siguiente bucle imprime la frase una iteracion del bucle, 5 veces: $contador=1; while ($contador<=5) { echo una iteracion del bucle <br>; $contador++; }
Ejercicio
Realizar un script PHP llamado while.php que muestre todos los nmeros impares que hay entre 1 y 100 Realizar ahora el mismo ejercicio anterior pero en este caso mostrando los nmeros en el orden inverso
El bucle dowhile
Similar al while estandar, pero en este caso la comprobacin de la condicin se hace al final del bucle con lo cual nos aseguramos que al menos una vez se ejecutar el bucle. Sintaxis: do { cdigo a ejecutar; while (condicin)
Ejemplo
<?php $a=0; do { echo $a <br>; $a++;} while($a>=1 && $a<=100) ?>
El bucle for
Permite realizar un grupo de iteraciones sobre un conjunto de valores concretos, mientras una condicin sea cierta. Sintaxis: for (inicio; condicin_seguir; incremento) { ordenes a ejecutar; }
Ejemplo
for ($i=1;$i<=100;$i++) { echo $i <br>; } Este bucle se inicia con $i valiendo 1, se comprueba que se cumple la condicin (1<=100), se incrementa $i en una unidad ($i=2) y se sigue as hasta que $1 se pase de 100, entonces se para.
Ejercicio
Realizar las mismas iteraciones anteriores (las del bucle while) pero esta vez usando el bucle for. Crear un bucle for que muestre todos los nmeros impares que hay entre el 10 y el 30.
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
Ejercicio
Crear un array $dias con los das de la semana y mostrar todas sus parejas indices / valores mediante el bucle foreach
Funciones en PHP
Una funcin consiste en agrupar varios comandos en un solo comando que se almacena como una funcin. Sintaxis de la declaracin de una funcin: function nombrefuncion($parametros,) { // Aqu van las rdenes de la funcin return $valor; }
Valor que devuelve
Ejemplo
La siguiente funcin devuelve la cantidad de segundos que hay en un determinado numero de das: El parmetro $dias recibe la cantidad function segundos($dias) de dias { $total=$dias*24*60*60; El clculo de los segundos se return $total; } guarda en $total echo 6 dias son .segundos(6). segundos;
La funcin devuelve el clculo Se llama a la funcin con el valor 6
Cmo incluir un fichero PHP en otro? (muy til para las funciones)
Para ello usaremos la funcin include( ) Sintaxis: include(nombre_fichero); Ejemplo: <?php Las rdenes echo Antes de cargarlo; del fichero otro.php include (otro.php); se cargan echo Despues de cargarlo; aqu ?>
Envo de formularios por e-mail e Para enviar correos desde PHP usaremos la funcin mail, cuya sintaxis es:
mail (email del destinatario,asunto,mensaje,From: email del remitente)
La funcin mail devuelve un True si el mail se envi correctamente y un False en caso contrario. Se necesita un servidor SMTP local para poder enviar los correos, o indicar otro externo
Ejercicio
Crear un script PHP que conste de un formulario como el de la diapositiva anterior y que permita enviar correos a nuestra cuenta de Educastur: loquesea@educastur.princast.es Como no tenemos un servidor local de SMTP que nos envi los correos, iremos al fichero php.ini (en c:\winnt), y modificaremos la variable SMTP, para que sea: SMTP = smtp.educastur.princast.es Despus de este cambio reiniciaremos el servicio Apache desde la barra de tareas
La funcin fgets( )
Permite leer los datos de un archivo. Se termina de leer cuando se alcanza el ltimo carcter del fichero o el ltimo byte de datos. Sintaxis: fgets($puntero,byte); donde byte indica cuantos bytes (caracteres) queremos leer del fichero
Ejercicio
Realizar un contador de visitas en PHP. En la carpeta htdocs, crearemos un fichero de texto visitas.txt y escribiremos en l un 0. Crearemos un fichero contador.php e implementaremos en l las siguientes instrucciones:
1. Abrir el fichero en modo lectura / escritura. 2. Leer del fichero 8 bytes ( la cantidad deseada) y guardarlos en una variable que llamaremos $contador 3. Escribir en pantalla: Esta es la visita numero: $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 fichero 7. Cerrar el fichero
Solucin
<?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); ?>
Ejercicio
Usando las funciones fwrite() y readfile(), implementar un libro de visitas en PHP, que conste de una caja de texto y un botn para escribir los comentarios. Los comentarios del fichero se mostraran en la pagina PHP, separados por prrafos El fichero de visitas se abrir en modo a (append) para permitir slo aadir nuevos datos
Importante: si usamos cookies, la primera orden deber ser establecer la cookie. Ejemplo: <?php setcookie(micookie,si,time()+86400) ?> El ejemplo anterior establece una cookie de nombre micookie con el valor si y que durar un da.
Ejemplo
<?php setcookie(micookie","si",time()+(86400*30)); ?> <html> <head> <title>Mi pagina</title> </head> <body> <?php if (isset($micookie) && $micookie=="si") { echo "Gracias por volver a mi pagina"; } else { echo "Bienvenido a mi pagina"; } ?> </body> </html>
Se establece la cookie
Ejercicio
Crear una pagina PHP que conste de un formulario con una caja de texto y un boton de submit. Se trata de la primera vez se nos pregunte por nuestro nombre (que escribiremos en la caja) y en las siguientes ocasiones una cookie establecida nos recuerde. El action del formulario nos enviar a otra pagina PHP que ser quien establezca la cookie
Solucin
<?php if (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> <?php setcookie("galleta",$nombre,time()+86400); ?> </body> </html> Si la cookie est establecida se muestra su valor