Sie sind auf Seite 1von 69

PROGRAMACIN EN PHP 5

AS FUNCIONA PHP
PHP es un lenguaje de programacin de secuencias de comandos (scripts). PHP se integra directamente en las pginas XHTML y es interpretado por el servidor. Funcionamiento:
El navegador enva una solicitud http al servidor Web (una llamada a la pgina) El servidor lee la pgina PHP, ejecuta los comandos y enva el documento montado al navegador.

DIFERENCIAS ENTRE JS y PHP


JS tambin se escribe directamente en el cdigo XHTML y su cdigo est siempre a la vista del usuario. JS es interpretado por el navegador, por eso, cada cdigo JS puede comportarse de forma distinta en cada navegador. PHP cuenta con una gran ventaja: cuando funciona, funciona igual en todos y cada uno de los navegadores, ya que es interpretado en un servidor.

ALOJAMIENTO
Si queremos aadir PHP a nuestra web necesitaremos un proveedor de alojamiento Web que ofrezca soporte para PHP. Nosotros instalaremos un servidor local en nuestra propia mquina:
XAMPP WAMP SERVER LAMP SERVER

CARACTERSTICAS PHP
Podremos crear contadores, libros de visitas, comprobaciones de formularios, de una forma sencilla Una de las principales ventajas de PHP es su compatibilidad con casi todos los sistemas de Bases de Datos. La combinacin ms usual es con MySQL.

REFERENCIAS
Para obtener ms informacin podis ver los siguientes manuales:
http://www.php.net/manual/es/

Si deseas descargarlo:
http://www.php.net/download-docs.php

INSTALAR UN SERVIDOR LOCAL


XAMPP

Instalar un servidor local PHP


Utilizaremos un servidor local para probar nuestros scripts antes de publicar nuestra pgina. Utilizaremos XAMPP el cul incluye todos los paquetes necesarios para probar PHP y MySQL desde tu propia mquina. Es decir, incluye:
Servidor Web Apache PHP y MySQL phpMyAdmin

Descargar:
http://www.apachefreinds.org/en/

XAMPP
Ventajas:
Siempre est al da, se actualiza y ajusta cada 2 semanas. Fcil de instalar y muy fiable. Ocupa poco espacio y no crea entradas en el registro de Windows a menos que se utilice la variable con instalador. Para borrar, basta con eliminar la carpeta XAMPP que se crea durante la instalacin

XAMPP
Instalamos XAMPP en nuestro PC. COMPROBACIN DEL FUNCIONAMIENTO DE APACHE, EL SERVIDOR WEB. Abrir el navegador y escribir http://localhost/ Se debera abrir una pagina inicial que te dar la bienvenida con su propia pgina index.html.

POSIBLES PROBLEMAS
Algunos problemas genricos que te podran surgir son:
Hay otro servidor Web local activo, por ejemplo IIS (Internet information Server) en el caso de Windows 2000 o XP Proffesional. En este caso, debers desactivarlo antes de iniciar XAMPP. Algn antivirus funcionando en segundo plano bloquea XAMPP. Apgalo, y cuando termines de usar XAMPP vuelve a activarlo. Un firewall local no permite el buen funcionamiento XAMPP. Apgalo temporalmente. Si usas Skype para tus llamadas, este bloquea el puerto 80 y la nica solucin es desactivarlo completamente.

XAMPP en Intranets
Si dispones de una intranet, puedes acceder al host local mediante el nombre del ordenador (o la ip) correspondiente. Por ejemplo, escribiremos http://pepe/, si has instalado las pginas Web en el ordenador con nombre pepe. La pgina de inicio (es decir, index.html) la puedes encontrar en c:\xampp\htdocs\

NUESTRO PRIMER DOCUMENTO PHP


La sintaxis para los documentos php es:
Nombre.php

Crearemos el primer documento, llamado info.php el cual guardaremos en la carpeta c:\xampp\htdocs Como hemos dicho PHP lo podemos incrustar en nuestro cdigo XHTML. Para ello utilizaremos la siguiente etiqueta: <?php comandos ?>

