Você está na página 1de 40

8 Unidad Didctica PHP

Eduard Lara

NDICE

8.1 Lenguajes de script del servidor PHP 8.2 Sintaxis bsica de PHP 8.3 La instruccin include 8.4 Cookies y sesiones 8.5 Bases de datos. Interaccin con MySQL

8.1 LENGUAJES DE SCRIPT DEL SERVIDOR: PHP


Pgina esttica Pgina cuyos elementos permanecen invariables. Siempre muestra la misma informacin a cualquier usuario que navegue por ella. Su cdigo fuente es el mismo y no puede ser cambiado por la intervencin del usuario ni tampoco a travs de ningn programa. Las Pginas estticas utilizan los lenguajes: CSS, HTML, Javascript Son lenguajes ejecutados en el navegador
3

8.1 LENGUAJES DE SCRIPT DEL SERVIDOR: PHP


Proceso Visualizacin de una Pgina esttica 1) El navegador realiza la peticin para acceder a una pgina con extensin HTML 2) El servidor busca la pgina deseada 3) El servidor devuelve la pgina HTML solicitada sin modificarla (si no la encuentra devuelve mensaje error) 4) El navegador interpreta el documento y lo presenta en pantalla
4

8.1 LENGUAJES DE SCRIPT DEL SERVIDOR: PHP


Pgina dinmica Pgina cuyos contenidos pueden cambiar en funcin de la interactividad con el usuario. Las pginas web dinmicas ofrecen funcionalidades de acceso a bases de datos. Esto se consigue mediante un lenguaje de script de servidor: PHP, ASP, JSP, PERL Son lenguajes que se ejecutan en el servidor. El resultado de dicha ejecucin es una pgina escrita en HTML, CSS JavaScript.
5

8.1 LENGUAJES DE SCRIPT DEL SERVIDOR: PHP


Proceso Visualizacin de una Pgina dinmica 1) El navegador pide acceder a la pgina PHP. 2) El servidor busca la pgina solicitada 3) El servidor pasa la pgina con extensin PHP al interprete PHP para que ejecute los scripts 4) El interprete PHP devuelve el documento resultante al servidor, como cdigo HTML 5) El servidor devuelve la pgina al navegador. 6) El navegador interpreta el documento y lo presenta en pantalla
6

8.1 LENGUAJES DE SCRIPT DEL SERVIDOR: PHP


PHP (Hypertext Pre Processor) es un lenguaje interpretado y de alto nivel cuyas instrucciones deben ser ejecutadas por el servidor. PHP es muy parecido a JavaScript: variables, funciones, estructuras de control, etc. PHP no es un lenguaje orientado a objetos aunque s tiene recursos que permiten definir clases y construir objetos. El servidor web ms popular del mercado, es el Apache. ste trae incorporado el intrprete de PHP.
7

8.2 SINTAXIS BSICA DE PHP


Cmo identifica el servidor web que un documento contiene elementos php? El documento deber llevar la extensin php. Cmo detecta el interprete de php fragmentos de cdigo php? Deber estar identificado de la siguiente manera: <?php instrucciones_en_codigo_php; ?>
8

8.2 SINTAXIS BSICA DE PHP


Reglas bsicas para las instrucciones: Deben acabar en punto y coma (;). Los comentarios son iguales que en Javascript: - // Para comentar una lnea - /* y * /Para comentar ms de una lnea La instruccin echo "texto"; imprime dicha cadena de texto en pantalla

8.2 SINTAXIS BSICA DE PHP


Ejemplo primer.php <html> <head> <title>Hola Mundo</title> </head> <body> <?php echo "<h1>HOLA MUNDO</h1>"; ?> Guardar en c:\xamp\htdocs o subdirectorio. </body> Para probarlo, escribir en un navegador: </html> http://localhost/primer.php
10

Las constantes se definen mediante: define("Nombre","Valor"); Sus valores se mantienen en todo el documento. Las variables son introducidas mediante el smbolo dlar ($): $variable=valor;
Tipos de variables Entera (integer) Coma flotante (double) cadenas (string). $entera=2; $doble=3.14159; $cadena="En un lugar de la Mancha";

8.2 SINTAXIS BSICA DE PHP CONSTANTES Y VARIABLES

11

8.2 SINTAXIS BSICA DE PHP VARIABLES Y CONSTANTES


La declaracin de tipos no es necesaria: una misma variable pueden contener cualquiera de los tipos indicados. La conversin del valor de $entera a una cadena de texto se realiza as: echo "La variable 'entera' vale".$entera."."; La concatenacin entre ambos tipos de datos (string y nmero) se ha conseguido mediante la utilizacin del operador punto (.).
12

mbito de una variable porcin de cdigo del programa desde el cual es accesible. Variables locales Variables definidas dentro de un script o funcin que slo pueden ser accedidas dentro de ese mbito. Variables globales Variables accedidas por una funcin aunque estn definidas fuera de ella o viceversa. Su sintaxis es: global "variable"; Variables superglobales Variables predefinidas, que se comportan como si fueran globales. Variables de servidor: $_SERVER.
13

8.2 SINTAXIS BSICA DE PHP -MBITO DE LAS VARIABLES

8.2 SINTAXIS BSICA DE PHP ENVO VARIABLES ENTRE PGINAS


El envo de variables entre pginas es una forma habitual de trabajar en scripts de servidor (procesado de formularios, carrito de compra). Se puede hacer por dos mtodos: GET y POST. Mtodo GET Las variables y sus valores se pasan en la cabecera del mensaje HTTP junto con la URL de la pgina que debe aceptar dichas variables: pagina.php?variable1=valor1&variable2=valor2
Pgina web pedida Bloque variable = valor Bloque variable = valor
14

8.2 SINTAXIS BSICA DE PHP ENVO VARIABLES ENTRE PGINAS


Mtodo GET Los bloques variable=valor pueden ser tantos como se quieran, con la nica restriccin que impone el mtodo GET de 2000 caracteres. Los nombres de variables no van precedidos del signo $. Los valores de las variables no van escritos entre comillas (sean del tipo que sean). La pgina que recibe la informacin, puede acceder a las variables mediante $_GET[variable1]
15

Mtodo POST Este mtodo esconde las variables y sus valores en el cuerpo del mensaje HTTP (las variables no son visibles en la URL). El acceso a las variables se podr hacer con: $_POST[variable1]

8.2 SINTAXIS BSICA DE PHP ENVO VARIABLES ENTRE PGINAS

Si la directiva register_globals del servidor est en ON, las variables podrn ser recogidas directamente mediante $variable1 (tanto para el mtodo GET como para POST).
16

8.2 SINTAXIS BSICA DE PHP ARRAYS


Los arrays son un conjunto de valores almacenados en una sola variable Son como tablas, donde los valores de sus celdas son accesibles mediante ndices.
0 Lunes 1 Martes 2 3 4 Viernes 5 Sabado Mircoles Jueves

Los elementos que la componen se identifican mediante el nombre del array y un ndice (que empieza por la celda 0): $nombre[indice] ; $dias_semana[5]=Sabado;
17

8.2 SINTAXIS BSICA DE PHP ARRAYS ASOCIATIVOS


Array indexado por una palabra o clave. Acceso a los elementos de un array asociativo: $nombre[ 'identificador'] =valor; Ejemplo: Array asociativo $coche:
Marca mercedes matricula 4567-CDE modelo Clase E color Negro

Para acceder al valor de su primera celda: $coche[ "marca"] ="mercedes";


18

Estructura condicional if-else.


Dentro del cdigo PHP <?php if(condicion1){ instrucciones; }elseif (condicion2) { instrucciones; } else { instrucciones; } ?>

8.2 SINTAXIS BSICA DE PHP ESTRUCTURA CONTROL FLUJO


Intercalando instrucciones HTML con instrucciones PHP <?php if(condicion) {?> instrucciones HTML1 si se cumple la condicion <?php } else{ ?> instrucciones HTML2 si no se cumple la condicion <?php } ?>

19

Estructura condicional switch-case


Ideal para evaluar numerosas condiciones. switch ( variable ) { case n1: instrucciones caso n1; break; case n2: instrucciones caso n2; break; default:

8.2 SINTAXIS BSICA DE PHP ESTRUCTURAS CONTROL FLUJO

instrucciones en caso de no cumplirse ninguna condicin }


20

8.2 SINTAXIS BSICA DE PHP ESTRUCTURAS CONTROL FLUJO