NUESTRO PRIMER DOCUMENTO PHP


Si ejecutamos este cdigo, qu resultado obtienes? <html> <head> <title>PHP-INFO</title> </head> <body> <h1>Informacion PHP</h1> <?php phpinfo(); ?> </body> </html>

EDITORES PHP
Puedes usar los editores que usaste previamente para XHTML, CSS y JS o:
PHPEdit

PRIMEROS PASOS CON PHP


Para empezar, crearemos una carpeta, llamada php5 en la que haremos todas las pruebas y ejercicios necesarios. Para ello, debes crear la carpeta php5 dentro de htdocs.

PRIMER SCRIPT
Crearemos el primer script PHP, el cual nos mostrar por pantalla la frase Hola Mundo!. La funcin necesaria para escribir en php es echo. Adems php tiene la restriccin de que todos los comandos deben acabar en ;.

<html> <head> <title>HOLA MUNDO</title> </head> <body> <h1>Informacion PHP</h1> <p> <?php echo Hola mundo; ?> </p> </body> </html>

PRIMER SCRIPT
La funcin echo te permite dar formato al texto, utilizando etiquetas XHTML, como por ejemplo: <?php echo <strong>Hola</strong> Mundo!; ?>

COMENTAR CDIGO
Como siempre es muy recomendable que comentes el cdigo. En php se utiliza la siguiente sintaxis: // para comentarios de una lnea. /**/ para comentarios de varias lneas. Recuerda que para una mejor distribucin y entendimiento del cdigo debes utilizar las sangras.

VARIABLES
Recordemos:
VARIABLE: podemos decir que son huecos de memoria en las que se almacenan datos. Estos datos podremos consultarlos o modificarlos cuando queramos.

Al igual que ocurra en JS, en PHP no es necesario especificar el tipo de dato a la hora de declarar variables. De todas formas, PHP puede trabajar internamente con los siguientes tipos de datos:
string: Cadenas de texto. integer: Nmeros enteros. float: Nmeros en coma flotante. boolean: true / false.

NOMBRES DE VARIABLES PERMITIDOS


Todas las variables deben empezar con el smbolo dlar ($). El resto del nombre es de libre eleccin. Se diferencia entre maysculas y minsculas. No se pueden usar las palabras reservadas como: while, for, if, switch,

EJEMPLO PRCTICO 1
Realizaremos un ejemplo en el que representaremos la utilizacin de variables. Crea un documento XHTML. Vamos a crear un documento PHP en el que aparezca el mensaje: Hola soy Alejandro Ramallo. Para ello, deberemos insertar la etiqueta de prrafo en el documento

EJEMPLO PRCTICO 1
Insertamos el siguiente fragmento de cdigo entre las etiquetas de apertura y cierre de prrafo:
<?php $nombre=Alejandro; echo Hola <strong>$nombre</strong>, encantado de conocerte; ?>

EJEMPLO PRCTICO 1
En el ejemplo, el texto que sigue a echo, debe ir entre comillas, al ser una cadena de texto. En el caso de que sea cualquier nmero, no ser necesario que utilicemos comillas. Aunque esto no debe preocuparnos por el momento, ya que PHP, es capaz de convertir nmeros que hayamos escrito entre comillas, tipo string, a tipo integer.

CONCATENAR STRING Y VARIABLES


Como sabemos, en JS, utilizbamos el operador + para concatenar cadenas de caracteres, o la funcin string.concat(cadena1, cadena2). En PHP se eligi el . (punto) para la concatenacin de cadenas y variables. As el caso prctico anterior quedara:
<?php $nombre=Alejandro; echo Hola <strong>. $nombre. </strong>, encantado de conocerte; ?>

BREAK O SALTO DE LNEA


PHP ofrece distintos tipos de salto de lnea. En primer lugar:
La etiqueta <br>. Por ejemplo:
<?php $nombre=Alejandro; echo Hola <strong>$nombre</strong>, encantado de conocerte<br>; echo Gracias por venir; ?>

BREAK O SALTO DE LNEA