Bucle for
for(desde; hasta; incremento) { instrucciones; } for($j=0; $j< n; $j++) { instrucciones; } } while(condicion) } ----------------------------------do { Cuerpo_del_bucle; { instrucciones;

Bucle while y do-while


while(condicion)

21

8.2 SINTAXIS BSICA DE PHP FUNCIONES


Se define igual que en Javascript:
function nombre (parmetros) { instrucciones_php; } function suma($a,$b) { var_suma=$a+$b; return $var_suma }
22

nombre(numero1, numero2);

Llamada a la funcin: suma (1, 2); 1 sera $a y 2 $b

8.3 LA INSTRUCCIN INCLUDE


Permite la inclusin del contenido de un ficheros en un script. <?php include("ruta fichero"); ?> Esta orden se sustituye por el contenido del fichero especificado. Extensin especfica para los archivos include inc (archivo. inc) aunque se poner otra. Si se incluye cdigo PHP, poner <?php y ?> si no sera interpretado como texto normal. Permite actualizacin homognea de sitio web
23

8.3 LA INSTRUCCIN INCLUDE


<html> <head><title>Fecha en castellano</title></head> <body> <? php Cada una de las funciones est include("fecha.inc"); guardada en un archivo aparte (fecha. inc y hora. inc) y include("hora.inc"); llamadas con include desde la pgina principal. echo fecha (); echo hora () ; ?> </body> </html>
24

8.4

COOKIES Y SESIONES

Facilitan el almacenamiento de informacin relativa a los visitantes de una pgina, durante una visita o entre visitas (Mensaje bienvenida) El uso de variables slo es vlida durante la visita del usuario y no es una tcnica segura. Requisitos: El servidor debe admitir las cookies. Las instrucciones para el envo de cookies y creacin de sesiones deben al principio de la pgina, antes de cualquier etiqueta HTML.
25

8.4 COOKIES
Las cookies son pequeos ficheros que se escriben en el ordenador del cliente. Contienen informacin que las pginas visitadas pueden recuperar y utilizar en futuras visitas del usuario (parmetros elegidos anter.) La informacin de una cookie se guarda en variables, de la forma variable=valor" Se puede establecer la fecha de caducidad de la cookie (tiempo que el ordenador guardar dicha informacin)
26

8.4 COOKIES
Netscape Guarda todas las cookies en un nico archivo, cookies. txt, en el subdirectorio del usuario que se crea en la instalacin del programa y que est dentro de otro llamado users. Explorer Crea un archivo para cada cookie, en el directorio Archivos temporales de internet "id equipo"@"Web que inserta la cookie ["numero de visitas"] .txt edu@elmundo[1].txt
27

8.4 COOKIES
Para enviar cookies usando PHP: setcookie("nombre", "valor", "fecha"); Despus de fecha de caducidad, la galleta se deshabilita. Si no se establece fecha, la cookie permanecer en el equipo del usuario. La variable de la cookie, puede ser leda con $_COOKIE['nombre_variable'] si ha sido escrito antes y no ha expirado.
28

Nombre variable

Valor

Fecha caducidad cookie

8.4 SESIONES
Las sesiones ofrecen mayores posibilidades que las galletas. Permiten identificar al usuario de forma unvoca y su perfil personalizada Las sesiones se almacenan en el servidor. No se depende de si el usuario ha aceptado las cookies en su ordenador o ha decidido borrarlas. La informacin obtenida durante la sesin se almacena en las llamadas variables de sesin

29

8.4 SESIONES
Las variables son guardadas en un directorio del servidor. Se puede indicar mediante: session_save_path("./sesiones"); Para iniciar una sesin: session_start(); Al inicio de la pgina PHP al crear una sesin, le asigna un nmero identificativo y un nombre, accesibles con las siguientes instrucciones: echo session_id() echo session_name()
30

8.4 SESIONES
Para asignar un nombre especif. a una sesin: session_name('nombre_sesion'); Para comunicar a otras pginas que deben continuar con la sesin ya iniciada, se debe propagar la sesin Se le debe pasar el nombre y su identificador. <a href="pagina_siguiente.php?<?php echo session_name()."=".session_id()?>">enlace </a> El usuario ver en la barra de direcciones una cadena inteligible de caracteres.
31

8.4 SESIONES
Las variables de sesin son guardadas en el servidor mientras dure sta. Para crear las variables de sesin: $_SESSION[ 'variable'] ="valor"; El servidor no puede actualizar una pgina dinmica que es almacenada en la cach. session_cache_limiter('nocache, private'); Evita que la pgina se almacene en la cach del navegador y pueda actualizarse su contenido.
32

8.5 BASE DE DATOS Y PHP


PHP tiene funciones para interactuar con la gran mayora de servidores de bases de datos: MySQL, Oracle, SQL Server, etc. MySQL es la base de datos ms popular para los desarrolladores de PHP. Esa popularidad se debe a su gratuidad, liviandad y eficacia. Se recomienda instalar el paquete XAMP que incluye la base de datos Mysql, un gestor web para su administracin phpmyadmin y otras utilidades necesarias (apache, filezilla, mercury mail)
33

8.5 BASE DE DATOS Y PHP. CONEXIN CON MYSQL


1 paso para interactuar con MySQL desde PHP Autentificar el usuario ante la BD. Datos necesarios: Servidor al que se solicita acceso (host), usuario y password (se alojan en base datos mysql, en la tabla users) Estos datos se incluyen en un archivo inc, llamado por PHP mediante un include.
<?php $mysql_server="localhost";//Servidor local $mysql_login="root"; //Usuario administrador $mysql_pass="passwd"; //Contrasea ?>

34

8.5 BASE DE DATOS Y PHP. CONEXIN CON MYSQL


Para conectarse a la base de datos: $conexion=mysql_connect ($mysql_server, $mysql_login, $mysql_pass) or die ("Error Con"); - $conexion es el id de conexin a MySQL. -Si no se puede conectar a la BD, con la instruccin or die se parar la ejecucin del script y devolver el texto Error en la

conexin.

Para seleccionar la BD con la cual se trabajar: ok=mysql_select_db("basedatos", "id_conexion");


35

Una vez realizada la conexin, se pueden realizar las operaciones tpicas con un BD, con: ok=mysql_query ("sentencia", "id_conexion") ; - sentencia que contiene la sentencia SQL. - id_conexion el identificador de la conexin - Devuelve un valor booleano indicando si la operacin se ejecut con xito o no:
if (mysql_query ("Create Database mibd",$con)) { echo "Base de datos creada con xito"; } else { echo "Error al crear la base de datos";}

8.5 BASE DE DATOS Y PHP. OPERACIONES TPICAS MYSQL

36

8.5 BASE DE DATOS Y PHP. OPERACIONES TPICAS MYSQL


Sentencias Create database nombreBD Drop database nombreBD Create tabla if not exist tabla (campo1, campo2, ) Alter table nombretabla (DROP o ADD) campomodificable Drop table nombretabla Insert into Tabla (campo1,campo2,..) values (valor1, valor2,..) WHERE condicin UPDATE tabla SET campol=valorl,campo2=valor2 WHERE condicin DELETE FROM tabla WHERE condicion
37

8.5 BASE DE DATOS Y PHP. CONSULTAS


Una consulta puede devolver un conjunto de registros (0, 1 o muchos), los cuales quedan recogidos en una variable: $registros=mysql_query("sentencia", $conexion) Para acceder a cada uno de los registros: $registro=mysql_fetch_row($registros) . Cada vez que se ejecute devolver un registro, empezando por el primero y conservando la posicin del ltimo dado. Cuando llegue al final, devuelve false.
38

8.5 BASE DE DATOS Y PHP. CONSULTAS


Cada registro est compuesto por campos. Para acceder a cada uno de los campos, se utiliza su ndice. $registro[ 0] Acceso al 1 campo $registro[ 1] Acceso al 2 campo Bucle para acceder a cada uno de los campos de cada registro de la consulta.
while($registro= mysql_fetch_row($registros) ) { echo Campo1.$registro[0].-Campo2.$registro[1]; }
39

8.5 BASE DE DATOS Y PHP. CONSULTAS


$filas=mysql_num_rows ("conjunto de registros");

Devuelve el nmero de registros devueltos por la consulta. til para realizar paginaciones en consultas muy largas y mostrar pginas con un nmero reducido de registros por pgina.

40

Você também pode gostar