Comprueba el cdigo anterior, y observa el cdigo fuente desde tu navegador. Qu ha ocurrido? El comando new line (\n)
Para mejorar el aspecto del cdigo se utiliza el comando new line, que en PHP se escribe: \n. Existe alguna diferencia al utilizarlo con <br>?

EL SIGNO ESCAPE (\)


Como ocurra en JS, el smbolo escape nos servir para enmascarar comillas y otros caracteres especiales. Por ejemplo si queremos escribir la cadena: Hola soy El Profe, haremos lo siguiente:
Echo Hola soy \ El Profe \.

ARRAYS
Al igual que podamos hacer con JS, podemos declarar arrays: Un array es una coleccin de variables, las cuales pueden o no tener relacin entre s. Todos los arrays tienen un contador, el cual comenzar en 0. Lo veremos con un ejemplo. Crearemos un array con todos los das de la semana en el documento dias_semana.php.

ARRAYS
La forma de definir un array en PHP es la siguiente:
$Nombre_array=array(valor1, valor2,);

Por ejemplo:
$dias = array(lunes, martes, miercoles, jueves, viernes, sabado, domingo);

Para mostrar un valor:


echo $dias[3];

Fjate que no se han puesto comillas, ya que el propio contenido los lleva por definicin.

FUNCIONES CON ARRAYS


count($nombre_array) Con esta funcin podemos saber cuantos elementos tiene un array:
<?php $dias= array(lunes, martes, miercoles, jueves, viernes, sabado, domingo); $numero_elementos=count($dias); echo La semana tiene $numero_elementos dias. \n ?>

PRUEBALO.

ARRAYS ASOCIATIVOS
Podemos definir arrays, cuyo ndice no sean nmeros de 0 a n, sino ndices creados por nosotros mismos. A estos arrays se le llaman ARRAYS ASOCIATIVOS. Supongamos que queremos almacenar las principales capitales europeas en una variable. Para ello en vez de utilizar nmeros en el ndice, podemos usar las abreviaturas de cada una de las capitales, es decir, usar: DE, DK, FR o ES.

ARRAYS ASOCIATIVOS
<? php $capital[DE]=Berlin; $capital[DK]=Cophenague; $capital[FR]=Pars; $capital[ES]=Madrid; echo $capital[ES]; ?>

ARRAYS ASOCIATIVOS
Otra forma de definir arrays asociativos es:
<?php $capital=array(DE => Berlin, DK => Cophenague, FR => Paris, ES => Madrid); echo $capital[ES]; ?>

ARRAYS ASOCIATIVOS
Cuando tenemos arrays asociativos con ndices que son string, Cmo podemos concatenarlo con otra cadena?. Imagina que queremos hacer que se muestre la cadena: La capital de Francia es Pars. Lgicamente, Pars se obtiene del array $dias. Una forma sera la siguiente:
echo La capital de Francia es .$capital[ES];

Otra:
echo La capital de Francia es { $capital[ES]};

Lo ms importante de los arrays asociativos, es su utilizacin junto con los formularios, lo cual veremos ms adelante.

CALCULO CON PHP

OPERADORES DE CALCULO
OPERADOR + * / -++ SIGNIFICADO Suma Resta Multiplicacin Divisin Decremento Incremento EMPLEO $a = 15 + $c $c = $b 2 12 * 3 $x / $y $i-$i++

Como signo de separacin de decimales utilizaremos el punto (.). Crea un pequeo script que escriba por pantalla cada una de las operaciones de clculo con los nmeros 32 y 5,8 y gurdalo como operadores.php.

OPERADORES DE CLCULO
REDONDEO:
Podemos usar la funcin round(), cuya sintaxis es:
round(float val [, int precisin]);

float val es el valor decimal. int precision la precisin que queremos. Es opcional ponerlo, por eso sale entre corchetes.

Realiza un script, que calcule el precio de un producto aplicndole el IVA. El resultado debe tener 2 valores decimales. Busca informacin sobre la funcin sprintf().

CREACIN Y ANLISIS DE FORMULARIOS


Para realizar anlisis de formularios en PHP, seguiremos una serie de ejemplos a modo explicativo. Inicialmente crearemos un formulario, en XHTML muy sencillo, en el que simplemente se pida rellenar el nombre del usuario y crearemos un botn de envo de formulario con los siguientes atributos: Enviaremos el formulario a un archivo llamado analisis.php (action). Como mtodo de envo utilizaremos post.

CREACIN Y ANLISIS DE FORMULARIOS


ACCESO A LOS DATOS MEDIANTE $_POST.
$_POST es un array que crear automticamente PHP. Los valores name de los elementos del formulario estarn automticamente disponibles en este array. Es un array asociativo. El nombre del campo del formulario se transforma automticamente en el ndice correspondiente. En nuestro formulario los datos estarn en:
$_POST[nombre], que como value tiene la cadena introducida por teclado.

CREACIN Y ANLISIS DE FORMULARIOS


form.html
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <title>Documento sin ttulo</title> </head> <body> <h1> ANALISIS DE FORMULARIOS CON PHP</h1> <form action="analisis.php" method="post"> INTRODUCE TU NOMBRE<input type="text" name="nombre" /><br /> <input type="submit" name="ACEPTAR" /> </form> </body> </html>

CREACIN Y ANLISIS DE FORMULARIOS


Analisis.php
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ANALISIS DE FORMULARIOS</title> </head> <body> <?php echo "Hola tu nombre es <b> {$_POST['nombre']}</b>, encantado de mandarte un saludo"; ?> </body> </html>

CREACIN Y ANLISIS DE FORMULARIOS


NOTA:
Actualmente el uso de variables globales est desactivada por defecto y por motivos de seguridad. Para ver el estado puedes acceder al archivo php.ini y ver el valor de la variable register_globals, el cual se encontrara con un valor Off. Se recomienda dejarlo as

CREACIN Y ANLISIS DE FORMULARIOS


BOTONES DE OPCIN:
Ahora vamos a estudiar el tratamiento de los botones de opcin. Incluiremos en nuestro archivo form.html dos radiobutton, uno con el valor de Sr y otro Srta como se muestra en la imagen de la diapositiva siguiente, teniendo en cuenta que hemos introducido estas etiquetas: <input type="radio" name="genero" value="0" />Seor<br /> <input type="radio" name="genero" value="1"/>Seora<br />

CREACIN Y ANLISIS DE FORMULARIOS


BOTONES DE OPCIN:
El siguiente paso ser el de modificar el archivo analisis.php. Para ello debemos tener en cuenta que:
Si ha sido seleccionado Seor, en la variable $_POST[genero], se habr almacenado un 0. Si ha sido seleccionado Seora, en la variable $_POST[genero], se habr almacenado un 1.

Modificaremos el archivo de anlisis que creamos anteriormente, de tal forma que, si ha sido seleccionado Seor deber aparecer: Hola Seor nombre_introducido encantado de saludarle. Si la opcin fue la de Seora, entonces deber aparecer seora. Para ello haremos uso de la sentencia de control de flujo if, cuya sintaxis se presenta en la siguiente diapositiva.

CREACIN Y ANLISIS DE FORMULARIOS


SENTENCIA IF:
if (condicion){ caso A; } else{ caso B; }

BOTONES DE OPCIN:
if ($_POST[genero]==0) { echo Hola Seor ; }else{ echo Hola Seora ; } echo <b> {$_POST[nombre]}</b>, encantado de saludarle\n;

CREACIN Y ANLISIS DE FORMULARIOS


OPERADORES DE COMPARACIN:
OPERADOR == === != > < >= <= && (and) || (or) SIGNIFICADO Igual Idntico (incluso el tipo de datos) Distinto Mayor que Menor que Mayor o igual que Menor o igual que Y lgico, todas las expresiones se cumplen O lgico, se cumple como mnimo una expresin.

CREACIN Y ANLISIS DE FORMULARIOS


ALGUNOS PROBLEMAS CON FORMULARIOS.
Imagina que un usuario olvida rellenar algn campo. La variable no est definida y provocara un error o saldra como resultado en nuestra pgina analisis.php el nombre en blanco. Lo veremos con un ejemplo. Crea dos carpetas, una llamada form3 y otra form4 en la carpeta raz del servidor. Utilizaremos la plantilla de form2.

CREACIN Y ANLISIS DE FORMULARIOS


Antes de proseguir, es esencial configurar nuestro servidor para que muestre todos los errores que se pudieran producir. Es probable que en tu caso, en form2, no se haya producido (o no hayas visto) ningn aviso sobre el error que comentamos anteriormente. Esto se debe a que debemos activar los mensajes de error. Vamos a ver como se activa.

CREACIN Y ANLISIS DE FORMULARIOS


XAMPP configura PHP de modo que no se muestren los tipos de errores comentados anteriormente. Sin embargo, a nosotros los programadores si que nos interesa que est activo. Para ello debemos editar el fichero php.ini, el archivo de configuracin de PHP. Lo puedes encontrar en xampp\apache\bin. (Puede ser que aparezca en xampp\php\) Busca la lnea que indica: error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED (Busca aquella lnea que no contenga ; ya que estos son solo comentarios)
Una vez encontrada la lnea, modifcala para que quede as:
error_reporting = E_ALL

Guarda el archivo y reinicia XAMMP.

CREACIN Y ANLISIS DE FORMULARIOS


Funcin isset().
Ahora nos ocuparemos de ocultar los errores de nuestro formulario al usuario. Para ello utilizaremos esta funcin. isset() se encarga de comprobar que una determinada variable est definida . En caso afirmativo devuelve true y en caso negativo devuelve false. SINTAXIS:
isset(variable); Devuelve un booleano.

CREACIN Y ANLISIS DE FORMULARIOS


Apliquemos el uso de esta funcin a nuestro formulario de inicio. La idea es comprobar que estn definidas todas las variables $_POST de nuestro formulario con la funcin isset(). Si todas lo estn, entonces podemos actuar con normalidad, si existe algn campo que no est definido entonces mostraremos por pantalla un mensaje que indique el fallo, por ejemplo: No has rellenado todos los campos, por favor hazlo correctamente PROGRAMALO!

CREACIN Y ANLISIS DE FORMULARIOS


Bien, hasta ahora hemos creado dos archivos distintos para el cdigo html y otro para PHP. Uniremos estos en el mismo archivo. Es bastante fcil utilizando la funcin isset(). Lo haremos utilizando nuestro ltimo ejemplo. Para ello copiaremos el script de analisis_isset.php a la pgina del formulario, despus del cdigo del formulario. Adems cambiaremos la extensin del archivo index.html por el de form.php. Mucho cuidado con el atributo action. Ahora deber llamar a index.php, es decir, la pgina se llamar a s misma.

<h1> ANALISIS DE FORMULARIOS CON PHP</h1> <form action="form.php" method="post"> <input type="radio" name="genero" value="0" />Seor<br /> <input type="radio" name="genero" value="1"/>Seora<br /> INTRODUCE TU NOMBRE <input type="text" name="nombre" /><br /> <input type="submit" name="ACEPTAR" value="Envialo!" /> </form> <?php if (isset($_POST['genero']) && isset($_POST['nombre']) && $_POST['nombre'] != "" ) { if ($_POST['genero'] == 0){ echo "Hola Seor "; }else{ echo "Hola Seora "; } echo "<b>{$_POST['nombre']} </b>, encantado de mandarte un saludo. \n"; }else{ if (isset($_POST['ACEPTAR'])){ echo "Por favor rellena todos los campos"; } } ?>

CREACIN Y ANLISIS DE FORMULARIOS


Variable $_SERVER[PHP_SELF].
Esta variable nos devuelve la ruta y el nombre del elemento actual. De esta forma, en lugar de poner action = form.php tambin podramos escribir:
action = <?php echo $_SERVER[PHP_SELF];?>

FORMULARIOS AVANZADOS

DATOS DE FORMULARIOS COMO ARRAYS


Hasta ahora ya sabemos que los datos que devuelve un formulario son tratados como array asociativo en PHP. Es decir, en los formularios tratados por PHP, el nombre del campo del formulario equivale al ndice del array. Si en el formulario action=post la informacin est en $_POST. Si en el formulario action=get la informacin est en $_GET. NOTA: Para contar los elementos que tiene un array podemos usar la funcin count($ARRAY).

MOSTAR NUEVAMENTE LOS DATOS


Es interesante que, cada vez que un usuario, no haya rellenado algn campo obligatorio, no tenga que escribir toda la informacin de nuevo, sobre todo si es un formulario con muchos campos. Para conseguir nuestro objetivo en los campos de texto debemos leer el valor de las variables y despus de recargar la pgina, hacer que PHP rellene los campos. En nuestro ejemplo pondramos: INTRODUCE TU NOMBRE <input type="text" name="nombre" value=<?php if (isset($_POST[nombre])){echo $_POST[nombre]}?> />

MOSTAR NUEVAMENTE LOS DATOS


Para conseguirlo en los botones de opcin podemos usar el atributo-valor: checked=checked. En nuestro ejemplo, en el caso de Sr. haremos lo siguiente: <input type="radio" name="genero" value="0" <?php if isset($_POST[genero]) && $_POST[[genero] == 0){ echo checked=checked}/>Seor<br/>

PROBLEMA CON LAS COMILLAS EN CAMPOS DE TEXTO


Qu ocurre si en un campo de texto ponemos caracteres especiales como por ejemplo, ODonell?PRUEBALO Es probable que PHP est configurado para poder introducir este tipo de caracteres y no notes nada. En el fichero de configuracin php.ini, puedes encontrar la opcin magic_quotes_gpc. Si est a On PHP se encargar de enmascarar los caracteres crticos. Si al colgar la pgina tienes problemas con este tipo de caracteres es que tienes esta variable a Off. Prueba a escribir unas comillas dobles en el campo de texto, que ocurre?

PROBLEMA CON LAS COMILLAS EN CAMPOS DE TEXTO


Como puedes comprobar el texto que haba a continuacin de las comillasNO APARECE! Pues bien, para poder utilizar todos los caracteres especiales de XHTML o evitar que algn usuario mal intencionado genere un script en algn cuadro de texto que tengamos en nuestra pgina, utilizaremos la funcin htmlspecialchars(), que tiene la siguiente sintaxis: htmlspecialchars(string) Devuelve string

PROBLEMA CON LAS COMILLAS EN CAMPOS DE TEXTO


Esta funcin convierte los siguientes cuatro caracteres en sus respectivas entidades HTML:
CARCTER < > & PASA A SER &lt; &gt; &amp; &quot; SIGNIFICA LOWER THAN GREATER THAN AMPERSAND QUOTATION MARK

Cmo lo aplicaras al ejemplo que vamos siguiendo hasta ahora para que siempre se muestren estos caracteres?

PROBLEMA CON LAS COMILLAS EN CAMPOS DE TEXTO


<? php if (isset($_POST[nombre])){ $v_nombre = $_POST[nombre]; $v_nombre = htmlspecialchars ($v_nombre); echo $v_nombre; ?> As podemos mostrar sin problemas el nombre en nuestro navegador. Cul es el resultado?

PROBLEMA CON LA BARRA INVERTIDA


Con la funcin anterior, hemos solucionado el tema de las comillas, pero no el de la barra invertida. Para ello usaremos la funcin stripslashes(). Esta funcin elimina todas las instancias de la barra invertida que se encuentre en un string. Su sintxis es:
stripslashes(string)

Cmo aplicaras esta funcin al ejemplo? Solamente deberemos aadir al ejemplo anterior este comando:
$v_nombre = stripslashes($v_nombre);

FUNCIN nl2br()
Cuando incluimos grandes <textarea> en el formulario para poder recibir los comentarios de los usuarios te interesar probar la funcin nl2br(). Esta funcin transforma todos los saltos de lnea del editor en el equivalente XHTML <br />. nl2br es el acrnimo de new line to break. Aadimos un campo para comentarios en nuestro formulario de ejemplo. Crearemos ahora la carpeta form8, donde incluiremos el campo Tu comentario.

Das könnte Ihnen auch gefallen